Fix EmitJump to AddSpanDep if in all necessary cases (155081, the small crash-fix patch).

git-svn-id: svn://10.0.0.236/trunk@171309 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
brendan%mozilla.org 2005-03-29 02:45:03 +00:00
parent 17be13f84c
commit ac09b11f9e

View File

@ -1135,16 +1135,16 @@ OptimizeSpanDeps(JSContext *cx, JSCodeGenerator *cg)
static JSBool
EmitJump(JSContext *cx, JSCodeGenerator *cg, JSOp op, ptrdiff_t off)
{
JSBool extend;
ptrdiff_t jmp;
jsbytecode *pc;
if (off < JUMP_OFFSET_MIN || JUMP_OFFSET_MAX < off) {
if (!cg->spanDeps && !BuildSpanDepTable(cx, cg))
return JS_FALSE;
}
extend = off < JUMP_OFFSET_MIN || JUMP_OFFSET_MAX < off;
if (extend && !cg->spanDeps && !BuildSpanDepTable(cx, cg))
return JS_FALSE;
jmp = js_Emit3(cx, cg, op, JUMP_OFFSET_HI(off), JUMP_OFFSET_LO(off));
if (jmp >= 0 && cg->spanDeps) {
if (jmp >= 0 && (extend || cg->spanDeps)) {
pc = CG_CODE(cg, jmp);
if (!AddSpanDep(cx, cg, pc, pc, off))
return JS_FALSE;