diff --git a/src/lj_api.c b/src/lj_api.c index edb2d620..b5c43bea 100644 --- a/src/lj_api.c +++ b/src/lj_api.c @@ -1164,7 +1164,7 @@ LUA_API int lua_gc(lua_State *L, int what, int data) MSize a = (MSize)data << 10; g->gc.threshold = (a <= g->gc.total) ? (g->gc.total - a) : 0; while (g->gc.total >= g->gc.threshold) - if (lj_gc_step(L)) { + if (lj_gc_step(L) > 0) { res = 1; break; } diff --git a/src/lj_gc.c b/src/lj_gc.c index 7012dbec..2a4d299b 100644 --- a/src/lj_gc.c +++ b/src/lj_gc.c @@ -690,7 +690,7 @@ int LJ_FASTCALL lj_gc_step(lua_State *L) if (g->gc.debt < GCSTEPSIZE) { g->gc.threshold = g->gc.total + GCSTEPSIZE; g->vmstate = ostate; - return 1; + return -1; } else { g->gc.debt -= GCSTEPSIZE; g->gc.threshold = g->gc.total;