From 925fe8a0f2a667c96c015ee74d1a702af9ea5507 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Thu, 7 Dec 2023 15:45:11 -0300 Subject: First criteria for shifts minor<->major --- lapi.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'lapi.c') diff --git a/lapi.c b/lapi.c index 71b679aa..374b3872 100644 --- a/lapi.c +++ b/lapi.c @@ -1204,26 +1204,29 @@ LUA_API int lua_gc (lua_State *L, int what, ...) { break; } case LUA_GCGEN: { - unsigned int minormul = va_arg(argp, unsigned int); - unsigned int majormul = va_arg(argp, unsigned int); + int minormul = va_arg(argp, int); + int minormajor = va_arg(argp, int); + int majorminor = va_arg(argp, int); res = (g->gckind == KGC_INC) ? LUA_GCINC : LUA_GCGEN; - if (minormul != 0) + if (minormul >= 0) setgcparam(g, genminormul, minormul); - if (majormul != 0) - setgcparam(g, genmajormul, majormul); + if (minormajor >= 0) + setgcparam(g, minormajor, minormajor); + if (majorminor >= 0) + setgcparam(g, majorminor, majorminor); luaC_changemode(L, KGC_GENMINOR); break; } case LUA_GCINC: { - unsigned int pause = va_arg(argp, unsigned int); - unsigned int stepmul = va_arg(argp, unsigned int); - unsigned int stepsize = va_arg(argp, unsigned int); + int pause = va_arg(argp, int); + int stepmul = va_arg(argp, int); + int stepsize = va_arg(argp, int); res = (g->gckind == KGC_INC) ? LUA_GCINC : LUA_GCGEN; - if (pause != 0) + if (pause >= 0) setgcparam(g, gcpause, pause); - if (stepmul != 0) + if (stepmul >= 0) setgcparam(g, gcstepmul, stepmul); - if (stepsize != 0) + if (stepsize >= 0) g->gcstepsize = (stepsize <= log2maxs(l_obj)) ? stepsize : log2maxs(l_obj); luaC_changemode(L, KGC_INC); -- cgit v1.2.3-55-g6feb