aboutsummaryrefslogtreecommitdiff
path: root/lcode.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2004-06-29 15:49:02 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2004-06-29 15:49:02 -0300
commit02a2c01ccd4dda04636a30cb60b6dd52511fd790 (patch)
treee2d76d2647ca613715738f37ba1d532a149a187e /lcode.c
parent23e08a68f51b36506c5ee8571e9dca01d67b7454 (diff)
downloadlua-02a2c01ccd4dda04636a30cb60b6dd52511fd790.tar.gz
lua-02a2c01ccd4dda04636a30cb60b6dd52511fd790.tar.bz2
lua-02a2c01ccd4dda04636a30cb60b6dd52511fd790.zip
new way to code RK values
Diffstat (limited to 'lcode.c')
-rw-r--r--lcode.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/lcode.c b/lcode.c
index 8ea811d8..b1a8a855 100644
--- a/lcode.c
+++ b/lcode.c
@@ -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;