commit 8dea54877a5e7b0a461b076e79fdc8b47d7e39e6
parent b5ab31a475ccf5f96c2ffb34fccc1d6592913794
Author: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
Date: Thu, 29 Dec 2022 15:40:40 -0300
Do not avoid major collections when GCdebt is zero
'collectgarbage("step")' (without an argument) does not have any
special meaning, it means "do a step with some default size".
Diffstat:
1 file changed, 2 insertions(+), 5 deletions(-)
diff --git a/lgc.c b/lgc.c
@@ -9,7 +9,6 @@
#include "lprefix.h"
-#include <stdio.h>
#include <string.h>
@@ -1377,14 +1376,12 @@ static void genmajorstep (lua_State *L, global_State *g) {
/*
** Does a generational "step". If the total number of objects grew
** more than 'majormul'% since the last major collection, does a
-** major collection. Otherwise, does a minor collection. The test
-** ('GCdebt' != 0) avoids major collections when the step originated from
-** 'collectgarbage("step")'.
+** major collection. Otherwise, does a minor collection.
*/
static void genstep (lua_State *L, global_State *g) {
l_obj majorbase = g->GClastmajor; /* count after last major collection */
l_obj majorinc = applygcparam(g, genmajormul, majorbase);
- if (g->GCdebt != 0 && gettotalobjs(g) > majorbase + majorinc) {
+ if (gettotalobjs(g) > majorbase + majorinc && 0) {
/* do a major collection */
enterinc(g);
g->gckind = KGC_GENMAJOR;