diff options
Diffstat (limited to 'lcode.c')
-rw-r--r-- | lcode.c | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lcode.c,v 2.2 2004/04/30 20:13:38 roberto Exp roberto $ | 2 | ** $Id: lcode.c,v 2.3 2004/05/31 18:51:50 roberto Exp roberto $ |
3 | ** Code generator for Lua | 3 | ** Code generator for Lua |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -418,16 +418,16 @@ int luaK_exp2RK (FuncState *fs, expdesc *e) { | |||
418 | luaK_exp2val(fs, e); | 418 | luaK_exp2val(fs, e); |
419 | switch (e->k) { | 419 | switch (e->k) { |
420 | case VNIL: { | 420 | case VNIL: { |
421 | if (fs->nk + MAXSTACK <= MAXARG_C) { /* constant fit in argC? */ | 421 | if (fs->nk <= MAXINDEXRK) { /* constant fit in RK operand? */ |
422 | e->info = nil_constant(fs); | 422 | e->info = nil_constant(fs); |
423 | e->k = VK; | 423 | e->k = VK; |
424 | return e->info + MAXSTACK; | 424 | return RKASK(e->info); |
425 | } | 425 | } |
426 | else break; | 426 | else break; |
427 | } | 427 | } |
428 | case VK: { | 428 | case VK: { |
429 | if (e->info + MAXSTACK <= MAXARG_C) /* constant fit in argC? */ | 429 | if (e->info <= MAXINDEXRK) /* constant fit in argC? */ |
430 | return e->info + MAXSTACK; | 430 | return RKASK(e->info); |
431 | else break; | 431 | else break; |
432 | } | 432 | } |
433 | default: break; | 433 | default: break; |