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