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/