From 92afcf2823e5dfbe9bb10b0ed62306b6015fcfb8 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Tue, 9 Aug 2011 17:58:29 -0300 Subject: no more 'luaH_setstr (used only once) + 'luaH_setint' receives value to be set. --- ltable.c | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) (limited to 'ltable.c') diff --git a/ltable.c b/ltable.c index 9abf47eb..b2f40083 100644 --- a/ltable.c +++ b/ltable.c @@ -1,5 +1,5 @@ /* -** $Id: ltable.c,v 2.59 2011/06/09 18:23:27 roberto Exp roberto $ +** $Id: ltable.c,v 2.60 2011/06/16 14:14:31 roberto Exp roberto $ ** Lua tables (hash) ** See Copyright Notice in lua.h */ @@ -314,7 +314,7 @@ void luaH_resize (lua_State *L, Table *t, int nasize, int nhsize) { /* re-insert elements from vanishing slice */ for (i=nasize; iarray[i])) - setobjt2t(L, luaH_setint(L, t, i+1), &t->array[i]); + luaH_setint(L, t, i + 1, &t->array[i]); } /* shrink array */ luaM_reallocvector(L, t->array, oldasize, nasize, TValue); @@ -507,27 +507,17 @@ TValue *luaH_set (lua_State *L, Table *t, const TValue *key) { } -TValue *luaH_setint (lua_State *L, Table *t, int key) { +void luaH_setint (lua_State *L, Table *t, int key, TValue *value) { const TValue *p = luaH_getint(t, key); + TValue *cell; if (p != luaO_nilobject) - return cast(TValue *, p); + cell = cast(TValue *, p); else { TValue k; setnvalue(&k, cast_num(key)); - return newkey(L, t, &k); - } -} - - -TValue *luaH_setstr (lua_State *L, Table *t, TString *key) { - const TValue *p = luaH_getstr(t, key); - if (p != luaO_nilobject) - return cast(TValue *, p); - else { - TValue k; - setsvalue(L, &k, key); - return newkey(L, t, &k); + cell = newkey(L, t, &k); } + setobj2t(L, cell, value); } -- cgit v1.2.3-55-g6feb