[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]