aboutsummaryrefslogtreecommitdiff
path: root/lapi.c
diff options
context:
space:
mode:
Diffstat (limited to 'lapi.c')
-rw-r--r--lapi.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/lapi.c b/lapi.c
index 34e64af1..3c620d4b 100644
--- a/lapi.c
+++ b/lapi.c
@@ -1154,11 +1154,11 @@ LUA_API int lua_gc (lua_State *L, int what, ...) {
1154 } 1154 }
1155 case LUA_GCCOUNT: { 1155 case LUA_GCCOUNT: {
1156 /* GC values are expressed in Kbytes: #bytes/2^10 */ 1156 /* GC values are expressed in Kbytes: #bytes/2^10 */
1157 res = cast_int(gettotalbytes(g) >> 10); 1157 res = cast_int(g->totalbytes >> 10);
1158 break; 1158 break;
1159 } 1159 }
1160 case LUA_GCCOUNTB: { 1160 case LUA_GCCOUNTB: {
1161 res = cast_int(gettotalbytes(g) & 0x3ff); 1161 res = cast_int(g->totalbytes & 0x3ff);
1162 break; 1162 break;
1163 } 1163 }
1164 case LUA_GCSTEP: { 1164 case LUA_GCSTEP: {
@@ -1171,7 +1171,7 @@ LUA_API int lua_gc (lua_State *L, int what, ...) {
1171 luaC_step(L); 1171 luaC_step(L);
1172 } 1172 }
1173 else { /* add 'data' to total debt */ 1173 else { /* add 'data' to total debt */
1174 debt = cast(l_mem, data) * 1024 + g->GCdebt; 1174 debt = data + g->GCdebt;
1175 luaE_setdebt(g, debt); 1175 luaE_setdebt(g, debt);
1176 luaC_checkGC(L); 1176 luaC_checkGC(L);
1177 } 1177 }
@@ -1217,7 +1217,8 @@ LUA_API int lua_gc (lua_State *L, int what, ...) {
1217 if (stepmul != 0) 1217 if (stepmul != 0)
1218 setgcparam(g->gcstepmul, stepmul); 1218 setgcparam(g->gcstepmul, stepmul);
1219 if (stepsize != 0) 1219 if (stepsize != 0)
1220 g->gcstepsize = stepsize; 1220 g->gcstepsize = (stepsize <= log2maxs(l_mem)) ? stepsize
1221 : log2maxs(l_mem);
1221 luaC_changemode(L, KGC_INC); 1222 luaC_changemode(L, KGC_INC);
1222 break; 1223 break;
1223 } 1224 }