author | Ryan VanderMeulen <ryanvm@gmail.com> |
Tue, 27 Nov 2012 16:44:37 -0500 | |
changeset 114292 | 37a54196d003ac95f9f90ea2eb4c91876a02542d |
parent 114291 | 5de5d395032832e27e570aaa7cd616b53f490ca4 |
child 114293 | 59281806d3a6505bcae91f58eeec9e46e5254589 |
push id | 23913 |
push user | emorley@mozilla.com |
push date | Wed, 28 Nov 2012 17:11:31 +0000 |
treeherder | mozilla-central@17c267a881cf [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
milestone | 20.0a1 |
backs out | fff6b88d59c4a68ad5baec1ef09bbb8e87a04eeb 1c53e57a11ba46fb4e02e082a31a36e2d0faa415 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
js/src/jsgc.cpp | file | annotate | diff | comparison | revisions |
--- a/js/src/jsgc.cpp +++ b/js/src/jsgc.cpp @@ -3884,32 +3884,32 @@ RemoveFromGrayList(RawObject wrapper) unsigned slot = GrayLinkSlot(wrapper); if (wrapper->getReservedSlot(slot).isUndefined()) return false; /* Not on our list. */ RawObject tail = wrapper->getReservedSlot(slot).toObjectOrNull(); wrapper->setReservedSlot(slot, UndefinedValue()); JSCompartment *c = CrossCompartmentPointerReferent(wrapper)->compartment(); - RawObject obj = c->gcIncomingGrayPointers; - if (obj == wrapper) { + RawObject o = c->gcIncomingGrayPointers; + if (o == wrapper) { c->gcIncomingGrayPointers = tail; return true; } - while (obj) { - unsigned slot = GrayLinkSlot(obj); - RawObject next = obj->getReservedSlot(slot).toObjectOrNull(); + while (o) { + unsigned slot = GrayLinkSlot(o); + RawObject next = o->getReservedSlot(slot).toObjectOrNull(); if (next == wrapper) { - obj->setCrossCompartmentSlot(slot, ObjectOrNullValue(tail)); + o->setCrossCompartmentSlot(slot, ObjectOrNullValue(tail)); return true; } - obj = next; - } - JS_NOT_REACHED("object not found in gray link list"); + o = next; + } + JS_NOT_REACHED(); } void js::NotifyGCNukeWrapper(RawObject o) { /* * References to target of wrapper are being removed, we no longer have to * remember to mark it.