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

ruby-changes:25177

From: ko1 <ko1@a...>
Date: Wed, 17 Oct 2012 05:30:32 +0900 (JST)
Subject: [ruby-changes:25177] ko1:r37229 (trunk): * vm_insnhelper.c (vm_invoke_block): vm_caller_setup_args() can skip

ko1	2012-10-17 05:30:17 +0900 (Wed, 17 Oct 2012)

  New Revision: 37229

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

  Log:
    * vm_insnhelper.c (vm_invoke_block): vm_caller_setup_args() can skip
      when splat flag is not set.

  Modified files:
    trunk/ChangeLog
    trunk/vm_insnhelper.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 37228)
+++ ChangeLog	(revision 37229)
@@ -1,3 +1,8 @@
+Wed Oct 17 05:05:07 2012  Koichi Sasada  <ko1@a...>
+
+	* vm_insnhelper.c (vm_invoke_block): vm_caller_setup_args() can skip
+	  when splat flag is not set.
+
 Wed Oct 17 01:53:47 2012  Koichi Sasada  <ko1@a...>
 
 	* vm_insnhelper.c (vm_getivar, vm_setivar): support index inline cache
Index: vm_insnhelper.c
===================================================================
--- vm_insnhelper.c	(revision 37228)
+++ vm_insnhelper.c	(revision 37229)
@@ -2032,7 +2032,9 @@
     }
     iseq = block->iseq;
 
-    vm_caller_setup_args(th, GET_CFP(), ci);
+    if (UNLIKELY(ci->flag & VM_CALL_ARGS_SPLAT)) {
+	vm_caller_setup_args(th, GET_CFP(), ci);
+    }
 
     if (BUILTIN_TYPE(iseq) != T_NODE) {
 	int opt_pc;

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

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