* compile.c (iseq_compile_each): fix around yield arguments
(with NODE_ARGSCAT). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
b244c0dd3a
commit
9a524fad38
|
@ -1,3 +1,8 @@
|
|||
Wed Jun 6 10:50:01 2007 Koichi Sasada <ko1@atdot.net>
|
||||
|
||||
* compile.c (iseq_compile_each): fix around yield arguments
|
||||
(with NODE_ARGSCAT).
|
||||
|
||||
Wed Jun 6 02:50:53 2007 Koichi Sasada <ko1@atdot.net>
|
||||
|
||||
* cont.c (rb_fiber_start): clear th->tag and check error to fix
|
||||
|
|
10
compile.c
10
compile.c
|
@ -3762,11 +3762,8 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)
|
|||
if (node->nd_head) {
|
||||
if (nd_type(node->nd_head) == NODE_ARRAY) {
|
||||
NODE *p;
|
||||
for (argc = 0, p = node->nd_head; p;
|
||||
p = p->nd_next, argc++) {
|
||||
/* count argc */
|
||||
}
|
||||
|
||||
argc = node->nd_head->nd_alen;
|
||||
compile_array(iseq, args, node->nd_head, Qfalse);
|
||||
POP_ELEMENT(args);
|
||||
debugs("argc: %d\n", argc);
|
||||
|
@ -3777,10 +3774,9 @@ iseq_compile_each(rb_iseq_t *iseq, LINK_ANCHOR *ret, NODE * node, int poped)
|
|||
flag |= VM_CALL_ARGS_SPLAT_BIT;
|
||||
}
|
||||
|
||||
compile_array(iseq, args, node->nd_head->nd_head,
|
||||
Qfalse);
|
||||
argc = node->nd_head->nd_head->nd_alen + 1;
|
||||
compile_array(iseq, args, node->nd_head->nd_head, Qfalse);
|
||||
POP_ELEMENT(args);
|
||||
argc = LIST_SIZE(args) + 1;
|
||||
|
||||
COMPILE(args, "args(cat: splat)",
|
||||
node->nd_head->nd_body);
|
||||
|
|
Loading…
Reference in New Issue