diff options
-rw-r--r-- | lgc.c | 6 | ||||
-rw-r--r-- | ltable.c | 14 | ||||
-rw-r--r-- | ltable.h | 4 | ||||
-rw-r--r-- | ltests.c | 4 |
4 files changed, 13 insertions, 15 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lgc.c,v 2.98 2010/06/04 13:25:10 roberto Exp roberto $ | 2 | ** $Id: lgc.c,v 2.99 2010/06/07 16:55:34 roberto Exp roberto $ |
3 | ** Garbage Collector | 3 | ** Garbage Collector |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -371,7 +371,7 @@ static int traverseephemeron (global_State *g, Table *h) { | |||
371 | if (ttisnil(gval(n))) /* entry is empty? */ | 371 | if (ttisnil(gval(n))) /* entry is empty? */ |
372 | removeentry(n); /* remove it */ | 372 | removeentry(n); /* remove it */ |
373 | else if (valiswhite(gval(n))) { /* value not marked yet? */ | 373 | else if (valiswhite(gval(n))) { /* value not marked yet? */ |
374 | if (iscleared(key2tval(n), 1)) /* key is not marked (yet)? */ | 374 | if (iscleared(gkey(n), 1)) /* key is not marked (yet)? */ |
375 | hasclears = 1; /* may have to propagate mark from key to value */ | 375 | hasclears = 1; /* may have to propagate mark from key to value */ |
376 | else { /* key is marked, so mark value */ | 376 | else { /* key is marked, so mark value */ |
377 | marked = 1; /* value was not marked */ | 377 | marked = 1; /* value was not marked */ |
@@ -574,7 +574,7 @@ static void cleartable (GCObject *l) { | |||
574 | } | 574 | } |
575 | for (n = gnode(h, 0); n < limit; n++) { | 575 | for (n = gnode(h, 0); n < limit; n++) { |
576 | if (!ttisnil(gval(n)) && /* non-empty entry? */ | 576 | if (!ttisnil(gval(n)) && /* non-empty entry? */ |
577 | (iscleared(key2tval(n), 1) || iscleared(gval(n), 0))) { | 577 | (iscleared(gkey(n), 1) || iscleared(gval(n), 0))) { |
578 | setnilvalue(gval(n)); /* remove value ... */ | 578 | setnilvalue(gval(n)); /* remove value ... */ |
579 | removeentry(n); /* and remove entry from table */ | 579 | removeentry(n); /* and remove entry from table */ |
580 | } | 580 | } |
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: ltable.c,v 2.50 2010/04/18 13:22:48 roberto Exp roberto $ | 2 | ** $Id: ltable.c,v 2.51 2010/06/04 13:05:29 roberto Exp roberto $ |
3 | ** Lua tables (hash) | 3 | ** Lua tables (hash) |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -148,7 +148,7 @@ static int findindex (lua_State *L, Table *t, StkId key) { | |||
148 | Node *n = mainposition(t, key); | 148 | Node *n = mainposition(t, key); |
149 | do { /* check whether `key' is somewhere in the chain */ | 149 | do { /* check whether `key' is somewhere in the chain */ |
150 | /* key may be dead already, but it is ok to use it in `next' */ | 150 | /* key may be dead already, but it is ok to use it in `next' */ |
151 | if (luaO_rawequalObj(key2tval(n), key) || | 151 | if (luaO_rawequalObj(gkey(n), key) || |
152 | (ttype(gkey(n)) == LUA_TDEADKEY && iscollectable(key) && | 152 | (ttype(gkey(n)) == LUA_TDEADKEY && iscollectable(key) && |
153 | gcvalue(gkey(n)) == gcvalue(key))) { | 153 | gcvalue(gkey(n)) == gcvalue(key))) { |
154 | i = cast_int(n - gnode(t, 0)); /* key index in hash table */ | 154 | i = cast_int(n - gnode(t, 0)); /* key index in hash table */ |
@@ -174,7 +174,7 @@ int luaH_next (lua_State *L, Table *t, StkId key) { | |||
174 | } | 174 | } |
175 | for (i -= t->sizearray; i < sizenode(t); i++) { /* then hash part */ | 175 | for (i -= t->sizearray; i < sizenode(t); i++) { /* then hash part */ |
176 | if (!ttisnil(gval(gnode(t, i)))) { /* a non-nil value? */ | 176 | if (!ttisnil(gval(gnode(t, i)))) { /* a non-nil value? */ |
177 | setobj2s(L, key, key2tval(gnode(t, i))); | 177 | setobj2s(L, key, gkey(gnode(t, i))); |
178 | setobj2s(L, key+1, gval(gnode(t, i))); | 178 | setobj2s(L, key+1, gval(gnode(t, i))); |
179 | return 1; | 179 | return 1; |
180 | } | 180 | } |
@@ -255,7 +255,7 @@ static int numusehash (const Table *t, int *nums, int *pnasize) { | |||
255 | while (i--) { | 255 | while (i--) { |
256 | Node *n = &t->node[i]; | 256 | Node *n = &t->node[i]; |
257 | if (!ttisnil(gval(n))) { | 257 | if (!ttisnil(gval(n))) { |
258 | ause += countint(key2tval(n), nums); | 258 | ause += countint(gkey(n), nums); |
259 | totaluse++; | 259 | totaluse++; |
260 | } | 260 | } |
261 | } | 261 | } |
@@ -321,7 +321,7 @@ void luaH_resize (lua_State *L, Table *t, int nasize, int nhsize) { | |||
321 | for (i = twoto(oldhsize) - 1; i >= 0; i--) { | 321 | for (i = twoto(oldhsize) - 1; i >= 0; i--) { |
322 | Node *old = nold+i; | 322 | Node *old = nold+i; |
323 | if (!ttisnil(gval(old))) | 323 | if (!ttisnil(gval(old))) |
324 | setobjt2t(L, luaH_set(L, t, key2tval(old)), gval(old)); | 324 | setobjt2t(L, luaH_set(L, t, gkey(old)), gval(old)); |
325 | } | 325 | } |
326 | if (!isdummy(nold)) | 326 | if (!isdummy(nold)) |
327 | luaM_freearray(L, nold, twoto(oldhsize)); /* free old array */ | 327 | luaM_freearray(L, nold, twoto(oldhsize)); /* free old array */ |
@@ -406,7 +406,7 @@ static TValue *newkey (lua_State *L, Table *t, const TValue *key) { | |||
406 | return luaH_set(L, t, key); /* re-insert key into grown table */ | 406 | return luaH_set(L, t, key); /* re-insert key into grown table */ |
407 | } | 407 | } |
408 | lua_assert(!isdummy(n)); | 408 | lua_assert(!isdummy(n)); |
409 | othern = mainposition(t, key2tval(mp)); | 409 | othern = mainposition(t, gkey(mp)); |
410 | if (othern != mp) { /* is colliding node out of its main position? */ | 410 | if (othern != mp) { /* is colliding node out of its main position? */ |
411 | /* yes; move colliding node into free position */ | 411 | /* yes; move colliding node into free position */ |
412 | while (gnext(othern) != mp) othern = gnext(othern); /* find previous */ | 412 | while (gnext(othern) != mp) othern = gnext(othern); /* find previous */ |
@@ -481,7 +481,7 @@ const TValue *luaH_get (Table *t, const TValue *key) { | |||
481 | default: { | 481 | default: { |
482 | Node *n = mainposition(t, key); | 482 | Node *n = mainposition(t, key); |
483 | do { /* check whether `key' is somewhere in the chain */ | 483 | do { /* check whether `key' is somewhere in the chain */ |
484 | if (luaO_rawequalObj(key2tval(n), key)) | 484 | if (luaO_rawequalObj(gkey(n), key)) |
485 | return gval(n); /* that's it */ | 485 | return gval(n); /* that's it */ |
486 | else n = gnext(n); | 486 | else n = gnext(n); |
487 | } while (n); | 487 | } while (n); |
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: ltable.h,v 2.12 2009/08/07 16:17:41 roberto Exp roberto $ | 2 | ** $Id: ltable.h,v 2.13 2009/11/06 17:07:48 roberto Exp roberto $ |
3 | ** Lua tables (hash) | 3 | ** Lua tables (hash) |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -15,8 +15,6 @@ | |||
15 | #define gval(n) (&(n)->i_val) | 15 | #define gval(n) (&(n)->i_val) |
16 | #define gnext(n) ((n)->i_key.nk.next) | 16 | #define gnext(n) ((n)->i_key.nk.next) |
17 | 17 | ||
18 | #define key2tval(n) (&(n)->i_key.tvk) | ||
19 | |||
20 | 18 | ||
21 | LUAI_FUNC const TValue *luaH_getint (Table *t, int key); | 19 | LUAI_FUNC const TValue *luaH_getint (Table *t, int key); |
22 | LUAI_FUNC TValue *luaH_setint (lua_State *L, Table *t, int key); | 20 | LUAI_FUNC TValue *luaH_setint (lua_State *L, Table *t, int key); |
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: ltests.c,v 2.108 2010/05/17 20:10:17 roberto Exp roberto $ | 2 | ** $Id: ltests.c,v 2.109 2010/06/10 21:29:47 roberto Exp roberto $ |
3 | ** Internal Module for Debugging of the Lua Implementation | 3 | ** Internal Module for Debugging of the Lua Implementation |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -689,7 +689,7 @@ static int table_query (lua_State *L) { | |||
689 | if (!ttisnil(gval(gnode(t, i))) || | 689 | if (!ttisnil(gval(gnode(t, i))) || |
690 | ttisnil(gkey(gnode(t, i))) || | 690 | ttisnil(gkey(gnode(t, i))) || |
691 | ttisnumber(gkey(gnode(t, i)))) { | 691 | ttisnumber(gkey(gnode(t, i)))) { |
692 | pushobject(L, key2tval(gnode(t, i))); | 692 | pushobject(L, gkey(gnode(t, i))); |
693 | } | 693 | } |
694 | else | 694 | else |
695 | lua_pushliteral(L, "<undef>"); | 695 | lua_pushliteral(L, "<undef>"); |