diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2002-08-30 16:09:21 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2002-08-30 16:09:21 -0300 |
| commit | fdafd4f4a88d1584dea900517445a17d87f8b82f (patch) | |
| tree | 52e38e886d569e77c1df82ebe2bcfbaafd4c6f75 /lstate.c | |
| parent | beeff4ccafe5877d00119cb3d93f1f937d46dcfb (diff) | |
| download | lua-fdafd4f4a88d1584dea900517445a17d87f8b82f.tar.gz lua-fdafd4f4a88d1584dea900517445a17d87f8b82f.tar.bz2 lua-fdafd4f4a88d1584dea900517445a17d87f8b82f.zip | |
new structure for collectable objects, sharing a common header
Diffstat (limited to 'lstate.c')
| -rw-r--r-- | lstate.c | 14 |
1 files changed, 4 insertions, 10 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lstate.c,v 1.103 2002/08/07 19:22:39 roberto Exp roberto $ | 2 | ** $Id: lstate.c,v 1.104 2002/08/16 20:00:28 roberto Exp roberto $ |
| 3 | ** Global State | 3 | ** Global State |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -64,10 +64,7 @@ static void f_luaopen (lua_State *L, void *ud) { | |||
| 64 | G(L)->Mbuffer = NULL; | 64 | G(L)->Mbuffer = NULL; |
| 65 | G(L)->Mbuffsize = 0; | 65 | G(L)->Mbuffsize = 0; |
| 66 | G(L)->panic = &default_panic; | 66 | G(L)->panic = &default_panic; |
| 67 | G(L)->rootproto = NULL; | 67 | G(L)->rootgc = NULL; |
| 68 | G(L)->rootcl = NULL; | ||
| 69 | G(L)->roottable = NULL; | ||
| 70 | G(L)->rootupval = NULL; | ||
| 71 | G(L)->rootudata = NULL; | 68 | G(L)->rootudata = NULL; |
| 72 | G(L)->tmudata = NULL; | 69 | G(L)->tmudata = NULL; |
| 73 | setnilvalue(key(G(L)->dummynode)); | 70 | setnilvalue(key(G(L)->dummynode)); |
| @@ -76,7 +73,7 @@ static void f_luaopen (lua_State *L, void *ud) { | |||
| 76 | G(L)->nblocks = sizeof(lua_State) + sizeof(global_State); | 73 | G(L)->nblocks = sizeof(lua_State) + sizeof(global_State); |
| 77 | stack_init(L, L); /* init stack */ | 74 | stack_init(L, L); /* init stack */ |
| 78 | /* create default meta table with a dummy table, and then close the loop */ | 75 | /* create default meta table with a dummy table, and then close the loop */ |
| 79 | sethvalue(defaultmeta(L), NULL); | 76 | defaultmeta(L)->tt = LUA_TTABLE; |
| 80 | sethvalue(defaultmeta(L), luaH_new(L, 0, 4)); | 77 | sethvalue(defaultmeta(L), luaH_new(L, 0, 4)); |
| 81 | hvalue(defaultmeta(L))->metatable = hvalue(defaultmeta(L)); | 78 | hvalue(defaultmeta(L))->metatable = hvalue(defaultmeta(L)); |
| 82 | sethvalue(gt(L), luaH_new(L, 0, 4)); /* table of globals */ | 79 | sethvalue(gt(L), luaH_new(L, 0, 4)); /* table of globals */ |
| @@ -160,11 +157,8 @@ static void close_state (lua_State *L) { | |||
| 160 | luaF_close(L, L->stack); /* close all upvalues for this thread */ | 157 | luaF_close(L, L->stack); /* close all upvalues for this thread */ |
| 161 | if (G(L)) { /* close global state */ | 158 | if (G(L)) { /* close global state */ |
| 162 | luaC_sweep(L, 1); /* collect all elements */ | 159 | luaC_sweep(L, 1); /* collect all elements */ |
| 163 | lua_assert(G(L)->rootproto == NULL); | 160 | lua_assert(G(L)->rootgc == NULL); |
| 164 | lua_assert(G(L)->rootudata == NULL); | 161 | lua_assert(G(L)->rootudata == NULL); |
| 165 | lua_assert(G(L)->rootcl == NULL); | ||
| 166 | lua_assert(G(L)->rootupval == NULL); | ||
| 167 | lua_assert(G(L)->roottable == NULL); | ||
| 168 | luaS_freeall(L); | 162 | luaS_freeall(L); |
| 169 | luaM_freearray(L, G(L)->Mbuffer, G(L)->Mbuffsize, char); | 163 | luaM_freearray(L, G(L)->Mbuffer, G(L)->Mbuffsize, char); |
| 170 | luaM_freelem(NULL, L->l_G); | 164 | luaM_freelem(NULL, L->l_G); |
