소스 검색

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.
Roberto Ierusalimschy 10 달 전
부모
커밋
4901853c11
3개의 변경된 파일3개의 추가작업 그리고 3개의 파일을 삭제
  1. 1 1
      lapi.c
  2. 1 1
      lbaselib.c
  3. 1 1
      manual/manual.of

+ 1 - 1
lapi.c

@@ -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)

+ 1 - 1
lbaselib.c

@@ -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;

+ 1 - 1
manual/manual.of

@@ -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.
 }