diff options
Diffstat (limited to 'lgc.c')
-rw-r--r-- | lgc.c | 58 |
1 files changed, 29 insertions, 29 deletions
@@ -119,12 +119,12 @@ static void entersweep (lua_State *L); | |||
119 | 119 | ||
120 | static GCObject **getgclist (GCObject *o) { | 120 | static 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) { | |||
268 | static void reallymarkobject (global_State *g, GCObject *o) { | 268 | static 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 | ||
711 | static void freeobj (lua_State *L, GCObject *o) { | 711 | static 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? */ |