Parameter for lua_gc/LUA_GCSTEP changed to 'size_t'

'size_t' is the common type for measuring memory. 'int' can be too
small for steps.
This commit is contained in:
Roberto Ierusalimschy 2024-09-10 17:05:39 -03:00
parent a04e0ffdb9
commit 4901853c11
3 changed files with 3 additions and 3 deletions

2
lapi.c
View File

@ -1199,7 +1199,7 @@ LUA_API int lua_gc (lua_State *L, int what, ...) {
}
case LUA_GCSTEP: {
lu_byte oldstp = g->gcstp;
l_obj n = va_arg(argp, int);
l_obj n = cast(l_obj, va_arg(argp, size_t));
int work = 0; /* true if GC did some work */
g->gcstp = 0; /* allow GC to run (other bits must be zero here) */
if (n <= 0)

View File

@ -216,7 +216,7 @@ static int luaB_collectgarbage (lua_State *L) {
}
case LUA_GCSTEP: {
lua_Integer n = luaL_optinteger(L, 2, 0);
int res = lua_gc(L, o, (int)n);
int res = lua_gc(L, o, cast_sizet(n));
checkvalres(res);
lua_pushboolean(L, res);
return 1;

View File

@ -3326,7 +3326,7 @@ Returns the remainder of dividing the current amount of bytes of
memory in use by Lua by 1024.
}
@item{@defid{LUA_GCSTEP} (int n)|
@item{@defid{LUA_GCSTEP} (size_t n)|
Performs a step of garbage collection.
}