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

ruby-changes:3083

From: ko1@a...
Date: 24 Dec 2007 13:55:50 +0900
Subject: [ruby-changes:3083] nobu - Ruby:r14575 (trunk): * proc.c (rb_proc_new), vm.c (invoke_block): removed u3.state magic.

nobu	2007-12-24 13:55:37 +0900 (Mon, 24 Dec 2007)

  New Revision: 14575

  Modified files:
    trunk/ChangeLog
    trunk/proc.c
    trunk/test/ruby/test_symbol.rb
    trunk/vm.c

  Log:
    * proc.c (rb_proc_new), vm.c (invoke_block): removed u3.state magic.
      [ruby-core:14310]
    
    * test/ruby/test_symbol.rb (test_to_proc): a test from Frederick
      Cheung <frederick.cheung AT gmail.com>.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/test/ruby/test_symbol.rb?r1=14575&r2=14574
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14575&r2=14574
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/proc.c?r1=14575&r2=14574
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/vm.c?r1=14575&r2=14574

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 14574)
+++ ChangeLog	(revision 14575)
@@ -1,3 +1,11 @@
+Mon Dec 24 13:55:35 2007  Nobuyoshi Nakada  <nobu@r...>
+
+	* proc.c (rb_proc_new), vm.c (invoke_block): removed u3.state magic.
+	  [ruby-core:14310]
+
+	* test/ruby/test_symbol.rb (test_to_proc): a test from Frederick
+	  Cheung <frederick.cheung AT gmail.com>.
+
 Mon Dec 24 13:43:36 2007  Nobuyoshi Nakada  <nobu@r...>
 
 	* thread.c (rb_thread_atfork): should not leave living_threads
Index: proc.c
===================================================================
--- proc.c	(revision 14574)
+++ proc.c	(revision 14575)
@@ -1414,10 +1414,7 @@
     VALUE (*func)(ANYARGS), /* VALUE yieldarg[, VALUE procarg] */
     VALUE val)
 {
-    rb_proc_t *proc;
-    VALUE procval = rb_iterate((VALUE(*)(VALUE))mproc, 0, func, val);
-    GetProcPtr(procval, proc);
-    ((NODE*)proc->block.iseq)->u3.state = 1;
+    VALUE procval = rb_iterate(mproc, 0, func, val);
     return procval;
 }
 
@@ -1442,7 +1439,7 @@
      *   end
      * end
      */
-    procval = rb_iterate((VALUE (*)(VALUE))mlambda, 0, bmcall, method);
+    procval = rb_iterate(mlambda, 0, bmcall, method);
     GetProcPtr(procval, proc);
     proc->is_from_method = 1;
     return procval;
Index: vm.c
===================================================================
--- vm.c	(revision 14574)
+++ vm.c	(revision 14575)
@@ -568,11 +568,6 @@
 	val = vm_eval_body(th);
     }
     else {
-	if (((NODE*)block->iseq)->u3.state == 1) {
-	    VALUE args = rb_ary_new4(argc, argv);
-	    argc = 1;
-	    argv = &args;
-	}
 	val = vm_yield_with_cfunc(th, block, self, argc, argv);
     }
     return val;
Index: test/ruby/test_symbol.rb
===================================================================
--- test/ruby/test_symbol.rb	(revision 14574)
+++ test/ruby/test_symbol.rb	(revision 14575)
@@ -74,4 +74,8 @@
     assert_inspect_evaled(':$0')
     assert_inspect_evaled(':$1')
   end
+
+  def test_to_proc
+    assert_equal %w(1 2 3), (1..3).map(&:to_s)
+  end
 end

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

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