Fix bustage in d6242989d95d; pushInvokeArgs should just LeaveTrace and avoid the silly requirement on callers (r=orange)

--HG--
extra : rebase_source : 2e3f97f7d4bc10c6fa90e91b6a76802ed31f4a72
This commit is contained in:
Luke Wagner 2011-09-06 11:58:19 -07:00
Родитель 90d87b30d6
Коммит 528949098b
5 изменённых файлов: 1 добавлений и 19 удалений

Просмотреть файл

@ -1823,7 +1823,6 @@ fun_toSource(JSContext *cx, uintN argc, Value *vp)
JSBool
js_fun_call(JSContext *cx, uintN argc, Value *vp)
{
LeaveTrace(cx);
Value fval = vp[1];
if (!js_IsCallable(fval)) {
@ -1889,8 +1888,6 @@ js_fun_apply(JSContext *cx, uintN argc, Value *vp)
if (!js_GetLengthProperty(cx, aobj, &length))
return false;
LeaveTrace(cx);
/* Step 6. */
if (length > StackSpace::ARGS_LENGTH_MAX) {
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_TOO_MANY_FUN_APPLY_ARGS);
@ -1998,8 +1995,6 @@ CallOrConstructBoundFunction(JSContext *cx, uintN argc, Value *vp)
JS_ASSERT(obj->isFunction());
JS_ASSERT(obj->isBoundFunction());
LeaveTrace(cx);
bool constructing = IsConstructing(vp);
/* 15.3.4.5.1 step 1, 15.3.4.5.2 step 3. */

Просмотреть файл

@ -659,12 +659,6 @@ js::InvokeKernel(JSContext *cx, const CallArgs &argsRef, MaybeConstruct construc
if (fun->isNative())
return CallJSNative(cx, fun->u.n.native, args);
#ifdef JS_TRACER
if (TRACE_RECORDER(cx))
AbortRecording(cx, "attempt to reenter VM while recording");
LeaveTrace(cx);
#endif
TypeMonitorCall(cx, args, construct);
/* Get pointer to new frame/slots, prepare arguments. */
@ -693,8 +687,6 @@ bool
js::Invoke(JSContext *cx, const Value &thisv, const Value &fval, uintN argc, Value *argv,
Value *rval)
{
LeaveTrace(cx);
InvokeArgsGuard args;
if (!cx->stack.pushInvokeArgs(cx, argc, &args))
return false;
@ -725,8 +717,6 @@ js::Invoke(JSContext *cx, const Value &thisv, const Value &fval, uintN argc, Val
bool
js::InvokeConstructor(JSContext *cx, const Value &fval, uintN argc, Value *argv, Value *rval)
{
LeaveTrace(cx);
InvokeArgsGuard args;
if (!cx->stack.pushInvokeArgs(cx, argc, &args))
return false;
@ -1142,8 +1132,6 @@ bool
js::InvokeConstructorWithGivenThis(JSContext *cx, JSObject *thisobj, const Value &fval,
uintN argc, Value *argv, Value *rval)
{
LeaveTrace(cx);
InvokeArgsGuard args;
if (!cx->stack.pushInvokeArgs(cx, argc, &args))
return JS_FALSE;

Просмотреть файл

@ -302,7 +302,6 @@ PreprocessValue(JSContext *cx, JSObject *holder, jsid key, Value *vp, StringifyC
if (!keyStr)
return false;
LeaveTrace(cx);
InvokeArgsGuard args;
if (!cx->stack.pushInvokeArgs(cx, 1, &args))
return false;

Просмотреть файл

@ -2074,7 +2074,6 @@ str_replace_flat_lambda(JSContext *cx, uintN argc, Value *vp, ReplaceData &rdata
const FlatMatch &fm)
{
JS_ASSERT(fm.match() >= 0);
LeaveTrace(cx);
JSString *matchStr = js_NewDependentString(cx, rdata.str, fm.match(), fm.patternLength());
if (!matchStr)

Просмотреть файл

@ -644,6 +644,7 @@ ContextStack::popSegment()
bool
ContextStack::pushInvokeArgs(JSContext *cx, uintN argc, InvokeArgsGuard *iag)
{
LeaveTrace(cx);
JS_ASSERT(argc <= StackSpace::ARGS_LENGTH_MAX);
uintN nvars = 2 + argc;