new way to code RK values

This commit is contained in:
Roberto Ierusalimschy
2004-06-29 15:49:02 -03:00
parent 23e08a68f5
commit 02a2c01ccd
4 changed files with 32 additions and 16 deletions

10
lcode.c
View File

@@ -1,5 +1,5 @@
/*
** $Id: lcode.c,v 2.2 2004/04/30 20:13:38 roberto Exp roberto $
** $Id: lcode.c,v 2.3 2004/05/31 18:51:50 roberto Exp roberto $
** Code generator for Lua
** See Copyright Notice in lua.h
*/
@@ -418,16 +418,16 @@ int luaK_exp2RK (FuncState *fs, expdesc *e) {
luaK_exp2val(fs, e);
switch (e->k) {
case VNIL: {
if (fs->nk + MAXSTACK <= MAXARG_C) { /* constant fit in argC? */
if (fs->nk <= MAXINDEXRK) { /* constant fit in RK operand? */
e->info = nil_constant(fs);
e->k = VK;
return e->info + MAXSTACK;
return RKASK(e->info);
}
else break;
}
case VK: {
if (e->info + MAXSTACK <= MAXARG_C) /* constant fit in argC? */
return e->info + MAXSTACK;
if (e->info <= MAXINDEXRK) /* constant fit in argC? */
return RKASK(e->info);
else break;
}
default: break;