Bug 455464 - TM: "Assertion failure: !TRACE_RECORDER(cx) ^ (jumpTable == recordingJumpTable)" with gc getter (r=mrbkap).
authorBrendan Eich <brendan@mozilla.org>
Wed, 17 Sep 2008 08:10:23 +0100
changeset 19575 f59912630f60ed10fecfb5ef92e7b57a6377e6f5
parent 19574 02c38c8e437d368af50310b526ebd9f1a39073b9
child 19576 c82703d1d8c13890e81ec8fd654ee172306c05c8
push id1
push userroot
push dateTue, 26 Apr 2011 22:38:44 +0000
treeherdermozilla-beta@bfdb6e623a36 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmrbkap
bugs455464
milestone1.9.1b1pre
Bug 455464 - TM: "Assertion failure: !TRACE_RECORDER(cx) ^ (jumpTable == recordingJumpTable)" with gc getter (r=mrbkap).
js/src/jsgc.cpp
--- a/js/src/jsgc.cpp
+++ b/js/src/jsgc.cpp
@@ -3223,16 +3223,21 @@ js_GC(JSContext *cx, JSGCInvocationKind 
         rt->requestCount += requestDebit;
 #endif
         gckind = GC_LOCK_HELD;
         goto restart_at_beginning;
     }
 
     JS_UNLOCK_GC(rt);
 
+#ifdef JS_TRACER
+    if (JS_ON_TRACE(cx))
+        goto out;
+#endif
+
     /* Reset malloc counter. */
     rt->gcMallocBytes = 0;
 
 #ifdef JS_DUMP_SCOPE_METERS
   { extern void js_DumpScopeMeters(JSRuntime *rt);
     js_DumpScopeMeters(rt);
   }
 #endif
@@ -3528,16 +3533,19 @@ js_GC(JSContext *cx, JSGCInvocationKind 
         lsfp = fopen("/tmp/loopstats", "w");
     if (lsfp) {
         JS_DumpBasicStats(&rt->loopStats, "loops", lsfp);
         fflush(lsfp);
     }
   }
 #endif /* JS_DUMP_LOOP_STATS */
 
+#ifdef JS_TRACER
+out:
+#endif
     JS_LOCK_GC(rt);
 
     /*
      * We want to restart GC if js_GC was called recursively or if any of the
      * finalizers called js_RemoveRoot or js_UnlockGCThingRT.
      */
     if (rt->gcLevel > 1 || rt->gcPoke) {
         rt->gcLevel = 1;