diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2009-12-22 13:32:50 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2009-12-22 13:32:50 -0200 |
commit | f84b575cfa52dc832751846aa0b4c8ff437d3ca3 (patch) | |
tree | 246ef484b08d132d006c16a6c8cbe55e61c3bfce /lgc.c | |
parent | 3cb343efd644fb771b6d8193406afd49527dc1ec (diff) | |
download | lua-f84b575cfa52dc832751846aa0b4c8ff437d3ca3.tar.gz lua-f84b575cfa52dc832751846aa0b4c8ff437d3ca3.tar.bz2 lua-f84b575cfa52dc832751846aa0b4c8ff437d3ca3.zip |
no more pseudoindex LUA_GLOBALSINDEX; global table now accessible
through registry
Diffstat (limited to 'lgc.c')
-rw-r--r-- | lgc.c | 7 |
1 files changed, 3 insertions, 4 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lgc.c,v 2.65 2009/12/11 21:31:14 roberto Exp roberto $ | 2 | ** $Id: lgc.c,v 2.66 2009/12/16 16:42:58 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 | */ |
@@ -230,7 +230,7 @@ static void markroot (lua_State *L) { | |||
230 | g->weak = g->ephemeron = g->allweak = NULL; | 230 | g->weak = g->ephemeron = g->allweak = NULL; |
231 | markobject(g, g->mainthread); | 231 | markobject(g, g->mainthread); |
232 | /* make global table and registry to be traversed before main stack */ | 232 | /* make global table and registry to be traversed before main stack */ |
233 | markvalue(g, &g->l_gt); | 233 | markobject(g, g->l_gt); |
234 | markvalue(g, &g->l_registry); | 234 | markvalue(g, &g->l_registry); |
235 | markmt(g); | 235 | markmt(g); |
236 | markbeingfnz(g); /* mark any finalizing object left from previous cycle */ | 236 | markbeingfnz(g); /* mark any finalizing object left from previous cycle */ |
@@ -703,8 +703,7 @@ static void atomic (lua_State *L) { | |||
703 | g->gcstate = GCSatomic; | 703 | g->gcstate = GCSatomic; |
704 | lua_assert(!iswhite(obj2gco(g->mainthread))); | 704 | lua_assert(!iswhite(obj2gco(g->mainthread))); |
705 | markobject(g, L); /* mark running thread */ | 705 | markobject(g, L); /* mark running thread */ |
706 | /* global table, registry, and global metatables may be changed by API */ | 706 | /* registry and global metatables may be changed by API */ |
707 | markvalue(g, &g->l_gt); | ||
708 | markvalue(g, &g->l_registry); | 707 | markvalue(g, &g->l_registry); |
709 | markmt(g); /* mark basic metatables */ | 708 | markmt(g); /* mark basic metatables */ |
710 | /* remark occasional upvalues of (maybe) dead threads */ | 709 | /* remark occasional upvalues of (maybe) dead threads */ |