diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2014-02-18 10:39:37 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2014-02-18 10:39:37 -0300 |
| commit | d764cc552251fc69207c1bb4b34d3a6a5b7020c6 (patch) | |
| tree | 7b1b6532af3d22da36118cc81b8256ab53b887bc /lstate.c | |
| parent | ffa96d988d60f31591014fe417c27e44fc3116d1 (diff) | |
| download | lua-d764cc552251fc69207c1bb4b34d3a6a5b7020c6.tar.gz lua-d764cc552251fc69207c1bb4b34d3a6a5b7020c6.tar.bz2 lua-d764cc552251fc69207c1bb4b34d3a6a5b7020c6.zip | |
new list 'twups' to allow traversal of upvalues from dead threads
(+ fixed some problems with cycles involving those upvalues)
Diffstat (limited to 'lstate.c')
| -rw-r--r-- | lstate.c | 4 |
1 files changed, 3 insertions, 1 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lstate.c,v 2.118 2014/02/13 12:11:34 roberto Exp roberto $ | 2 | ** $Id: lstate.c,v 2.119 2014/02/13 14:46:38 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 | */ |
| @@ -222,6 +222,7 @@ static void preinit_thread (lua_State *L, global_State *g) { | |||
| 222 | L->stack = NULL; | 222 | L->stack = NULL; |
| 223 | L->ci = NULL; | 223 | L->ci = NULL; |
| 224 | L->stacksize = 0; | 224 | L->stacksize = 0; |
| 225 | L->twups = L; /* thread has no upvalues */ | ||
| 225 | L->errorJmp = NULL; | 226 | L->errorJmp = NULL; |
| 226 | L->nCcalls = 0; | 227 | L->nCcalls = 0; |
| 227 | L->hook = NULL; | 228 | L->hook = NULL; |
| @@ -317,6 +318,7 @@ LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) { | |||
| 317 | g->sweepgc = NULL; | 318 | g->sweepgc = NULL; |
| 318 | g->gray = g->grayagain = NULL; | 319 | g->gray = g->grayagain = NULL; |
| 319 | g->weak = g->ephemeron = g->allweak = NULL; | 320 | g->weak = g->ephemeron = g->allweak = NULL; |
| 321 | g->twups = NULL; | ||
| 320 | g->totalbytes = sizeof(LG); | 322 | g->totalbytes = sizeof(LG); |
| 321 | g->GCdebt = 0; | 323 | g->GCdebt = 0; |
| 322 | g->gcfinnum = 0; | 324 | g->gcfinnum = 0; |
