Backed out changesets fff6b88d59c4 and 1c53e57a11ba (no bug) for OSX 10.8 bc crashes.
authorRyan VanderMeulen <ryanvm@gmail.com>
Tue, 27 Nov 2012 16:44:37 -0500
changeset 114292 37a54196d003ac95f9f90ea2eb4c91876a02542d
parent 114291 5de5d395032832e27e570aaa7cd616b53f490ca4
child 114293 59281806d3a6505bcae91f58eeec9e46e5254589
push id23913
push useremorley@mozilla.com
push dateWed, 28 Nov 2012 17:11:31 +0000
treeherdermozilla-central@17c267a881cf [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
milestone20.0a1
backs outfff6b88d59c4a68ad5baec1ef09bbb8e87a04eeb
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
Backed out changesets fff6b88d59c4 and 1c53e57a11ba (no bug) for OSX 10.8 bc crashes.
js/src/jsgc.cpp
--- 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.