Bug 925547 - Suppress GC in debug-only call, r=terrence
authorSteve Fink <sfink@mozilla.com>
Fri, 11 Oct 2013 22:02:24 -0700
changeset 164381 09b4e50f4b2f4a97d917785257059c4b7797f699
parent 164380 f6b879837822bac2c4f5988a0d5d04b88625d657
child 164382 d5b4041f6c1391ebf23fc36078a38cbea7c2110e
push id3066
push userakeybl@mozilla.com
push dateMon, 09 Dec 2013 19:58:46 +0000
treeherdermozilla-beta@a31a0dce83aa [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersterrence
bugs925547
milestone27.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 925547 - Suppress GC in debug-only call, r=terrence
js/src/vm/Interpreter.cpp
--- a/js/src/vm/Interpreter.cpp
+++ b/js/src/vm/Interpreter.cpp
@@ -588,16 +588,17 @@ bool
 js::ExecuteKernel(JSContext *cx, HandleScript script, JSObject &scopeChainArg, const Value &thisv,
                   ExecuteType type, AbstractFramePtr evalInFrame, Value *result)
 {
     JS_ASSERT_IF(evalInFrame, type == EXECUTE_DEBUG);
     JS_ASSERT_IF(type == EXECUTE_GLOBAL, !scopeChainArg.is<ScopeObject>());
 #ifdef DEBUG
     if (thisv.isObject()) {
         RootedObject thisObj(cx, &thisv.toObject());
+        AutoSuppressGC nogc(cx);
         JS_ASSERT(GetOuterObject(cx, thisObj) == thisObj);
     }
 #endif
 
     if (script->isEmpty()) {
         if (result)
             result->setUndefined();
         return true;