Bug 756851 - add missing call to object->markIfUnmarked before GCMarker::pushObject. r=billm
authorTill Schneidereit <tschneidereit@gmail.com>
Sun, 20 May 2012 14:34:21 -0700
changeset 96724 fb3036d9b9e6a0c493d0bec20b67d57c539100f1
parent 96723 6e9d62160729562b976703233fba10e12f6a4b45
child 96734 022dfc84028c87dda82496c82f471ec059082315
push id1439
push userlsblakk@mozilla.com
push dateMon, 04 Jun 2012 20:19:22 +0000
treeherdermozilla-aurora@ea74834dccd3 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbillm
bugs756851
milestone15.0a1
Bug 756851 - add missing call to object->markIfUnmarked before GCMarker::pushObject. r=billm
js/src/gc/Marking.cpp
--- a/js/src/gc/Marking.cpp
+++ b/js/src/gc/Marking.cpp
@@ -1014,17 +1014,17 @@ GCMarker::processMarkStackOther(SliceBud
                 JS_ASSERT(thing <= arena->thingsEnd());
                 if (thing == span->first) {
                     if (!span->hasNext())
                         break;
                     thing = span->last;
                     span = span->nextSpan();
                 } else {
                     JSObject *object = reinterpret_cast<JSObject *>(thing);
-                    if (object->hasSingletonType())
+                    if (object->hasSingletonType() && object->markIfUnmarked(getMarkColor()))
                         pushObject(object);
                     budget.step();
                 }
             }
             if (budget.isOverBudget()) {
                 pushArenaList(aheader);
                 return;
             }