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 */ |
