diff options
Diffstat (limited to 'lgc.c')
-rw-r--r-- | lgc.c | 18 |
1 files changed, 9 insertions, 9 deletions
@@ -1049,7 +1049,7 @@ void luaC_checkfinalizer (lua_State *L, GCObject *o, Table *mt) { | |||
1049 | ** approximately (marked * pause / 100). | 1049 | ** approximately (marked * pause / 100). |
1050 | */ | 1050 | */ |
1051 | static void setpause (global_State *g) { | 1051 | static void setpause (global_State *g) { |
1052 | l_obj threshold = applygcparam(g, gcpause, g->marked); | 1052 | l_obj threshold = luaO_applyparam(g->gcppause, g->marked); |
1053 | l_obj debt = threshold - gettotalobjs(g); | 1053 | l_obj debt = threshold - gettotalobjs(g); |
1054 | if (debt < 0) debt = 0; | 1054 | if (debt < 0) debt = 0; |
1055 | luaE_setdebt(g, debt); | 1055 | luaE_setdebt(g, debt); |
@@ -1233,13 +1233,13 @@ static void finishgencycle (lua_State *L, global_State *g) { | |||
1233 | ** in generational mode. | 1233 | ** in generational mode. |
1234 | */ | 1234 | */ |
1235 | static void minor2inc (lua_State *L, global_State *g, int kind) { | 1235 | static void minor2inc (lua_State *L, global_State *g, int kind) { |
1236 | l_obj stepsize = cast(l_obj, 1) << g->gcstepsize; | ||
1237 | g->GCmajorminor = g->marked; /* number of live objects */ | 1236 | g->GCmajorminor = g->marked; /* number of live objects */ |
1238 | g->gckind = kind; | 1237 | g->gckind = kind; |
1239 | g->reallyold = g->old1 = g->survival = NULL; | 1238 | g->reallyold = g->old1 = g->survival = NULL; |
1240 | g->finobjrold = g->finobjold1 = g->finobjsur = NULL; | 1239 | g->finobjrold = g->finobjold1 = g->finobjsur = NULL; |
1241 | entersweep(L); /* continue as an incremental cycle */ | 1240 | entersweep(L); /* continue as an incremental cycle */ |
1242 | luaE_setdebt(g, stepsize); | 1241 | /* set a debt equal to the step size */ |
1242 | luaE_setdebt(g, luaO_applyparam(g->gcpstepsize, 100)); | ||
1243 | } | 1243 | } |
1244 | 1244 | ||
1245 | 1245 | ||
@@ -1255,8 +1255,8 @@ static void minor2inc (lua_State *L, global_State *g, int kind) { | |||
1255 | ** major collection. (That percentage is computed in 'limit'.) | 1255 | ** major collection. (That percentage is computed in 'limit'.) |
1256 | */ | 1256 | */ |
1257 | static int checkminormajor (lua_State *L, global_State *g, l_obj addedold1) { | 1257 | static int checkminormajor (lua_State *L, global_State *g, l_obj addedold1) { |
1258 | l_obj step = applygcparam(g, genminormul, g->GCmajorminor); | 1258 | l_obj step = luaO_applyparam(g->gcpgenminormul, g->GCmajorminor); |
1259 | l_obj limit = applygcparam(g, minormajor, g->GCmajorminor); | 1259 | l_obj limit = luaO_applyparam(g->gcpminormajor, g->GCmajorminor); |
1260 | //printf("-> major? %ld %ld %ld %ld (%ld)\n", g->marked, limit, step, addedold1, gettotalobjs(g)); | 1260 | //printf("-> major? %ld %ld %ld %ld (%ld)\n", g->marked, limit, step, addedold1, gettotalobjs(g)); |
1261 | if (addedold1 >= (step >> 1) || g->marked >= limit) { | 1261 | if (addedold1 >= (step >> 1) || g->marked >= limit) { |
1262 | minor2inc(L, g, KGC_GENMAJOR); /* go to major mode */ | 1262 | minor2inc(L, g, KGC_GENMAJOR); /* go to major mode */ |
@@ -1347,7 +1347,7 @@ static void atomic2gen (lua_State *L, global_State *g) { | |||
1347 | ** total number of objects grows 'genminormul'%. | 1347 | ** total number of objects grows 'genminormul'%. |
1348 | */ | 1348 | */ |
1349 | static void setminordebt (global_State *g) { | 1349 | static void setminordebt (global_State *g) { |
1350 | luaE_setdebt(g, applygcparam(g, genminormul, g->GCmajorminor)); | 1350 | luaE_setdebt(g, luaO_applyparam(g->gcpgenminormul, g->GCmajorminor)); |
1351 | } | 1351 | } |
1352 | 1352 | ||
1353 | 1353 | ||
@@ -1404,7 +1404,7 @@ static int checkmajorminor (lua_State *L, global_State *g) { | |||
1404 | if (g->gckind == KGC_GENMAJOR) { | 1404 | if (g->gckind == KGC_GENMAJOR) { |
1405 | l_obj numobjs = gettotalobjs(g); | 1405 | l_obj numobjs = gettotalobjs(g); |
1406 | l_obj addedobjs = numobjs - g->GCmajorminor; | 1406 | l_obj addedobjs = numobjs - g->GCmajorminor; |
1407 | l_obj limit = applygcparam(g, majorminor, addedobjs); | 1407 | l_obj limit = luaO_applyparam(g->gcpmajorminor, addedobjs); |
1408 | l_obj tobecollected = numobjs - g->marked; | 1408 | l_obj tobecollected = numobjs - g->marked; |
1409 | //printf("-> minor? %ld %ld %ld\n", tobecollected, limit, numobjs); | 1409 | //printf("-> minor? %ld %ld %ld\n", tobecollected, limit, numobjs); |
1410 | if (tobecollected > limit) { | 1410 | if (tobecollected > limit) { |
@@ -1634,8 +1634,8 @@ void luaC_runtilstate (lua_State *L, int state, int fast) { | |||
1634 | ** controls when next step will be performed. | 1634 | ** controls when next step will be performed. |
1635 | */ | 1635 | */ |
1636 | static void incstep (lua_State *L, global_State *g) { | 1636 | static void incstep (lua_State *L, global_State *g) { |
1637 | l_obj stepsize = cast(l_obj, 1) << g->gcstepsize; | 1637 | l_obj stepsize = luaO_applyparam(g->gcpstepsize, 100); |
1638 | l_obj work2do = applygcparam(g, gcstepmul, stepsize); | 1638 | l_obj work2do = luaO_applyparam(g->gcpstepmul, stepsize); |
1639 | int fast = 0; | 1639 | int fast = 0; |
1640 | if (work2do == 0) { /* special case: do a full collection */ | 1640 | if (work2do == 0) { /* special case: do a full collection */ |
1641 | work2do = MAX_LOBJ; /* do unlimited work */ | 1641 | work2do = MAX_LOBJ; /* do unlimited work */ |