diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2017-10-11 09:38:45 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2017-10-11 09:38:45 -0300 |
commit | 1d8920dd7f508af5f2fd743678be1327f30c079b (patch) | |
tree | 31fdd2aa1c2829904c51be79aa334db020847418 /lapi.c | |
parent | 911f1e3e7ff01dafe3e9f77bc9c8e3a25237d7de (diff) | |
download | lua-1d8920dd7f508af5f2fd743678be1327f30c079b.tar.gz lua-1d8920dd7f508af5f2fd743678be1327f30c079b.tar.bz2 lua-1d8920dd7f508af5f2fd743678be1327f30c079b.zip |
some cleaning in GC parameters
Diffstat (limited to 'lapi.c')
-rw-r--r-- | lapi.c | 25 |
1 files changed, 15 insertions, 10 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lapi.c,v 2.269 2017/06/01 20:22:33 roberto Exp roberto $ | 2 | ** $Id: lapi.c,v 2.270 2017/06/29 15:06:44 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 | */ |
@@ -1114,14 +1114,14 @@ LUA_API int lua_gc (lua_State *L, int what, ...) { | |||
1114 | } | 1114 | } |
1115 | case LUA_GCSETPAUSE: { | 1115 | case LUA_GCSETPAUSE: { |
1116 | int data = va_arg(argp, int); | 1116 | int data = va_arg(argp, int); |
1117 | res = g->gcpause + 100; | 1117 | res = getgcparam(g->gcpause); |
1118 | g->gcpause = (data >= 100) ? data - 100 : 0; | 1118 | setgcparam(g->gcpause, data); |
1119 | break; | 1119 | break; |
1120 | } | 1120 | } |
1121 | case LUA_GCSETSTEPMUL: { | 1121 | case LUA_GCSETSTEPMUL: { |
1122 | int data = va_arg(argp, int); | 1122 | int data = va_arg(argp, int); |
1123 | res = g->gcstepmul * 10; | 1123 | res = getgcparam(g->gcstepmul); |
1124 | g->gcstepmul = data / 10; | 1124 | setgcparam(g->gcstepmul, data); |
1125 | break; | 1125 | break; |
1126 | } | 1126 | } |
1127 | case LUA_GCISRUNNING: { | 1127 | case LUA_GCISRUNNING: { |
@@ -1131,8 +1131,10 @@ LUA_API int lua_gc (lua_State *L, int what, ...) { | |||
1131 | case LUA_GCGEN: { | 1131 | case LUA_GCGEN: { |
1132 | int minormul = va_arg(argp, int); | 1132 | int minormul = va_arg(argp, int); |
1133 | int majormul = va_arg(argp, int); | 1133 | int majormul = va_arg(argp, int); |
1134 | g->genminormul = (minormul == 0) ? LUAI_GENMINORMUL : minormul; | 1134 | if (minormul != 0) |
1135 | g->genmajormul = (majormul == 0) ? LUAI_GENMAJORMUL : majormul; | 1135 | g->genminormul = minormul; |
1136 | if (majormul != 0) | ||
1137 | setgcparam(g->genmajormul, majormul); | ||
1136 | luaC_changemode(L, KGC_GEN); | 1138 | luaC_changemode(L, KGC_GEN); |
1137 | break; | 1139 | break; |
1138 | } | 1140 | } |
@@ -1140,9 +1142,12 @@ LUA_API int lua_gc (lua_State *L, int what, ...) { | |||
1140 | int pause = va_arg(argp, int); | 1142 | int pause = va_arg(argp, int); |
1141 | int stepmul = va_arg(argp, int); | 1143 | int stepmul = va_arg(argp, int); |
1142 | int stepsize = va_arg(argp, int); | 1144 | int stepsize = va_arg(argp, int); |
1143 | g->gcpause = (pause == 0) ? LUAI_GCPAUSE : pause; | 1145 | if (pause != 0) |
1144 | g->gcstepmul = (stepmul == 0) ? LUAI_GCMUL : stepmul; | 1146 | setgcparam(g->gcpause, pause); |
1145 | g->gcstepsize = (stepsize == 0) ? LUAI_GCSTEPSIZE : stepsize; | 1147 | if (stepmul != 0) |
1148 | setgcparam(g->gcstepmul, stepmul); | ||
1149 | if (stepsize != 0) | ||
1150 | g->gcstepsize = stepsize; | ||
1146 | luaC_changemode(L, KGC_INC); | 1151 | luaC_changemode(L, KGC_INC); |
1147 | break; | 1152 | break; |
1148 | } | 1153 | } |