diff options
-rw-r--r-- | src/lj_state.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_state.c b/src/lj_state.c index 77c6df67..38525319 100644 --- a/src/lj_state.c +++ b/src/lj_state.c | |||
@@ -243,16 +243,16 @@ LUA_API void lua_close(lua_State *L) | |||
243 | G2J(g)->state = LJ_TRACE_IDLE; | 243 | G2J(g)->state = LJ_TRACE_IDLE; |
244 | lj_dispatch_update(g); | 244 | lj_dispatch_update(g); |
245 | #endif | 245 | #endif |
246 | for (i = 0; i < 10; ) { | 246 | for (i = 0;;) { |
247 | hook_enter(g); | 247 | hook_enter(g); |
248 | L->status = 0; | 248 | L->status = 0; |
249 | L->cframe = NULL; | 249 | L->cframe = NULL; |
250 | L->base = L->top = tvref(L->stack) + 1; | 250 | L->base = L->top = tvref(L->stack) + 1; |
251 | if (lj_vm_cpcall(L, NULL, NULL, cpfinalize) == 0) { | 251 | if (lj_vm_cpcall(L, NULL, NULL, cpfinalize) == 0) { |
252 | if (++i >= 10) break; | ||
252 | lj_gc_separateudata(g, 1); /* Separate udata again. */ | 253 | lj_gc_separateudata(g, 1); /* Separate udata again. */ |
253 | if (gcref(g->gc.mmudata) == NULL) /* Until nothing is left to do. */ | 254 | if (gcref(g->gc.mmudata) == NULL) /* Until nothing is left to do. */ |
254 | break; | 255 | break; |
255 | i++; | ||
256 | } | 256 | } |
257 | } | 257 | } |
258 | close_state(L); | 258 | close_state(L); |