diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1997-12-11 12:48:46 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1997-12-11 12:48:46 -0200 |
commit | 034f16892eb49361ee66f8d89aec26b071c98f57 (patch) | |
tree | 04c714baf2d60ea84a0cca270aa845faff185380 /lgc.c | |
parent | c759520bc86c9504ebec58b0de655c93c5010e5f (diff) | |
download | lua-034f16892eb49361ee66f8d89aec26b071c98f57.tar.gz lua-034f16892eb49361ee66f8d89aec26b071c98f57.tar.bz2 lua-034f16892eb49361ee66f8d89aec26b071c98f57.zip |
better treatment of MARKs and DEBUG cases.
Diffstat (limited to 'lgc.c')
-rw-r--r-- | lgc.c | 10 |
1 files changed, 7 insertions, 3 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lgc.c,v 1.10 1997/12/01 20:31:25 roberto Exp roberto $ | 2 | ** $Id: lgc.c,v 1.11 1997/12/09 13:35:19 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 | */ |
@@ -83,15 +83,19 @@ static void travlock (void) | |||
83 | 83 | ||
84 | static int ismarked (TObject *o) | 84 | static int ismarked (TObject *o) |
85 | { | 85 | { |
86 | /* valid only for locked objects */ | ||
86 | switch (o->ttype) { | 87 | switch (o->ttype) { |
87 | case LUA_T_STRING: case LUA_T_USERDATA: | 88 | case LUA_T_STRING: case LUA_T_USERDATA: |
88 | return o->value.ts->head.marked; | 89 | return o->value.ts->head.marked; |
89 | case LUA_T_FUNCTION: | 90 | case LUA_T_FUNCTION: |
90 | return o->value.cl->head.marked; | 91 | return o->value.cl->head.marked; |
91 | case LUA_T_PROTO: | ||
92 | return o->value.tf->head.marked; | ||
93 | case LUA_T_ARRAY: | 92 | case LUA_T_ARRAY: |
94 | return o->value.a->head.marked; | 93 | return o->value.a->head.marked; |
94 | #ifdef DEBUG | ||
95 | case LUA_T_LINE: case LUA_T_MARK: | ||
96 | case LUA_T_PROTO: case LUA_T_CPROTO: | ||
97 | lua_error("internal error"); | ||
98 | #endif | ||
95 | default: /* nil, number or cproto */ | 99 | default: /* nil, number or cproto */ |
96 | return 1; | 100 | return 1; |
97 | } | 101 | } |