Bug 863524 - Do not mark atoms compartment during minor GC; r=billm,terrence
authorBrian Hackett <bhackett1024@gmail.com>
Thu, 18 Apr 2013 15:20:02 -0700
changeset 129387 c1483e6de03a07c86cb807fb9cbc1cbfacf4c317
parent 129386 f710f8fb2ab0814997901e1f50d1605fcc22917c
child 129388 ac14e49337b84ae56dcee9206e3b2b26f922faee
push id24572
push userphilringnalda@gmail.com
push dateSun, 21 Apr 2013 16:31:35 +0000
treeherdermozilla-central@a09acc1ed635 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersbillm, terrence
bugs863524
milestone23.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 863524 - Do not mark atoms compartment during minor GC; r=billm,terrence
js/src/gc/RootMarking.cpp
--- a/js/src/gc/RootMarking.cpp
+++ b/js/src/gc/RootMarking.cpp
@@ -696,17 +696,19 @@ js::gc::MarkRuntime(JSTracer *trc, bool 
     }
 
     if (rt->scriptAndCountsVector) {
         ScriptAndCountsVector &vec = *rt->scriptAndCountsVector;
         for (size_t i = 0; i < vec.length(); i++)
             MarkScriptRoot(trc, &vec[i].script, "scriptAndCountsVector");
     }
 
-    if (!IS_GC_MARKING_TRACER(trc) || rt->atomsCompartment->zone()->isCollecting()) {
+    if (!trc->runtime->isHeapMinorCollecting() &&
+        (!IS_GC_MARKING_TRACER(trc) || rt->atomsCompartment->zone()->isCollecting()))
+    {
         MarkAtoms(trc);
 #ifdef JS_ION
         /* Any Ion wrappers survive until the runtime is being torn down. */
         if (rt->hasContexts())
             ion::IonRuntime::Mark(trc);
 #endif
     }