Bug 688769 - Remove dead args from StackFrame::functionEpilogue (r=bhackett)

--HG--
extra : rebase_source : ebb55d46c774a4e1dad6eacf59d55e5da496948c
This commit is contained in:
Luke Wagner 2011-09-23 08:59:19 -07:00
parent bf9853332c
commit f4a84db75a
2 changed files with 11 additions and 13 deletions

View File

@ -397,7 +397,7 @@ StackFrame::functionPrologue(JSContext *cx)
}
inline void
StackFrame::functionEpilogue(bool objectsOnly)
StackFrame::functionEpilogue()
{
JS_ASSERT(isNonEvalFunctionFrame());
@ -409,12 +409,12 @@ StackFrame::functionEpilogue(bool objectsOnly)
js_PutArgsObject(this);
}
if (!objectsOnly && maintainNestingState())
if (maintainNestingState())
types::NestingEpilogue(this);
}
inline void
StackFrame::markFunctionEpilogueDone(bool activationOnly)
StackFrame::markFunctionEpilogueDone()
{
if (flags_ & (HAS_ARGS_OBJ | HAS_CALL_OBJ)) {
if (hasArgsObj() && !argsObj().maybeStackFrame()) {
@ -441,7 +441,7 @@ StackFrame::markFunctionEpilogueDone(bool activationOnly)
* when we redo it in the epilogue we get the right final value. The other
* nesting epilogue changes (update active args/vars) are idempotent.
*/
if (!activationOnly && maintainNestingState())
if (maintainNestingState())
script()->nesting()->activeFrames++;
}

View File

@ -863,19 +863,17 @@ class StackFrame
/*
* Epilogue for function frames: put any args or call object for the frame
* which may still be live, and maintain type nesting invariants. Only the
* args/call objects are put if activationOnly is set. Note: this does not
* mark the epilogue as having been completed, since the frame is about to
* be popped. Use markFunctionEpilogueDone for this.
* which may still be live, and maintain type nesting invariants. Note:
* this does not mark the epilogue as having been completed, since the
* frame is about to be popped. Use markFunctionEpilogueDone for this.
*/
inline void functionEpilogue(bool activationOnly = false);
inline void functionEpilogue();
/*
* Mark any work needed in the function's epilogue as done. Only the args
* and call objects are reset if activationOnly is set. If activationOnly
* is *NOT* set, this call must be followed by a later functionEpilogue.
* Mark any work needed in the function's epilogue as done. This call must
* be followed by a later functionEpilogue.
*/
inline void markFunctionEpilogueDone(bool activationOnly = false);
inline void markFunctionEpilogueDone();
inline bool maintainNestingState() const;