From 4df2cb80531c7cd4b10b0dea26f4687c4f74ff30 Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 29 Jun 2006 14:05:40 +0000 Subject: * parse.y: use ARGSPUSH instead of ARGSCAT to prevent too much splat expansion. * eval.c (when_check): need to handle ARGSPUSH as well. * eval.c (block_orphan): lambda and proc from method are always orphan. * gc.c (gc_mark_children): proper marking for NODE_BLOCK_PASS and NODE_LAMBDA. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- gc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gc.c') diff --git a/gc.c b/gc.c index 5fdf120cd1..34090d9b4c 100644 --- a/gc.c +++ b/gc.c @@ -794,7 +794,6 @@ gc_mark_children(VALUE ptr, int lev) case NODE_RESBODY: case NODE_CLASS: case NODE_ARGS: - case NODE_BLOCK_PASS: gc_mark((VALUE)obj->as.node.u2.node, lev); /* fall through */ case NODE_BLOCK: /* 1,3 */ @@ -834,6 +833,8 @@ gc_mark_children(VALUE ptr, int lev) case NODE_MODULE: case NODE_ALIAS: case NODE_VALIAS: + case NODE_BLOCK_PASS: + case NODE_LAMBDA: gc_mark((VALUE)obj->as.node.u1.node, lev); /* fall through */ case NODE_METHOD: /* 2 */ -- cgit v1.2.3