ruby-changes:22090
From: nobu <ko1@a...>
Date: Tue, 27 Dec 2011 21:17:48 +0900 (JST)
Subject: [ruby-changes:22090] nobu:r34139 (trunk): * node.h (rb_args_info): change pre_args_num and post_args_num as
nobu 2011-12-27 21:17:36 +0900 (Tue, 27 Dec 2011) New Revision: 34139 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=34139 Log: * node.h (rb_args_info): change pre_args_num and post_args_num as int, to match with rb_iseq_t. * parse.y (new_args_gen): check overflow. Modified files: trunk/ChangeLog trunk/node.c trunk/node.h trunk/parse.y trunk/test/ruby/test_keyword.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 34138) +++ ChangeLog (revision 34139) @@ -1,3 +1,10 @@ +Tue Dec 27 21:17:33 2011 Nobuyoshi Nakada <nobu@r...> + + * node.h (rb_args_info): change pre_args_num and post_args_num as + int, to match with rb_iseq_t. + + * parse.y (new_args_gen): check overflow. + Mon Dec 26 22:38:35 2011 Yusuke Endoh <mame@t...> * vm_insnhelper.c (unknown_keyword_error): make it kind a error Index: parse.y =================================================================== --- parse.y (revision 34138) +++ parse.y (revision 34139) @@ -9656,10 +9656,10 @@ args = ALLOC(struct rb_args_info); - args->pre_args_num = m ? m->nd_plen : 0; + args->pre_args_num = m ? rb_long2int(m->nd_plen) : 0; args->pre_init = m ? m->nd_next : 0; - args->post_args_num = p ? p->nd_plen : 0; + args->post_args_num = p ? rb_long2int(p->nd_plen) : 0; args->post_init = p ? p->nd_next : 0; args->first_post_arg = p ? p->nd_pid : 0; Property changes on: test/ruby/test_keyword.rb ___________________________________________________________________ Added: svn:eol-style + LF Index: node.c =================================================================== --- node.c (revision 34138) +++ node.c (revision 34139) @@ -850,9 +850,9 @@ ANN("method parameters"); ANN("format: def method_name(.., [nd_opt=some], *[nd_rest], [nd_pid], .., &[nd_body])"); ANN("example: def foo(a, b, opt1=1, opt2=2, *rest, y, z, &blk); end"); - F_LONG(nd_ainfo->pre_args_num, "count of mandatory (pre-)arguments"); + F_INT(nd_ainfo->pre_args_num, "count of mandatory (pre-)arguments"); F_NODE(nd_ainfo->pre_init, "initialization of (pre-)arguments"); - F_LONG(nd_ainfo->post_args_num, "count of mandatory post-arguments"); + F_INT(nd_ainfo->post_args_num, "count of mandatory post-arguments"); F_NODE(nd_ainfo->post_init, "initialization of post-arguments"); F_ID(nd_ainfo->first_post_arg, "first post argument"); F_ID(nd_ainfo->rest_arg, "rest argument"); Index: node.h =================================================================== --- node.h (revision 34138) +++ node.h (revision 34139) @@ -488,11 +488,12 @@ const struct kwtable *rb_reserved_word(const char *, unsigned int); struct rb_args_info { - long pre_args_num; /* count of mandatory pre-arguments */ NODE *pre_init; + NODE *post_init; - long post_args_num; /* count of mandatory post-arguments */ - NODE *post_init; + int pre_args_num; /* count of mandatory pre-arguments */ + int post_args_num; /* count of mandatory post-arguments */ + ID first_post_arg; ID rest_arg; -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/