summaryrefslogtreecommitdiff
path: root/ldebug.c
diff options
context:
space:
mode:
Diffstat (limited to 'ldebug.c')
-rw-r--r--ldebug.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/ldebug.c b/ldebug.c
index 16a3c5c5..17a0f11a 100644
--- a/ldebug.c
+++ b/ldebug.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ldebug.c,v 1.1 2001/11/29 22:14:34 rieru Exp rieru $ 2** $Id: ldebug.c,v 1.96 2001/12/18 20:52:30 roberto Exp $
3** Debug Interface 3** Debug Interface
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -303,7 +303,7 @@ static int checkopenop (const Proto *pt, int pc) {
303 switch (GET_OPCODE(i)) { 303 switch (GET_OPCODE(i)) {
304 case OP_CALL: 304 case OP_CALL:
305 case OP_RETURN: { 305 case OP_RETURN: {
306 check(GETARG_B(i) == NO_REG); 306 check(GETARG_B(i) == 0);
307 return 1; 307 return 1;
308 } 308 }
309 case OP_SETLISTO: return 1; 309 case OP_SETLISTO: return 1;
@@ -391,10 +391,11 @@ static Instruction luaG_symbexec (const Proto *pt, int lastpc, int reg) {
391 break; 391 break;
392 } 392 }
393 case OP_CALL: { 393 case OP_CALL: {
394 if (b != NO_REG) { 394 if (b != 0) {
395 checkreg(pt, a+b); 395 checkreg(pt, a+b-1);
396 } 396 }
397 if (c == NO_REG) { 397 c--; /* c = num. returns */
398 if (c == LUA_MULTRET) {
398 check(checkopenop(pt, pc)); 399 check(checkopenop(pt, pc));
399 } 400 }
400 else if (c != 0) 401 else if (c != 0)
@@ -403,8 +404,8 @@ static Instruction luaG_symbexec (const Proto *pt, int lastpc, int reg) {
403 break; 404 break;
404 } 405 }
405 case OP_RETURN: { 406 case OP_RETURN: {
406 if (b != NO_REG && b != 0) 407 b--; /* b = num. returns */
407 checkreg(pt, a+b-1); 408 if (b > 0) checkreg(pt, a+b-1);
408 break; 409 break;
409 } 410 }
410 case OP_FORPREP: 411 case OP_FORPREP: