diff --git a/src/lj_api.c b/src/lj_api.c index 05fb41a7..30b92924 100644 --- a/src/lj_api.c +++ b/src/lj_api.c @@ -1153,7 +1153,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 ddbaa645..592d770b 100644 --- a/src/lj_gc.c +++ b/src/lj_gc.c @@ -685,7 +685,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;