From 65d2294454ab68d164154c7ce05caa50bd97d143 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Thu, 26 Nov 2020 18:23:40 -0300 Subject: Changed access to global table in the registry The global table is always in the array part of the registry; we can use this fact to make its access slightly more efficient. --- lstate.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'lstate.c') diff --git a/lstate.c b/lstate.c index 1c7b8791..1596b51c 100644 --- a/lstate.c +++ b/lstate.c @@ -213,17 +213,14 @@ static void freestack (lua_State *L) { ** Create registry table and its predefined values */ static void init_registry (lua_State *L, global_State *g) { - TValue temp; /* create registry */ Table *registry = luaH_new(L); sethvalue(L, &g->l_registry, registry); luaH_resize(L, registry, LUA_RIDX_LAST, 0); /* registry[LUA_RIDX_MAINTHREAD] = L */ - setthvalue(L, &temp, L); /* temp = L */ - luaH_setint(L, registry, LUA_RIDX_MAINTHREAD, &temp); - /* registry[LUA_RIDX_GLOBALS] = table of globals */ - sethvalue(L, &temp, luaH_new(L)); /* temp = new table (global table) */ - luaH_setint(L, registry, LUA_RIDX_GLOBALS, &temp); + setthvalue(L, ®istry->array[LUA_RIDX_MAINTHREAD - 1], L); + /* registry[LUA_RIDX_GLOBALS] = new table (table of globals) */ + sethvalue(L, ®istry->array[LUA_RIDX_GLOBALS - 1], luaH_new(L)); } -- cgit v1.2.3-55-g6feb