lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


---------- Forwarded message ----------
From: CHU Run-min <churunmin@gmail.com>
Date: 2006-6-4 äå8:12
Subject: Re: About ifstat
To: Lua list <lua@bazar2.conectiva.com.br>


Thank you very much! I understand the meaning of luaK_patchtohere. When I dig into Lua source, I found another problem which confusing me.


static void leaveblock (FuncState *fs) { BlockCnt *bl = fs->bl; fs->bl = bl->previous; removevars(fs->ls, bl->nactvar); if (bl->upval) luaK_codeABC(fs, OP_CLOSE, bl->nactvar, 0, 0); lua_assert(!bl->isbreakable || !bl->upval); /* loops have no body */ lua_assert(bl->nactvar == fs->nactvar); fs->freereg = fs->nactvar; /* free registers */ luaK_patchtohere(fs, bl->breaklist); }


lua_assert(!bl->isbreakable || !bl->upval); /* loops have no body */ According to the assert, it seems for statement and while statement cannot have upvalue.Would you give me more information about this?