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:
Terrence Cole
2012-04-09 16:52:50 -07:00
parent da41f93e22
commit 30176f3b0a

View File

@@ -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. */