Bug 743868 - Fix barriers in SupressDeletedProperties; r=billm
Right now, we simply stop tracing through deleted properties. This causes us to delete things that are still in the write buffer. We need to, in addition, set the reference to NULL to ensure that the write buffer doesn't dereference these dead entries.
This commit is contained in:
@@ -1051,10 +1051,11 @@ SuppressDeletedPropertyHelper(JSContext *cx, JSObject *obj, StringPredicate pred
|
||||
ni->props_end = ni->end() - 1;
|
||||
|
||||
/*
|
||||
* Invoke the write barrier on this element, since it's
|
||||
* no longer going to be marked.
|
||||
* This invokes the pre barrier on this element, since
|
||||
* it's no longer going to be marked, and ensures that
|
||||
* any existing remembered set entry will be dropped.
|
||||
*/
|
||||
ni->props_end->HeapPtr<JSFlatString>::~HeapPtr();
|
||||
*ni->props_end = NULL;
|
||||
}
|
||||
|
||||
/* Don't reuse modified native iterators. */
|
||||
|
||||
Reference in New Issue
Block a user