2
0
Эх сурвалжийг харах

TFORLOOP makes a call that affects all values above it on the stack

Roberto Ierusalimschy 22 жил өмнө
parent
commit
9bd3fc1039
1 өөрчлөгдсөн 2 нэмэгдсэн , 1 устгасан
  1. 2 1
      ldebug.c

+ 2 - 1
ldebug.c

@@ -1,5 +1,5 @@
 /*
 /*
-** $Id: ldebug.c,v 1.140 2002/11/26 08:59:48 roberto Exp roberto $
+** $Id: ldebug.c,v 1.141 2002/12/04 17:38:31 roberto Exp roberto $
 ** Debug Interface
 ** Debug Interface
 ** See Copyright Notice in lua.h
 ** See Copyright Notice in lua.h
 */
 */
@@ -365,6 +365,7 @@ static Instruction luaG_symbexec (const Proto *pt, int lastpc, int reg) {
       }
       }
       case OP_TFORLOOP:
       case OP_TFORLOOP:
         checkreg(pt, a+2+c);
         checkreg(pt, a+2+c);
+        if (reg >= a) last = pc;  /* affect all registers above base */
         /* go through */
         /* go through */
       case OP_FORLOOP:
       case OP_FORLOOP:
         checkreg(pt, a+2);
         checkreg(pt, a+2);