Fix js_GC to mark max(#actuals, #formals) slots at fp->argv (104584, r=shaver, sr=jband).

git-svn-id: svn://10.0.0.236/trunk@105455 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
brendan%mozilla.org 2001-10-16 02:21:02 +00:00
parent a76d9ab54f
commit f0ffd6eaeb

View File

@ -53,6 +53,7 @@
#include "jsatom.h"
#include "jscntxt.h"
#include "jsconfig.h"
#include "jsfun.h"
#include "jsgc.h"
#include "jsinterp.h"
#include "jslock.h"
@ -1150,14 +1151,16 @@ restart:
depth = fp->script->depth;
nslots = (JS_UPTRDIFF(fp->sp, fp->spbase)
< depth * sizeof(jsval))
? fp->sp - fp->spbase
? (uintN)(fp->sp - fp->spbase)
: depth;
GC_MARK_JSVALS(cx, nslots, fp->spbase, "operand");
}
}
GC_MARK(cx, fp->thisp, "this", NULL);
if (fp->argv)
GC_MARK_JSVALS(cx, fp->argc, fp->argv, "arg");
if (fp->argv) {
nslots = JS_MAX(fp->argc, fp->fun->nargs);
GC_MARK_JSVALS(cx, nslots, fp->argv, "arg");
}
if (JSVAL_IS_GCTHING(fp->rval))
GC_MARK(cx, JSVAL_TO_GCTHING(fp->rval), "rval", NULL);
if (fp->vars)