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 258903 c09feddabbc9
parent 258902 6a725147ee24
child 258904 0dcc8b43ed51
push id29263
push userryanvm@gmail.com
push dateSun, 23 Aug 2015 21:18:49 +0000
treeherdermozilla-central@4ccdd06e51d7 [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;