|
@@ -35,6 +35,7 @@
|
|
#define MAXREGS 255
|
|
#define MAXREGS 255
|
|
|
|
|
|
|
|
|
|
|
|
+/* (note that expressions VJMP also have jumps.) */
|
|
#define hasjumps(e) ((e)->t != (e)->f)
|
|
#define hasjumps(e) ((e)->t != (e)->f)
|
|
|
|
|
|
|
|
|
|
@@ -985,7 +986,7 @@ void luaK_exp2anyregup (FuncState *fs, expdesc *e) {
|
|
** or it is a constant.
|
|
** or it is a constant.
|
|
*/
|
|
*/
|
|
void luaK_exp2val (FuncState *fs, expdesc *e) {
|
|
void luaK_exp2val (FuncState *fs, expdesc *e) {
|
|
- if (hasjumps(e))
|
|
|
|
|
|
+ if (e->k == VJMP || hasjumps(e))
|
|
luaK_exp2anyreg(fs, e);
|
|
luaK_exp2anyreg(fs, e);
|
|
else
|
|
else
|
|
luaK_dischargevars(fs, e);
|
|
luaK_dischargevars(fs, e);
|