Add various autorooting, bug 772303. r=terrence

This commit is contained in:
Brian Hackett
2012-08-12 19:50:49 -06:00
parent 5b0ab9c175
commit 8a27276644
39 changed files with 561 additions and 417 deletions

View File

@@ -2589,8 +2589,10 @@ date_toISOString(JSContext *cx, unsigned argc, Value *vp)
static JSBool
date_toJSON(JSContext *cx, unsigned argc, Value *vp)
{
CallArgs args = CallArgsFromVp(argc, vp);
/* Step 1. */
RootedObject obj(cx, ToObject(cx, &vp[1]));
RootedObject obj(cx, ToObject(cx, args.thisv()));
if (!obj)
return false;
@@ -2601,7 +2603,7 @@ date_toJSON(JSContext *cx, unsigned argc, Value *vp)
/* Step 3. */
if (tv.isDouble() && !MOZ_DOUBLE_IS_FINITE(tv.toDouble())) {
vp->setNull();
args.rval().setNull();
return true;
}
@@ -2618,16 +2620,16 @@ date_toJSON(JSContext *cx, unsigned argc, Value *vp)
}
/* Step 6. */
InvokeArgsGuard args;
if (!cx->stack.pushInvokeArgs(cx, 0, &args))
InvokeArgsGuard ag;
if (!cx->stack.pushInvokeArgs(cx, 0, &ag))
return false;
args.calleev() = toISO;
args.thisv().setObject(*obj);
ag.setCallee(toISO);
ag.setThis(ObjectValue(*obj));
if (!Invoke(cx, args))
if (!Invoke(cx, ag))
return false;
*vp = args.rval();
args.rval().set(ag.rval());
return true;
}