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

ruby-changes:7375

From: matz <ko1@a...>
Date: Thu, 28 Aug 2008 20:30:13 +0900 (JST)
Subject: [ruby-changes:7375] Ruby:r18894 (trunk): * vm_insnhelper.c (vm_yield_setup_args): object with to_ary should

matz	2008-08-28 20:29:57 +0900 (Thu, 28 Aug 2008)

  New Revision: 18894

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=18894

  Log:
    * vm_insnhelper.c (vm_yield_setup_args): object with to_ary should
      behave like array.  a patch from Yusuke Endoh  <mame at tsg.ne.jp>
      in [ruby-dev:35988].  [ruby-dev:35977]

  Modified files:
    trunk/ChangeLog
    trunk/vm_insnhelper.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 18893)
+++ ChangeLog	(revision 18894)
@@ -1,3 +1,9 @@
+Thu Aug 28 20:22:49 2008  Yukihiro Matsumoto  <matz@r...>
+
+	* vm_insnhelper.c (vm_yield_setup_args): object with to_ary should
+	  behave like array.  a patch from Yusuke Endoh  <mame at tsg.ne.jp>
+	  in [ruby-dev:35988].  [ruby-dev:35977]
+
 Thu Aug 28 19:04:50 2008  NAKAMURA Usaku  <usa@r...>
 
 	* bootstraptest/test_io.rb: no need to create real file.
Index: vm_insnhelper.c
===================================================================
--- vm_insnhelper.c	(revision 18893)
+++ vm_insnhelper.c	(revision 18894)
@@ -704,6 +704,7 @@
 	int i;
 	int argc = orig_argc;
 	const int m = iseq->argc;
+	VALUE ary;
 
 	th->mark_stack_len = argc;
 
@@ -714,8 +715,7 @@
 	 */
 	if (!(iseq->arg_simple & 0x02) &&
 	    (m + iseq->arg_post_len) > 0 &&
-	    argc == 1 && TYPE(argv[0]) == T_ARRAY) {
-	    VALUE ary = argv[0];
+	    argc == 1 && !NIL_P(ary = rb_check_array_type(argv[0]))) {
 	    th->mark_stack_len = argc = RARRAY_LEN(ary);
 
 	    CHECK_STACK_OVERFLOW(th->cfp, argc);

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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