aboutsummaryrefslogtreecommitdiff
path: root/ldebug.c
diff options
context:
space:
mode:
Diffstat (limited to 'ldebug.c')
-rw-r--r--ldebug.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/ldebug.c b/ldebug.c
index 6980cdd2..36c5c391 100644
--- a/ldebug.c
+++ b/ldebug.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ldebug.c,v 2.7 2004/06/29 18:49:02 roberto Exp roberto $ 2** $Id: ldebug.c,v 2.8 2004/09/01 13:47:31 roberto Exp $
3** Debug Interface 3** Debug Interface
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -261,11 +261,11 @@ int luaG_checkopenop (Instruction i) {
261 switch (GET_OPCODE(i)) { 261 switch (GET_OPCODE(i)) {
262 case OP_CALL: 262 case OP_CALL:
263 case OP_TAILCALL: 263 case OP_TAILCALL:
264 case OP_RETURN: { 264 case OP_RETURN:
265 case OP_SETLIST: {
265 check(GETARG_B(i) == 0); 266 check(GETARG_B(i) == 0);
266 return 1; 267 return 1;
267 } 268 }
268 case OP_SETLISTO: return 1;
269 default: return 0; /* invalid instruction after an open call */ 269 default: return 0; /* invalid instruction after an open call */
270 } 270 }
271} 271}
@@ -392,7 +392,8 @@ static Instruction luaG_symbexec (const Proto *pt, int lastpc, int reg) {
392 break; 392 break;
393 } 393 }
394 case OP_SETLIST: { 394 case OP_SETLIST: {
395 checkreg(pt, a + (b&(LFIELDS_PER_FLUSH-1)) + 1); 395 if (b > 0) checkreg(pt, a + b);
396 if (c == 0) pc++;
396 break; 397 break;
397 } 398 }
398 case OP_CLOSURE: { 399 case OP_CLOSURE: {