diff options
Diffstat (limited to 'src/lua51/lvm.c')
-rw-r--r-- | src/lua51/lvm.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lua51/lvm.c b/src/lua51/lvm.c index 374dcd3..500ca4a 100644 --- a/src/lua51/lvm.c +++ b/src/lua51/lvm.c @@ -401,6 +401,8 @@ reentry: /* entry point */ for (;;) { const Instruction i = *pc++; StkId ra; + + // 触发hook if ((L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) && (--L->hookcount == 0 || L->hookmask & LUA_MASKLINE)) { traceexec(L, pc); @@ -410,6 +412,7 @@ reentry: /* entry point */ } base = L->base; } + /* warning!! several calls may realloc the stack and invalidate `ra' */ ra = RA(i); //c 从指令中拿到ra lua_assert(base == L->base && L->base == L->ci->base); |