aboutsummaryrefslogtreecommitdiff
path: root/lgc.c
diff options
context:
space:
mode:
Diffstat (limited to 'lgc.c')
-rw-r--r--lgc.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/lgc.c b/lgc.c
index 06a5a249..b372bb09 100644
--- a/lgc.c
+++ b/lgc.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lgc.c,v 2.56 2009/09/28 13:50:34 roberto Exp roberto $ 2** $Id: lgc.c,v 2.57 2009/09/28 16:32:50 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*/
@@ -221,9 +221,9 @@ static void markroot (lua_State *L) {
221 g->grayagain = NULL; 221 g->grayagain = NULL;
222 g->weak = g->ephemeron = g->allweak = NULL; 222 g->weak = g->ephemeron = g->allweak = NULL;
223 markobject(g, g->mainthread); 223 markobject(g, g->mainthread);
224 /* make global table be traversed before main stack */ 224 /* make global table and registry to be traversed before main stack */
225 markvalue(g, gt(g->mainthread)); 225 markvalue(g, &g->l_gt);
226 markvalue(g, registry(L)); 226 markvalue(g, &g->l_registry);
227 markmt(g); 227 markmt(g);
228 markbeingfnz(g); /* mark any finalizing object left from previous cycle */ 228 markbeingfnz(g); /* mark any finalizing object left from previous cycle */
229 g->gcstate = GCSpropagate; 229 g->gcstate = GCSpropagate;
@@ -383,7 +383,6 @@ static void traversestack (global_State *g, lua_State *L) {
383 StkId o; 383 StkId o;
384 if (L->stack == NULL) 384 if (L->stack == NULL)
385 return; /* stack not completely built yet */ 385 return; /* stack not completely built yet */
386 markvalue(g, gt(L)); /* mark global table */
387 for (o = L->stack; o < L->top; o++) 386 for (o = L->stack; o < L->top; o++)
388 markvalue(g, o); 387 markvalue(g, o);
389 if (g->gcstate == GCSatomic) { /* final traversal? */ 388 if (g->gcstate == GCSatomic) { /* final traversal? */