Bug 1196027 - check the actual current marking mode instead of the permanent intention, r=terrence
authorSteve Fink <sfink@mozilla.com>
Thu, 20 Aug 2015 10:10:42 -0700
changeset 258834 c09feddabbc9
parent 258833 6a725147ee24
child 258835 0dcc8b43ed51
push id64065
push usersfink@mozilla.com
push dateFri, 21 Aug 2015 23:04:09 +0000
treeherdermozilla-inbound@c09feddabbc9 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersterrence
bugs1196027
milestone43.0a1
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
Bug 1196027 - check the actual current marking mode instead of the permanent intention, r=terrence
js/src/jsgc.cpp
--- a/js/src/jsgc.cpp
+++ b/js/src/jsgc.cpp
@@ -4029,17 +4029,17 @@ GCRuntime::markWeakReferences(gcstats::P
     SliceBudget budget = SliceBudget::unlimited();
     marker.drainMarkStack(budget);
 
     for (;;) {
         bool markedAny = false;
         for (CompartmentIterT c(rt); !c.done(); c.next()) {
             if (c->watchpointMap)
                 markedAny |= c->watchpointMap->markIteratively(&marker);
-            if (marker.weakMapAction() != ExpandWeakMaps)
+            if (!marker.isWeakMarkingTracer())
                 markedAny |= WeakMapBase::markCompartmentIteratively(c, &marker);
         }
         markedAny |= Debugger::markAllIteratively(&marker);
         markedAny |= jit::JitRuntime::MarkJitcodeGlobalTableIteratively(&marker);
 
         if (!markedAny)
             break;