aboutsummaryrefslogtreecommitdiff
path: root/lapi.c
diff options
context:
space:
mode:
Diffstat (limited to 'lapi.c')
-rw-r--r--lapi.c35
1 files changed, 8 insertions, 27 deletions
diff --git a/lapi.c b/lapi.c
index 4ed815c7..7c7b6a10 100644
--- a/lapi.c
+++ b/lapi.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lapi.c,v 2.184 2013/06/20 15:12:43 roberto Exp roberto $ 2** $Id: lapi.c,v 2.185 2013/07/05 14:29:51 roberto Exp roberto $
3** Lua API 3** Lua API
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -1068,19 +1068,13 @@ LUA_API int lua_gc (lua_State *L, int what, int data) {
1068 break; 1068 break;
1069 } 1069 }
1070 case LUA_GCSTEP: { 1070 case LUA_GCSTEP: {
1071 if (g->gckind == KGC_GEN) { /* generational mode? */ 1071 lu_mem debt = cast(lu_mem, data) * 1024 - GCSTEPSIZE;
1072 res = (g->GCestimate == 0); /* true if it will do major collection */ 1072 if (g->gcrunning)
1073 luaC_forcestep(L); /* do a single step */ 1073 debt += g->GCdebt; /* include current debt */
1074 } 1074 luaE_setdebt(g, debt);
1075 else { 1075 luaC_forcestep(L);
1076 lu_mem debt = cast(lu_mem, data) * 1024 - GCSTEPSIZE; 1076 if (g->gcstate == GCSpause) /* end of cycle? */
1077 if (g->gcrunning) 1077 res = 1; /* signal it */
1078 debt += g->GCdebt; /* include current debt */
1079 luaE_setdebt(g, debt);
1080 luaC_forcestep(L);
1081 if (g->gcstate == GCSpause) /* end of cycle? */
1082 res = 1; /* signal it */
1083 }
1084 break; 1078 break;
1085 } 1079 }
1086 case LUA_GCSETPAUSE: { 1080 case LUA_GCSETPAUSE: {
@@ -1088,11 +1082,6 @@ LUA_API int lua_gc (lua_State *L, int what, int data) {
1088 g->gcpause = data; 1082 g->gcpause = data;
1089 break; 1083 break;
1090 } 1084 }
1091 case LUA_GCSETMAJORINC: {
1092 res = g->gcmajorinc;
1093 g->gcmajorinc = data;
1094 break;
1095 }
1096 case LUA_GCSETSTEPMUL: { 1085 case LUA_GCSETSTEPMUL: {
1097 res = g->gcstepmul; 1086 res = g->gcstepmul;
1098 g->gcstepmul = data; 1087 g->gcstepmul = data;
@@ -1102,14 +1091,6 @@ LUA_API int lua_gc (lua_State *L, int what, int data) {
1102 res = g->gcrunning; 1091 res = g->gcrunning;
1103 break; 1092 break;
1104 } 1093 }
1105 case LUA_GCGEN: { /* change collector to generational mode */
1106 luaC_changemode(L, KGC_GEN);
1107 break;
1108 }
1109 case LUA_GCINC: { /* change collector to incremental mode */
1110 luaC_changemode(L, KGC_NORMAL);
1111 break;
1112 }
1113 default: res = -1; /* invalid option */ 1094 default: res = -1; /* invalid option */
1114 } 1095 }
1115 lua_unlock(L); 1096 lua_unlock(L);