diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-12-25 04:35:44 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 1998-12-25 04:35:44 +0000 |
commit | e3ae94452e6b84bd7f3c40166713f38a0585d834 (patch) | |
tree | 43142e9f6788e01e34588c46353a6a36d7e8bbd3 /gc.c | |
parent | 17a5fa1b4344199cef86c2cea4f1ba35f021593d (diff) |
1.2 stable
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -30,8 +30,10 @@ void io_fptr_finalize _((struct OpenFile*)); #endif #ifdef C_ALLOCA +#ifndef alloca void *alloca(); #endif +#endif static void run_final(); @@ -411,9 +413,6 @@ gc_mark(ptr) case NODE_DREGX_ONCE: case NODE_FBODY: case NODE_CALL: -#ifdef C_ALLOCA - case NODE_ALLOCA: -#endif gc_mark(obj->as.node.u1.node); /* fall through */ case NODE_SUPER: /* 3 */ @@ -469,6 +468,13 @@ gc_mark(ptr) case NODE_NIL: case NODE_POSTEXE: break; +#ifdef C_ALLOCA + case NODE_ALLOCA: + mark_locations_array((VALUE*)obj->as.node.u1.value, + obj->as.node.u3.cnt); + obj = RANY(obj->as.node.u2.node); + goto Top; +#endif default: if (looks_pointerp(obj->as.node.u1.node)) { |