Bug 639910 - JS_CHECK_RECURSION on !JS_TRACER path skipped |goto error|. (r=dvander)
authorPaul Biggar <pbiggar@mozilla.com>
Tue, 08 Mar 2011 12:58:54 -0800
changeset 64246 d3961f0a2adec33f5176712f3b6c32f9e4aa13d2
parent 64245 64ccb8c2892a0dc6ef92184876672cb671b9e5e4
child 64247 b9ca0ce513fd04978674073d6499a934145b6934
push idunknown
push userunknown
push dateunknown
reviewersdvander
bugs639910
milestone2.0b13pre
Bug 639910 - JS_CHECK_RECURSION on !JS_TRACER path skipped |goto error|. (r=dvander)
js/src/jsinterp.cpp
--- a/js/src/jsinterp.cpp
+++ b/js/src/jsinterp.cpp
@@ -791,17 +791,17 @@ InvokeSessionGuard::start(JSContext *cx,
         mjit::CompileStatus status = mjit::CanMethodJIT(cx, script_, fp, mjit::CompileRequest_JIT);
         if (status == mjit::Compile_Error)
             return false;
         if (status != mjit::Compile_Okay)
             break;
         /* Cannot also cache the raw code pointer; it can change. */
 
         /* Hoist dynamic checks from CheckStackAndEnterMethodJIT. */
-        JS_CHECK_RECURSION(cx, return JS_FALSE);
+        JS_CHECK_RECURSION(cx, return false);
         stackLimit_ = stack.getStackLimit(cx);
         if (!stackLimit_)
             return false;
 
         stop_ = script_->code + script_->length - 1;
         JS_ASSERT(*stop_ == JSOP_STOP);
 #endif
 
@@ -886,17 +886,17 @@ ExternalGetOrSet(JSContext *cx, JSObject
                  JSAccessMode mode, uintN argc, Value *argv, Value *rval)
 {
     LeaveTrace(cx);
 
     /*
      * ExternalInvoke could result in another try to get or set the same id
      * again, see bug 355497.
      */
-    JS_CHECK_RECURSION(cx, return JS_FALSE);
+    JS_CHECK_RECURSION(cx, return false);
 
     return ExternalInvoke(cx, ObjectValue(*obj), fval, argc, argv, rval);
 }
 
 bool
 Execute(JSContext *cx, JSObject *chain, JSScript *script,
         JSStackFrame *prev, uintN flags, Value *result)
 {
@@ -2617,17 +2617,17 @@ Interpret(JSContext *cx, JSStackFrame *e
 #else
     JS_CHECK_RECURSION(cx, do {
             if (TRACE_RECORDER(cx))
                 AbortRecording(cx, "too much recursion");
             goto error;
         } while (0););
 #endif
 #else
-    JS_CHECK_RECURSION(cx, return JS_FALSE);
+    JS_CHECK_RECURSION(cx, goto error);
 #endif
 
 #if JS_THREADED_INTERP
     DO_NEXT_OP(len);
 #else
     DO_NEXT_OP(len);
 #endif