Re: Does mozilla allow modification of Strings
On Monday, January 28, 2019 at 9:09:05 PM UTC+5:30, Boris Zbarsky wrote: > On 1/28/19 10:30 AM, Nanday Dan wrote: > > Sorry, I forgot to mention that I commented those lines too. > > If you comment those lines, you will likely end up with code reading > random values for your boolean at best and crashing at worst (if you > added the boolean at the end; if not, it's just all going to be bad). > You need to make sure that the layout of FakeString exactly matches the > layout of nsString, probably by adding the same boolean to FakeString. > > -Boris I added the variable to FakeString. But still application crashes. ___ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform
Re: Does mozilla allow modification of Strings
On Tuesday, January 29, 2019 at 12:22:08 AM UTC+5:30, Kris Maglione wrote: > >Is it possible to add an extra variable to mozilla string(nsTStringRepr). > > > > > >I added a bool variable to nsTStringRepr class in Xpcom/Strings/ > > As something of a side note, the general way to do this is to > add a new data or class flag, and store it in one of the > existing fields: > I think storing in existing fields will break the actual usage/functioning of those fields and it will make more complex. So I felt like adding a new flag will not affect normal functioning of it. > https://searchfox.org/mozilla-central/rev/5c8ea961d04767db723a0a15e3a8f7fbca154129/xpcom/string/nsTStringRepr.h#300-301 > > Changing the size or layout of the string class is more or less > guaranteed to cause problems. Aside from affecting the size and > padding of thousands of classes, the strings API is some of the > oldest code in Gecko, and there is almost certainly some subtle > code which makes assumptions about its layout, and will break if > it changes. The Rust bindings are one such example (as you saw), > but there are almost certainly others as well. ___ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform
Re: Does mozilla allow modification of Strings
On Monday, January 28, 2019 at 6:35:30 PM UTC+5:30, Emilio Cobos Álvarez wrote: > There are probably two different issues. > > On 1/28/19 1:51 PM, wrote: > > > > > > Is it possible to add an extra variable to mozilla string(nsTStringRepr). > > > > > > I added a bool variable to nsTStringRepr class in Xpcom/Strings/ > > > > While building the build I got static Assertions like below > > > > /User/Desktop/MOZB/mozilla-central/xpcom/base/nsCycleCollector.cpp:1954:3: > > error: static_assert failed "Don't create too large CCGraphBuilder objects" > > 0:34.99 static_assert(sizeof(CCGraphBuilder) <= 4096, > > If you're just experimenting this assertion can probably just be ignored > / commented out, seems it's just to prevent accidentally wasting a lot > of memory. > > > > > > > > > In normal execution (without adding any variable to core string )size of > > CCGraphBuilder is 4096 > > > > Since it is static_assert I commented that line and proceeded in > > building. > > > > Building was successful. > > > > While running firefox it just popsup and crashes. > > > > I used debbugger to know where it is getting crashed > > It is at > > > > /mozilla-central/servo/components/style/gecko/data.rs > > 75: debug_assert!(!self.inner().mContents.mRawPtr.is_null()); > > > > I guess it is getting crashed because of memory issue. I don't exactly. > > Does anyone know what is the exact problem and help me in modification of > > mozilla string. > > This one probably means that you forgot to also update the rust version > of the string representation in: > > > https://searchfox.org/mozilla-central/rev/4faab2f1b697827b93e16cb798b22b197e5235c9/xpcom/rust/nsstring/src/lib.rs#368 > > And as a result you're corrupting some memory somewhere. I think we have > unit tests that would catch that mistake: > > > https://searchfox.org/mozilla-central/rev/4faab2f1b697827b93e16cb798b22b197e5235c9/xpcom/rust/nsstring/src/lib.rs#1302 > > If you updated both, then I don't know and I'd have to take a look on a > debugger :) > > -- Emilio Thank you Emilio it worked when I updated the rust string version. ___ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform