diff options
Diffstat (limited to '')
| -rw-r--r-- | src/3rdParty/lua/lstate.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/3rdParty/lua/lstate.c b/src/3rdParty/lua/lstate.c index 5cb0847..1ffe1a0 100644 --- a/src/3rdParty/lua/lstate.c +++ b/src/3rdParty/lua/lstate.c | |||
| @@ -236,7 +236,7 @@ static void f_luaopen (lua_State *L, void *ud) { | |||
| 236 | luaS_init(L); | 236 | luaS_init(L); |
| 237 | luaT_init(L); | 237 | luaT_init(L); |
| 238 | luaX_init(L); | 238 | luaX_init(L); |
| 239 | g->gcrunning = 1; /* allow gc */ | 239 | g->gcstp = 0; /* allow gc */ |
| 240 | setnilvalue(&g->nilvalue); /* now state is complete */ | 240 | setnilvalue(&g->nilvalue); /* now state is complete */ |
| 241 | luai_userstateopen(L); | 241 | luai_userstateopen(L); |
| 242 | } | 242 | } |
| @@ -271,6 +271,7 @@ static void close_state (lua_State *L) { | |||
| 271 | if (!completestate(g)) /* closing a partially built state? */ | 271 | if (!completestate(g)) /* closing a partially built state? */ |
| 272 | luaC_freeallobjects(L); /* just collect its objects */ | 272 | luaC_freeallobjects(L); /* just collect its objects */ |
| 273 | else { /* closing a fully built state */ | 273 | else { /* closing a fully built state */ |
| 274 | L->ci = &L->base_ci; /* unwind CallInfo list */ | ||
| 274 | luaD_closeprotected(L, 1, LUA_OK); /* close all upvalues */ | 275 | luaD_closeprotected(L, 1, LUA_OK); /* close all upvalues */ |
| 275 | luaC_freeallobjects(L); /* collect all objects */ | 276 | luaC_freeallobjects(L); /* collect all objects */ |
| 276 | luai_userstateclose(L); | 277 | luai_userstateclose(L); |
| @@ -372,7 +373,7 @@ LUA_API lua_State *lua_newstate (lua_Alloc f, void *ud) { | |||
| 372 | g->ud_warn = NULL; | 373 | g->ud_warn = NULL; |
| 373 | g->mainthread = L; | 374 | g->mainthread = L; |
| 374 | g->seed = luai_makeseed(L); | 375 | g->seed = luai_makeseed(L); |
| 375 | g->gcrunning = 0; /* no GC while building state */ | 376 | g->gcstp = GCSTPGC; /* no GC while building state */ |
| 376 | g->strt.size = g->strt.nuse = 0; | 377 | g->strt.size = g->strt.nuse = 0; |
| 377 | g->strt.hash = NULL; | 378 | g->strt.hash = NULL; |
| 378 | setnilvalue(&g->l_registry); | 379 | setnilvalue(&g->l_registry); |
