Yes, JS symbols are no longer exported. You can't use JSAPI from non-Gecko code anymore.
On Sat, Sep 6, 2014 at 9:06 PM, Shanmugham Sundaram <shansyman...@gmail.com> wrote: > 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 > _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform