Closed
Bug 945846
Opened 11 years ago
Closed 11 years ago
GenerationalGC: Store buffer reentrancy assertion fails in browser builds
Categories
(Core :: JavaScript Engine, defect)
Core
JavaScript Engine
Tracking
()
RESOLVED
FIXED
mozilla28
People
(Reporter: jonco, Assigned: jonco)
References
Details
(Whiteboard: [qa-])
Attachments
(2 files)
2.11 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
1.19 KB,
patch
|
terrence
:
review+
|
Details | Diff | Splinter Review |
The work to stop barriers firing minor collection needs extending to the browser. It looks like there are only two cases, one in ctypes and one in XPConnect.
Assignee | ||
Comment 1•11 years ago
|
||
This is slightly unpleasant because we have to make a duplicate FieldInfo structure without the Heap<JSObject*>.
Attachment #8341851 -
Flags: review?(terrence)
Assignee | ||
Comment 2•11 years ago
|
||
And here's a patch to fix the case in XPConnect.
Attachment #8341853 -
Flags: review?(bobbyholley+bmo)
Comment 3•11 years ago
|
||
Comment on attachment 8341853 [details] [diff] [review]
fix-xpconnect-barriers
Review of attachment 8341853 [details] [diff] [review]:
-----------------------------------------------------------------
I have no idea what this does. Andrew or one of the GC guys can review it.
Attachment #8341853 -
Flags: review?(bobbyholley+bmo)
Comment 4•11 years ago
|
||
I vote for Terrence...
Assignee | ||
Updated•11 years ago
|
Attachment #8341853 -
Flags: review?(terrence)
Comment 5•11 years ago
|
||
Comment on attachment 8341851 [details] [diff] [review]
fix-ctypes-barriers
Review of attachment 8341851 [details] [diff] [review]:
-----------------------------------------------------------------
Great! Sorry about the delay; I thought I hit submit yesterday. Firefox has been lagging horribly for me lately, so I'm going to blame that. r=me
::: js/src/ctypes/CTypes.h
@@ +224,5 @@
> + JSObject* mType; // CType of the field
> + size_t mIndex; // index of the field in the struct (first is 0)
> + size_t mOffset; // offset of the field in the struct, in bytes
> +};
> +JS_STATIC_ASSERT(sizeof(UnbarrieredFieldInfo) == sizeof(FieldInfo));
We are using the C++11 static_assert now. Check gc/Heap.h for examples.
Attachment #8341851 -
Flags: review?(terrence) → review+
Comment 6•11 years ago
|
||
Comment on attachment 8341853 [details] [diff] [review]
fix-xpconnect-barriers
Review of attachment 8341853 [details] [diff] [review]:
-----------------------------------------------------------------
r=me
::: js/xpconnect/src/XPCMaps.h
@@ +694,5 @@
> * This function is called during minor GCs for each key in the HashMap that
> * has been moved.
> */
> static void KeyMarkCallback(JSTracer *trc, void *k, void *d) {
> + typedef js::HashMap<JSObject *, JSObject *, js::PointerHasher<JSObject *, 3>,
It would be nice to have a comment here explaining this for the casual reader.
Attachment #8341853 -
Flags: review?(terrence) → review+
Assignee | ||
Comment 7•11 years ago
|
||
Comment 8•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/27dd92819372
https://hg.mozilla.org/mozilla-central/rev/66bd8afba725
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla28
Updated•11 years ago
|
Whiteboard: [qa-]
You need to log in
before you can comment on or make changes to this bug.
Description
•