diff options
Diffstat (limited to 'lgc.c')
-rw-r--r-- | lgc.c | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lgc.c,v 1.11 1997/12/09 13:35:19 roberto Exp roberto $ | 2 | ** $Id: lgc.c,v 1.12 1997/12/11 14:48:46 roberto Exp roberto $ |
3 | ** Garbage Collector | 3 | ** Garbage Collector |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -87,13 +87,15 @@ static int ismarked (TObject *o) | |||
87 | switch (o->ttype) { | 87 | switch (o->ttype) { |
88 | case LUA_T_STRING: case LUA_T_USERDATA: | 88 | case LUA_T_STRING: case LUA_T_USERDATA: |
89 | return o->value.ts->head.marked; | 89 | return o->value.ts->head.marked; |
90 | case LUA_T_FUNCTION: | 90 | case LUA_T_CLOSURE: |
91 | return o->value.cl->head.marked; | 91 | return o->value.cl->head.marked; |
92 | case LUA_T_PROTO: | ||
93 | return o->value.tf->head.marked; | ||
92 | case LUA_T_ARRAY: | 94 | case LUA_T_ARRAY: |
93 | return o->value.a->head.marked; | 95 | return o->value.a->head.marked; |
94 | #ifdef DEBUG | 96 | #ifdef DEBUG |
95 | case LUA_T_LINE: case LUA_T_MARK: | 97 | case LUA_T_LINE: case LUA_T_CLMARK: |
96 | case LUA_T_PROTO: case LUA_T_CPROTO: | 98 | case LUA_T_CMARK: case LUA_T_PMARK: |
97 | lua_error("internal error"); | 99 | lua_error("internal error"); |
98 | #endif | 100 | #endif |
99 | default: /* nil, number or cproto */ | 101 | default: /* nil, number or cproto */ |
@@ -180,7 +182,7 @@ static void protomark (TProtoFunc *f) | |||
180 | } | 182 | } |
181 | 183 | ||
182 | 184 | ||
183 | static void funcmark (Closure *f) | 185 | static void closuremark (Closure *f) |
184 | { | 186 | { |
185 | if (!f->head.marked) { | 187 | if (!f->head.marked) { |
186 | int i; | 188 | int i; |
@@ -227,10 +229,10 @@ static int markobject (TObject *o) | |||
227 | case LUA_T_ARRAY: | 229 | case LUA_T_ARRAY: |
228 | hashmark(avalue(o)); | 230 | hashmark(avalue(o)); |
229 | break; | 231 | break; |
230 | case LUA_T_FUNCTION: case LUA_T_MARK: | 232 | case LUA_T_CLOSURE: case LUA_T_CLMARK: |
231 | funcmark(o->value.cl); | 233 | closuremark(o->value.cl); |
232 | break; | 234 | break; |
233 | case LUA_T_PROTO: | 235 | case LUA_T_PROTO: case LUA_T_PMARK: |
234 | protomark(o->value.tf); | 236 | protomark(o->value.tf); |
235 | break; | 237 | break; |
236 | default: break; /* numbers, cprotos, etc */ | 238 | default: break; /* numbers, cprotos, etc */ |