diff options
Diffstat (limited to 'lvm.c')
-rw-r--r-- | lvm.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lvm.c,v 1.229 2002/05/06 15:51:41 roberto Exp roberto $ | 2 | ** $Id: lvm.c,v 1.230 2002/05/09 14:14:34 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 | */ |
@@ -548,7 +548,8 @@ StkId luaV_execute (lua_State *L) { | |||
548 | L->top = ra+5; | 548 | L->top = ra+5; |
549 | luaD_call(L, ra+2, GETARG_C(i) + 1); | 549 | luaD_call(L, ra+2, GETARG_C(i) + 1); |
550 | L->top = L->ci->top; | 550 | L->top = L->ci->top; |
551 | if (ttype(ra+2) != LUA_TNIL) pc++; /* skip jump (keep looping) */ | 551 | if (ttype(ra+2) == LUA_TNIL) pc++; /* skip jump (break loop) */ |
552 | else dojump(pc, GETARG_sBx(*pc) + 1); /* else jump back */ | ||
552 | break; | 553 | break; |
553 | } | 554 | } |
554 | case OP_TFORPREP: { | 555 | case OP_TFORPREP: { |
@@ -557,6 +558,7 @@ StkId luaV_execute (lua_State *L) { | |||
557 | setsvalue(ra, luaS_new(L, "next")); | 558 | setsvalue(ra, luaS_new(L, "next")); |
558 | luaV_gettable(L, gt(L), ra, ra); | 559 | luaV_gettable(L, gt(L), ra, ra); |
559 | } | 560 | } |
561 | dojump(pc, GETARG_sBx(i)); | ||
560 | break; | 562 | break; |
561 | } | 563 | } |
562 | case OP_SETLIST: | 564 | case OP_SETLIST: |