Reduce calls to 'luaC_step' when GC is stopped
diff --git a/lgc.c b/lgc.c
index 2e74990..a3094ff 100644
--- a/lgc.c
+++ b/lgc.c
@@ -1681,12 +1681,15 @@
}
/*
-** performs a basic GC step if collector is running
+** Performs a basic GC step if collector is running. (If collector is
+** not running, set a reasonable debt to avoid it being called at
+** every single check.)
*/
void luaC_step (lua_State *L) {
global_State *g = G(L);
- lua_assert(!g->gcemergency);
- if (gcrunning(g)) { /* running? */
+ if (!gcrunning(g)) /* not running? */
+ luaE_setdebt(g, -2000);
+ else {
if(isdecGCmodegen(g))
genstep(L, g);
else