diff --git a/src/lj_dispatch.c b/src/lj_dispatch.c index 7b66be7e..57809e62 100644 --- a/src/lj_dispatch.c +++ b/src/lj_dispatch.c @@ -307,9 +307,9 @@ int luaJIT_setmode(lua_State *L, int idx, int mode) } else { return 0; /* Failed. */ } - g->bc_cfunc_ext = BCINS_AD(BC_FUNCCW, 0, 0); + setbc_op(&g->bc_cfunc_ext, BC_FUNCCW); } else { - g->bc_cfunc_ext = BCINS_AD(BC_FUNCC, 0, 0); + setbc_op(&g->bc_cfunc_ext, BC_FUNCC); } break; default: diff --git a/src/lj_parse.c b/src/lj_parse.c index 6319c272..a30921af 100644 --- a/src/lj_parse.c +++ b/src/lj_parse.c @@ -2513,9 +2513,11 @@ static void parse_for_num(LexState *ls, GCstr *varname, BCLine line) */ static int predict_next(LexState *ls, FuncState *fs, BCPos pc) { - BCIns ins = fs->bcbase[pc].ins; + BCIns ins; GCstr *name; cTValue *o; + if (pc >= fs->bclim) return 0; + ins = fs->bcbase[pc].ins; switch (bc_op(ins)) { case BC_MOV: if (bc_d(ins) >= fs->nactvar) return 0;