Hi,

As part of our FF extension development, we are using FF SDK (which was 
obtained after compiling FF 33 beta source code in MS 2010). The libs and 
include are obtained from obj-i686-pc-mingw32\dist\ dir after compiled using 
start-shell-msvc2010.bat (provided by MozillaBuildSetup-Latest.exe). 

Till FF 32, we did not have issue in compiling the following function

    const jschar* GetStringCharsZ(JSContext *cx, JSString *str) const throw()
    {
        if( !cx || !str) 
        {
            return NULL;
        }

        return JS_GetStringCharsZ(cx, str);
      
    }

But it appears that in FF 33 beta, the JS_GetStringCharsZ is Un-Available in 
E:\me\work\builds\mozillaBuildsForPorting\firefox-33.0b1.source\mozilla-beta\js\src\jsapi.h.
When i checked the replacement code for JS_GetStringCharsZ, I found following 
code available in other js src code @ 
http://mxr.mozilla.org/mozilla-beta/source/js/src/shell/js.cpp#1278.

        JSFlatString *flat = str->ensureFlat(cx);
        if (!flat)
            return NULL;
        AutoStableStringChars chars(cx);
        if (!chars.initTwoByte(cx, flat))
            return NULL;
        return chars.twoByteRange().start().get();
 
I tried to modify my current function as below and I am getting the following 
errors when i compiled in VS 2010. My include path contains these values [ 
$(SDK)\VS10\Firefox-SDKs\33.0.0\include;$(SDK)\VS10\Firefox-SDKs\33.0.0\include\js;$(SDK)\VS10\Firefox-SDKs\33.0.0\include\nspr
 ] .

Am I missing anything in include path to pick up the JSFlatString , 
AutoStableStringChars , JSString ???? All were working fine for extension built 
in FF 32 .

Modified function
=================
    const jschar* GetStringCharsZ(JSContext *cx, JSString *str) const throw()
    {
        if( !cx || !str) 
        {
            return NULL;
        }

        //return JS_GetStringCharsZ(cx, str);
        //RootedString 
        JSFlatString *flat = str->ensureFlat(cx);
        if (!flat)
            return NULL;
        AutoStableStringChars chars(cx);
        if (!chars.initTwoByte(cx, flat))
            return NULL;
        return chars.twoByteRange().start().get();
    }


Errors
=====
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(86): error 
C2027: use of undefined type 'JSString'
2>          
c:\users\shanmugam_s\perforce\nco_r8.7.7_ff_32_shan_new\sdk\vs10\firefox-sdks\33.0.0\include\js/TypeDecls.h(29)
 : see declaration of 'JSString'
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(86): error 
C2227: left of '->ensureFlat' must point to class/struct/union/generic type
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(89): error 
C2065: 'AutoStableStringChars' : undeclared identifier
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(89): error 
C2146: syntax error : missing ';' before identifier 'chars'
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(89): error 
C3861: 'chars': identifier not found
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(90): error 
C2065: 'chars' : undeclared identifier
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(90): error 
C2228: left of '.initTwoByte' must have class/struct/union
2>          type is ''unknown-type''
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2065: 'chars' : undeclared identifier
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2228: left of '.twoByteRange' must have class/struct/union
2>          type is ''unknown-type''
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2228: left of '.start' must have class/struct/union
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2228: left of '.get' must have class/struct/union
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(86): error 
C2027: use of undefined type 'JSString'
2>          
c:\users\shanmugam_s\perforce\nco_r8.7.7_ff_32_shan_new\sdk\vs10\firefox-sdks\33.0.0\include\js/TypeDecls.h(29)
 : see declaration of 'JSString'
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(86): error 
C2227: left of '->ensureFlat' must point to class/struct/union/generic type
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(89): error 
C2065: 'AutoStableStringChars' : undeclared identifier
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(89): error 
C2146: syntax error : missing ';' before identifier 'chars'
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(89): error 
C3861: 'chars': identifier not found
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(90): error 
C2065: 'chars' : undeclared identifier
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(90): error 
C2228: left of '.initTwoByte' must have class/struct/union
2>          type is ''unknown-type''
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2065: 'chars' : undeclared identifier
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2228: left of '.twoByteRange' must have class/struct/union
2>          type is ''unknown-type''
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2228: left of '.start' must have class/struct/union
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2228: left of '.get' must have class/struct/union
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(86): error 
C2027: use of undefined type 'JSString'
2>          
c:\users\shanmugam_s\perforce\nco_r8.7.7_ff_32_shan_new\sdk\vs10\firefox-sdks\33.0.0\include\js/TypeDecls.h(29)
 : see declaration of 'JSString'
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(86): error 
C2227: left of '->ensureFlat' must point to class/struct/union/generic type
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(89): error 
C2065: 'AutoStableStringChars' : undeclared identifier
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(89): error 
C2146: syntax error : missing ';' before identifier 'chars'
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(89): error 
C3861: 'chars': identifier not found
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(90): error 
C2065: 'chars' : undeclared identifier
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(90): error 
C2228: left of '.initTwoByte' must have class/struct/union
2>          type is ''unknown-type''
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2065: 'chars' : undeclared identifier
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2228: left of '.twoByteRange' must have class/struct/union
2>          type is ''unknown-type''
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2228: left of '.start' must have class/struct/union
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2228: left of '.get' must have class/struct/union
2>  WebProgressImpl.cpp
2>  WebProgressImplBeta.cpp
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(86): error 
C2027: use of undefined type 'JSString'
2>          
c:\users\shanmugam_s\perforce\nco_r8.7.7_ff_32_shan_new\sdk\vs10\firefox-sdks\33.0.0\include\js/TypeDecls.h(29)
 : see declaration of 'JSString'
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(86): error 
C2227: left of '->ensureFlat' must point to class/struct/union/generic type
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(89): error 
C2065: 'AutoStableStringChars' : undeclared identifier
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(89): error 
C2146: syntax error : missing ';' before identifier 'chars'
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(89): error 
C3861: 'chars': identifier not found
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(90): error 
C2065: 'chars' : undeclared identifier
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(90): error 
C2228: left of '.initTwoByte' must have class/struct/union
2>          type is ''unknown-type''
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2065: 'chars' : undeclared identifier
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2228: left of '.twoByteRange' must have class/struct/union
2>          type is ''unknown-type''
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2228: left of '.start' must have class/struct/union
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2228: left of '.get' must have class/struct/union
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(86): error 
C2027: use of undefined type 'JSString'
2>          
c:\users\shanmugam_s\perforce\nco_r8.7.7_ff_32_shan_new\sdk\vs10\firefox-sdks\33.0.0\include\js/TypeDecls.h(29)
 : see declaration of 'JSString'
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(86): error 
C2227: left of '->ensureFlat' must point to class/struct/union/generic type
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(89): error 
C2065: 'AutoStableStringChars' : undeclared identifier
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(89): error 
C2146: syntax error : missing ';' before identifier 'chars'
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(89): error 
C3861: 'chars': identifier not found
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(90): error 
C2065: 'chars' : undeclared identifier
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(90): error 
C2228: left of '.initTwoByte' must have class/struct/union
2>          type is ''unknown-type''
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2065: 'chars' : undeclared identifier
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2228: left of '.twoByteRange' must have class/struct/union
2>          type is ''unknown-type''
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2228: left of '.start' must have class/struct/union
2>c:\shan\\cofirefoxpluginbeta\cofirefoxplugin\JSFuncWrapper.h(92): error 
C2228: left of '.get' must have class/struct/union


Thanks in advance,
Shan'
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to