diff options
Diffstat (limited to 'ltable.c')
-rw-r--r-- | ltable.c | 14 |
1 files changed, 6 insertions, 8 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: ltable.c,v 1.4 1997/10/23 16:26:37 roberto Exp roberto $ | 2 | ** $Id: ltable.c,v 1.5 1997/10/24 17:17:24 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 | */ |
@@ -9,6 +9,7 @@ | |||
9 | #include "lauxlib.h" | 9 | #include "lauxlib.h" |
10 | #include "lmem.h" | 10 | #include "lmem.h" |
11 | #include "lobject.h" | 11 | #include "lobject.h" |
12 | #include "lstate.h" | ||
12 | #include "ltable.h" | 13 | #include "ltable.h" |
13 | #include "lua.h" | 14 | #include "lua.h" |
14 | 15 | ||
@@ -24,9 +25,6 @@ | |||
24 | #define TagDefault LUA_T_ARRAY; | 25 | #define TagDefault LUA_T_ARRAY; |
25 | 26 | ||
26 | 27 | ||
27 | GCnode luaH_root = {NULL, 0}; | ||
28 | |||
29 | |||
30 | 28 | ||
31 | static long int hashindex (TObject *ref) | 29 | static long int hashindex (TObject *ref) |
32 | { | 30 | { |
@@ -95,7 +93,7 @@ void luaH_free (Hash *frees) | |||
95 | { | 93 | { |
96 | while (frees) { | 94 | while (frees) { |
97 | Hash *next = (Hash *)frees->head.next; | 95 | Hash *next = (Hash *)frees->head.next; |
98 | luaO_nblocks -= gcsize(frees->nhash); | 96 | L->nblocks -= gcsize(frees->nhash); |
99 | hashdelete(frees); | 97 | hashdelete(frees); |
100 | frees = next; | 98 | frees = next; |
101 | } | 99 | } |
@@ -110,8 +108,8 @@ Hash *luaH_new (int nhash) | |||
110 | nhash(t) = nhash; | 108 | nhash(t) = nhash; |
111 | nuse(t) = 0; | 109 | nuse(t) = 0; |
112 | t->htag = TagDefault; | 110 | t->htag = TagDefault; |
113 | luaO_insertlist(&luaH_root, (GCnode *)t); | 111 | luaO_insertlist(&(L->roottable), (GCnode *)t); |
114 | luaO_nblocks += gcsize(nhash); | 112 | L->nblocks += gcsize(nhash); |
115 | return t; | 113 | return t; |
116 | } | 114 | } |
117 | 115 | ||
@@ -145,7 +143,7 @@ static void rehash (Hash *t) | |||
145 | if (ttype(ref(n)) != LUA_T_NIL && ttype(val(n)) != LUA_T_NIL) | 143 | if (ttype(ref(n)) != LUA_T_NIL && ttype(val(n)) != LUA_T_NIL) |
146 | *node(t, present(t, ref(n))) = *n; /* copy old node to luaM_new hash */ | 144 | *node(t, present(t, ref(n))) = *n; /* copy old node to luaM_new hash */ |
147 | } | 145 | } |
148 | luaO_nblocks += gcsize(t->nhash)-gcsize(nold); | 146 | L->nblocks += gcsize(t->nhash)-gcsize(nold); |
149 | luaM_free(vold); | 147 | luaM_free(vold); |
150 | } | 148 | } |
151 | 149 | ||