aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lvm.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/lvm.c b/lvm.c
index bcb4318f..8db185b3 100644
--- a/lvm.c
+++ b/lvm.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lvm.c,v 2.106 2010/03/12 19:14:06 roberto Exp roberto $ 2** $Id: lvm.c,v 2.107 2010/03/26 20:58:11 roberto Exp roberto $
3** Lua virtual machine 3** Lua virtual machine
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -74,6 +74,10 @@ static void traceexec (lua_State *L) {
74 luaD_hook(L, LUA_HOOKLINE, newline); 74 luaD_hook(L, LUA_HOOKLINE, newline);
75 } 75 }
76 L->oldpc = ci->u.l.savedpc; 76 L->oldpc = ci->u.l.savedpc;
77 if (L->status == LUA_YIELD) { /* did hook yield? */
78 ci->u.l.savedpc--; /* undo increment (resume will increment it again) */
79 luaD_throw(L, LUA_YIELD);
80 }
77} 81}
78 82
79 83
@@ -460,10 +464,6 @@ void luaV_execute (lua_State *L) {
460 if ((L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) && 464 if ((L->hookmask & (LUA_MASKLINE | LUA_MASKCOUNT)) &&
461 (--L->hookcount == 0 || L->hookmask & LUA_MASKLINE)) { 465 (--L->hookcount == 0 || L->hookmask & LUA_MASKLINE)) {
462 traceexec(L); 466 traceexec(L);
463 if (L->status == LUA_YIELD) { /* did hook yield? */
464 ci->u.l.savedpc--; /* undo increment */
465 luaD_throw(L, LUA_YIELD);
466 }
467 base = ci->u.l.base; 467 base = ci->u.l.base;
468 } 468 }
469 /* warning!! several calls may realloc the stack and invalidate `ra' */ 469 /* warning!! several calls may realloc the stack and invalidate `ra' */