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

ruby-changes:39912

From: nobu <ko1@a...>
Date: Thu, 1 Oct 2015 19:51:10 +0900 (JST)
Subject: [ruby-changes:39912] nobu:r51993 (trunk): revert r51991

nobu	2015-10-01 19:50:49 +0900 (Thu, 01 Oct 2015)

  New Revision: 51993

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

  Log:
    revert r51991

  Modified files:
    trunk/insns.def
    trunk/vm_args.c
Index: insns.def
===================================================================
--- insns.def	(revision 51992)
+++ insns.def	(revision 51993)
@@ -941,10 +941,10 @@ send https://github.com/ruby/ruby/blob/trunk/insns.def#L941
 (VALUE val) // inc += - (int)(ci->orig_argc + ((ci->flag & VM_CALL_ARGS_BLOCKARG) ? 1 : 0));
 {
     struct rb_calling_info calling;
-    VALUE mark = vm_caller_setup_arg_block(th, reg_cfp, &calling, ci, blockiseq, FALSE);
+
+    vm_caller_setup_arg_block(th, reg_cfp, &calling, ci, blockiseq, FALSE);
     vm_search_method(ci, cc, calling.recv = TOPN(calling.argc = ci->orig_argc));
     CALL_METHOD(&calling, ci, cc);
-    RB_GC_GUARD(mark);
 }
 
 DEFINE_INSN
@@ -989,15 +989,13 @@ invokesuper https://github.com/ruby/ruby/blob/trunk/insns.def#L989
 (...)
 (VALUE val) // inc += - (int)(ci->orig_argc + ((ci->flag & VM_CALL_ARGS_BLOCKARG) ? 1 : 0));
 {
-    VALUE mark;
     struct rb_calling_info calling;
     calling.argc = ci->orig_argc;
 
-    mark = vm_caller_setup_arg_block(th, reg_cfp, &calling, ci, blockiseq, TRUE);
+    vm_caller_setup_arg_block(th, reg_cfp, &calling, ci, blockiseq, TRUE);
     calling.recv = GET_SELF();
     vm_search_super_method(th, GET_CFP(), &calling, ci, cc);
     CALL_METHOD(&calling, ci, cc);
-    RB_GC_GUARD(mark);
 }
 
 /**
Index: vm_args.c
===================================================================
--- vm_args.c	(revision 51992)
+++ vm_args.c	(revision 51993)
@@ -766,11 +766,10 @@ vm_caller_setup_arg_kw(rb_control_frame_ https://github.com/ruby/ruby/blob/trunk/vm_args.c#L766
     calling->argc -= kw_len - 1;
 }
 
-static VALUE
+static void
 vm_caller_setup_arg_block(const rb_thread_t *th, rb_control_frame_t *reg_cfp,
 			  struct rb_calling_info *calling, const struct rb_call_info *ci, rb_iseq_t *blockiseq, const int is_super)
 {
-    VALUE mark = 0;
     if (ci->flag & VM_CALL_ARGS_BLOCKARG) {
 	rb_proc_t *po;
 	VALUE proc;
@@ -779,10 +778,8 @@ vm_caller_setup_arg_block(const rb_threa https://github.com/ruby/ruby/blob/trunk/vm_args.c#L778
 
 	if (SYMBOL_P(proc) && rb_method_basic_definition_p(rb_cSymbol, idTo_proc)) {
 	    calling->blockptr = RUBY_VM_GET_BLOCK_PTR_IN_CFP(reg_cfp);
-	    blockiseq = (rb_iseq_t *)IFUNC_NEW(rb_sym_proc_call, SYM2ID(proc), 0);
-	    calling->blockptr->iseq = blockiseq;
+	    calling->blockptr->iseq = (rb_iseq_t *)IFUNC_NEW(rb_sym_proc_call, SYM2ID(proc), 0);
 	    calling->blockptr->proc = 0;
-	    mark = (VALUE)blockiseq;
 	}
 	else if (!NIL_P(proc)) {
 	    if (!rb_obj_is_proc(proc)) {
@@ -817,8 +814,6 @@ vm_caller_setup_arg_block(const rb_threa https://github.com/ruby/ruby/blob/trunk/vm_args.c#L814
 	    calling->blockptr = NULL;
 	}
     }
-
-    return mark;
 }
 
 #define IS_ARGS_SPLAT(ci)   ((ci)->flag & VM_CALL_ARGS_SPLAT)

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

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