aboutsummaryrefslogtreecommitdiff
path: root/lgc.c
diff options
context:
space:
mode:
Diffstat (limited to 'lgc.c')
-rw-r--r--lgc.c58
1 files changed, 29 insertions, 29 deletions
diff --git a/lgc.c b/lgc.c
index db519c6d..e788843c 100644
--- a/lgc.c
+++ b/lgc.c
@@ -119,12 +119,12 @@ static void entersweep (lua_State *L);
119 119
120static GCObject **getgclist (GCObject *o) { 120static GCObject **getgclist (GCObject *o) {
121 switch (o->tt) { 121 switch (o->tt) {
122 case LUA_TTABLE: return &gco2t(o)->gclist; 122 case LUA_VTABLE: return &gco2t(o)->gclist;
123 case LUA_TLCL: return &gco2lcl(o)->gclist; 123 case LUA_VLCL: return &gco2lcl(o)->gclist;
124 case LUA_TCCL: return &gco2ccl(o)->gclist; 124 case LUA_VCCL: return &gco2ccl(o)->gclist;
125 case LUA_TTHREAD: return &gco2th(o)->gclist; 125 case LUA_VTHREAD: return &gco2th(o)->gclist;
126 case LUA_TPROTO: return &gco2p(o)->gclist; 126 case LUA_VPROTO: return &gco2p(o)->gclist;
127 case LUA_TUSERDATA: { 127 case LUA_VUSERDATA: {
128 Udata *u = gco2u(o); 128 Udata *u = gco2u(o);
129 lua_assert(u->nuvalue > 0); 129 lua_assert(u->nuvalue > 0);
130 return &u->gclist; 130 return &u->gclist;
@@ -268,19 +268,19 @@ GCObject *luaC_newobj (lua_State *L, int tt, size_t sz) {
268static void reallymarkobject (global_State *g, GCObject *o) { 268static void reallymarkobject (global_State *g, GCObject *o) {
269 white2gray(o); 269 white2gray(o);
270 switch (o->tt) { 270 switch (o->tt) {
271 case LUA_TSHRSTR: 271 case LUA_VSHRSTR:
272 case LUA_TLNGSTR: { 272 case LUA_VLNGSTR: {
273 gray2black(o); 273 gray2black(o);
274 break; 274 break;
275 } 275 }
276 case LUA_TUPVAL: { 276 case LUA_VUPVAL: {
277 UpVal *uv = gco2upv(o); 277 UpVal *uv = gco2upv(o);
278 if (!upisopen(uv)) /* open upvalues are kept gray */ 278 if (!upisopen(uv)) /* open upvalues are kept gray */
279 gray2black(o); 279 gray2black(o);
280 markvalue(g, uv->v); /* mark its content */ 280 markvalue(g, uv->v); /* mark its content */
281 break; 281 break;
282 } 282 }
283 case LUA_TUSERDATA: { 283 case LUA_VUSERDATA: {
284 Udata *u = gco2u(o); 284 Udata *u = gco2u(o);
285 if (u->nuvalue == 0) { /* no user values? */ 285 if (u->nuvalue == 0) { /* no user values? */
286 markobjectN(g, u->metatable); /* mark its metatable */ 286 markobjectN(g, u->metatable); /* mark its metatable */
@@ -289,8 +289,8 @@ static void reallymarkobject (global_State *g, GCObject *o) {
289 } 289 }
290 /* else... */ 290 /* else... */
291 } /* FALLTHROUGH */ 291 } /* FALLTHROUGH */
292 case LUA_TLCL: case LUA_TCCL: case LUA_TTABLE: 292 case LUA_VLCL: case LUA_VCCL: case LUA_VTABLE:
293 case LUA_TTHREAD: case LUA_TPROTO: { 293 case LUA_VTHREAD: case LUA_VPROTO: {
294 linkobjgclist(o, g->gray); 294 linkobjgclist(o, g->gray);
295 break; 295 break;
296 } 296 }
@@ -598,12 +598,12 @@ static lu_mem propagatemark (global_State *g) {
598 gray2black(o); 598 gray2black(o);
599 g->gray = *getgclist(o); /* remove from 'gray' list */ 599 g->gray = *getgclist(o); /* remove from 'gray' list */
600 switch (o->tt) { 600 switch (o->tt) {
601 case LUA_TTABLE: return traversetable(g, gco2t(o)); 601 case LUA_VTABLE: return traversetable(g, gco2t(o));
602 case LUA_TUSERDATA: return traverseudata(g, gco2u(o)); 602 case LUA_VUSERDATA: return traverseudata(g, gco2u(o));
603 case LUA_TLCL: return traverseLclosure(g, gco2lcl(o)); 603 case LUA_VLCL: return traverseLclosure(g, gco2lcl(o));
604 case LUA_TCCL: return traverseCclosure(g, gco2ccl(o)); 604 case LUA_VCCL: return traverseCclosure(g, gco2ccl(o));
605 case LUA_TPROTO: return traverseproto(g, gco2p(o)); 605 case LUA_VPROTO: return traverseproto(g, gco2p(o));
606 case LUA_TTHREAD: { 606 case LUA_VTHREAD: {
607 lua_State *th = gco2th(o); 607 lua_State *th = gco2th(o);
608 linkgclist(th, g->grayagain); /* insert into 'grayagain' list */ 608 linkgclist(th, g->grayagain); /* insert into 'grayagain' list */
609 black2gray(o); 609 black2gray(o);
@@ -710,34 +710,34 @@ static void freeupval (lua_State *L, UpVal *uv) {
710 710
711static void freeobj (lua_State *L, GCObject *o) { 711static void freeobj (lua_State *L, GCObject *o) {
712 switch (o->tt) { 712 switch (o->tt) {
713 case LUA_TPROTO: 713 case LUA_VPROTO:
714 luaF_freeproto(L, gco2p(o)); 714 luaF_freeproto(L, gco2p(o));
715 break; 715 break;
716 case LUA_TUPVAL: 716 case LUA_VUPVAL:
717 freeupval(L, gco2upv(o)); 717 freeupval(L, gco2upv(o));
718 break; 718 break;
719 case LUA_TLCL: 719 case LUA_VLCL:
720 luaM_freemem(L, o, sizeLclosure(gco2lcl(o)->nupvalues)); 720 luaM_freemem(L, o, sizeLclosure(gco2lcl(o)->nupvalues));
721 break; 721 break;
722 case LUA_TCCL: 722 case LUA_VCCL:
723 luaM_freemem(L, o, sizeCclosure(gco2ccl(o)->nupvalues)); 723 luaM_freemem(L, o, sizeCclosure(gco2ccl(o)->nupvalues));
724 break; 724 break;
725 case LUA_TTABLE: 725 case LUA_VTABLE:
726 luaH_free(L, gco2t(o)); 726 luaH_free(L, gco2t(o));
727 break; 727 break;
728 case LUA_TTHREAD: 728 case LUA_VTHREAD:
729 luaE_freethread(L, gco2th(o)); 729 luaE_freethread(L, gco2th(o));
730 break; 730 break;
731 case LUA_TUSERDATA: { 731 case LUA_VUSERDATA: {
732 Udata *u = gco2u(o); 732 Udata *u = gco2u(o);
733 luaM_freemem(L, o, sizeudata(u->nuvalue, u->len)); 733 luaM_freemem(L, o, sizeudata(u->nuvalue, u->len));
734 break; 734 break;
735 } 735 }
736 case LUA_TSHRSTR: 736 case LUA_VSHRSTR:
737 luaS_remove(L, gco2ts(o)); /* remove it from hash table */ 737 luaS_remove(L, gco2ts(o)); /* remove it from hash table */
738 luaM_freemem(L, o, sizelstring(gco2ts(o)->shrlen)); 738 luaM_freemem(L, o, sizelstring(gco2ts(o)->shrlen));
739 break; 739 break;
740 case LUA_TLNGSTR: 740 case LUA_VLNGSTR:
741 luaM_freemem(L, o, sizelstring(gco2ts(o)->u.lnglen)); 741 luaM_freemem(L, o, sizelstring(gco2ts(o)->u.lnglen));
742 break; 742 break;
743 default: lua_assert(0); 743 default: lua_assert(0);
@@ -1049,7 +1049,7 @@ static GCObject **correctgraylist (GCObject **p) {
1049 GCObject *curr; 1049 GCObject *curr;
1050 while ((curr = *p) != NULL) { 1050 while ((curr = *p) != NULL) {
1051 switch (curr->tt) { 1051 switch (curr->tt) {
1052 case LUA_TTABLE: case LUA_TUSERDATA: { 1052 case LUA_VTABLE: case LUA_VUSERDATA: {
1053 GCObject **next = getgclist(curr); 1053 GCObject **next = getgclist(curr);
1054 if (getage(curr) == G_TOUCHED1) { /* touched in this cycle? */ 1054 if (getage(curr) == G_TOUCHED1) { /* touched in this cycle? */
1055 lua_assert(isgray(curr)); 1055 lua_assert(isgray(curr));
@@ -1069,7 +1069,7 @@ static GCObject **correctgraylist (GCObject **p) {
1069 } 1069 }
1070 break; 1070 break;
1071 } 1071 }
1072 case LUA_TTHREAD: { 1072 case LUA_VTHREAD: {
1073 lua_State *th = gco2th(curr); 1073 lua_State *th = gco2th(curr);
1074 lua_assert(!isblack(th)); 1074 lua_assert(!isblack(th));
1075 if (iswhite(th)) /* new object? */ 1075 if (iswhite(th)) /* new object? */