lua

A copy of the Lua development repository
Log | Files | Refs | README

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:
Mlgc.c | 7++-----
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;