diff options
Diffstat (limited to 'lgc.c')
-rw-r--r-- | lgc.c | 6 |
1 files changed, 2 insertions, 4 deletions
@@ -569,10 +569,8 @@ static int traversethread (global_State *g, lua_State *th) { | |||
569 | th->openupval == NULL || isintwups(th)); | 569 | th->openupval == NULL || isintwups(th)); |
570 | for (; o < th->top; o++) /* mark live elements in the stack */ | 570 | for (; o < th->top; o++) /* mark live elements in the stack */ |
571 | markvalue(g, s2v(o)); | 571 | markvalue(g, s2v(o)); |
572 | for (uv = th->openupval; uv != NULL; uv = uv->u.open.next) { | 572 | for (uv = th->openupval; uv != NULL; uv = uv->u.open.next) |
573 | if (uv->tbc) /* to be closed? */ | 573 | markobject(g, uv); /* open upvalues cannot be collected */ |
574 | markobject(g, uv); /* cannot be collected */ | ||
575 | } | ||
576 | if (g->gcstate == GCSatomic) { /* final traversal? */ | 574 | if (g->gcstate == GCSatomic) { /* final traversal? */ |
577 | StkId lim = th->stack + th->stacksize; /* real end of stack */ | 575 | StkId lim = th->stack + th->stacksize; /* real end of stack */ |
578 | for (; o < lim; o++) /* clear not-marked stack slice */ | 576 | for (; o < lim; o++) /* clear not-marked stack slice */ |