commit ad960095bfc10e9b7172ac8bd6ae785d798b850f
parent 33e3774f447cbcfa4fe43b8b47d0306e52937428
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Tue, 9 Jan 2018 12:23:13 -0200
avoid jumping into a variable scope (C++ does not allow that)
Diffstat:
M | lvm.c | | | 16 | ++++++++-------- |
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/lvm.c b/lvm.c
@@ -1,5 +1,5 @@
/*
-** $Id: lvm.c,v 2.330 2017/12/28 15:42:57 roberto Exp roberto $
+** $Id: lvm.c,v 2.331 2017/12/30 20:46:18 roberto Exp roberto $
** Lua virtual machine
** See Copyright Notice in lua.h
*/
@@ -1401,12 +1401,7 @@ void luaV_execute (lua_State *L, CallInfo *ci) {
vmcase(OP_EQ) {
TValue *rb = vRB(i);
Protect(cond = luaV_equalobj(L, vra, rb));
- condjump:
- if (cond != GETARG_k(i))
- pc++; /* skip next jump */
- else
- donextjump(ci);
- vmbreak;
+ goto condjump;
}
vmcase(OP_LT) {
TValue *rb = vRB(i);
@@ -1472,7 +1467,12 @@ void luaV_execute (lua_State *L, CallInfo *ci) {
}
vmcase(OP_TEST) {
cond = !l_isfalse(vra);
- goto condjump;
+ condjump:
+ if (cond != GETARG_k(i))
+ pc++; /* skip next jump */
+ else
+ donextjump(ci);
+ vmbreak;
}
vmcase(OP_TESTSET) {
TValue *rb = vRB(i);