diff options
Diffstat (limited to 'lapi.c')
-rw-r--r-- | lapi.c | 35 |
1 files changed, 8 insertions, 27 deletions
@@ -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); |