mirror of https://github.com/rusefi/lua.git
table field names for dedicated opcodes can be restricted to
small strings for slightly faster access
This commit is contained in:
parent
92b3deaffa
commit
de74289049
6
lcode.c
6
lcode.c
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
** $Id: lcode.c,v 2.117 2017/04/26 17:46:52 roberto Exp roberto $
|
||||
** $Id: lcode.c,v 2.118 2017/04/28 20:57:45 roberto Exp roberto $
|
||||
** Code generator for Lua
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
|
@ -978,11 +978,11 @@ static void codenot (FuncState *fs, expdesc *e) {
|
|||
|
||||
|
||||
/*
|
||||
** Check whether expression 'e' is a literal string
|
||||
** Check whether expression 'e' is a small literal string
|
||||
*/
|
||||
static int isKstr (FuncState *fs, expdesc *e) {
|
||||
return (e->k == VK && !hasjumps(e) && e->u.info <= MAXARG_C &&
|
||||
ttisstring(&fs->f->k[e->u.info]));
|
||||
ttisshrstring(&fs->f->k[e->u.info]));
|
||||
}
|
||||
|
||||
|
||||
|
|
10
lvm.c
10
lvm.c
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
** $Id: lvm.c,v 2.282 2017/05/13 13:54:47 roberto Exp roberto $
|
||||
** $Id: lvm.c,v 2.283 2017/05/18 19:34:39 roberto Exp roberto $
|
||||
** Lua virtual machine
|
||||
** See Copyright Notice in lua.h
|
||||
*/
|
||||
|
@ -865,7 +865,7 @@ void luaV_execute (lua_State *L) {
|
|||
TValue *upval = cl->upvals[GETARG_B(i)]->v;
|
||||
TValue *rc = KC(i);
|
||||
TString *key = tsvalue(rc); /* key must be a string */
|
||||
if (luaV_fastget(L, upval, key, slot, luaH_getstr)) {
|
||||
if (luaV_fastget(L, upval, key, slot, luaH_getshortstr)) {
|
||||
setobj2s(L, ra, slot);
|
||||
}
|
||||
else Protect(luaV_finishget(L, upval, rc, ra, slot));
|
||||
|
@ -904,7 +904,7 @@ void luaV_execute (lua_State *L) {
|
|||
StkId rb = RB(i);
|
||||
TValue *rc = KC(i);
|
||||
TString *key = tsvalue(rc); /* key must be a string */
|
||||
if (luaV_fastget(L, rb, key, slot, luaH_getstr)) {
|
||||
if (luaV_fastget(L, rb, key, slot, luaH_getshortstr)) {
|
||||
setobj2s(L, ra, slot);
|
||||
}
|
||||
else Protect(luaV_finishget(L, rb, rc, ra, slot));
|
||||
|
@ -916,7 +916,7 @@ void luaV_execute (lua_State *L) {
|
|||
TValue *rb = KB(i);
|
||||
TValue *rc = RKC(i);
|
||||
TString *key = tsvalue(rb); /* key must be a string */
|
||||
if (luaV_fastget(L, upval, key, slot, luaH_getstr))
|
||||
if (luaV_fastget(L, upval, key, slot, luaH_getshortstr))
|
||||
luaV_finishfastset(L, upval, slot, rc);
|
||||
else
|
||||
Protect(luaV_finishset(L, upval, rb, rc, slot));
|
||||
|
@ -953,7 +953,7 @@ void luaV_execute (lua_State *L) {
|
|||
TValue *rb = KB(i);
|
||||
TValue *rc = RKC(i);
|
||||
TString *key = tsvalue(rb); /* key must be a string */
|
||||
if (luaV_fastget(L, ra, key, slot, luaH_getstr))
|
||||
if (luaV_fastget(L, ra, key, slot, luaH_getshortstr))
|
||||
luaV_finishfastset(L, ra, slot, rc);
|
||||
else
|
||||
Protect(luaV_finishset(L, ra, rb, rc, slot));
|
||||
|
|
Loading…
Reference in New Issue