浏览代码

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

Roberto Ierusalimschy 22 年之前
父节点
当前提交
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
 ** See Copyright Notice in lua.h
 */
@@ -365,6 +365,7 @@ static Instruction luaG_symbexec (const Proto *pt, int lastpc, int reg) {
       }
       case OP_TFORLOOP:
         checkreg(pt, a+2+c);
+        if (reg >= a) last = pc;  /* affect all registers above base */
         /* go through */
       case OP_FORLOOP:
         checkreg(pt, a+2);