new format for SETLIST opcode

This commit is contained in:
Roberto Ierusalimschy 2004-10-04 16:04:34 -03:00
parent 5ee87acd6b
commit f7e9465a0c

View File

@ -1,5 +1,5 @@
/*
** $Id: ldebug.c,v 2.7 2004/06/29 18:49:02 roberto Exp roberto $
** $Id: ldebug.c,v 2.8 2004/09/01 13:47:31 roberto Exp $
** Debug Interface
** See Copyright Notice in lua.h
*/
@ -261,11 +261,11 @@ int luaG_checkopenop (Instruction i) {
switch (GET_OPCODE(i)) {
case OP_CALL:
case OP_TAILCALL:
case OP_RETURN: {
case OP_RETURN:
case OP_SETLIST: {
check(GETARG_B(i) == 0);
return 1;
}
case OP_SETLISTO: return 1;
default: return 0; /* invalid instruction after an open call */
}
}
@ -392,7 +392,8 @@ static Instruction luaG_symbexec (const Proto *pt, int lastpc, int reg) {
break;
}
case OP_SETLIST: {
checkreg(pt, a + (b&(LFIELDS_PER_FLUSH-1)) + 1);
if (b > 0) checkreg(pt, a + b);
if (c == 0) pc++;
break;
}
case OP_CLOSURE: {