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

ruby-changes:9278

From: yugui <ko1@a...>
Date: Wed, 17 Dec 2008 15:16:24 +0900 (JST)
Subject: [ruby-changes:9278] Ruby:r20815 (ruby_1_9_1): merges r20748 from trunk into ruby_1_9_1.

yugui	2008-12-17 15:15:55 +0900 (Wed, 17 Dec 2008)

  New Revision: 20815

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

  Log:
    merges r20748 from trunk into ruby_1_9_1.
    * vm_insnhelper.c (vm_callee_setup_arg_complex): uses cfp from
      blockptr instead of the current cfp.  [ruby-core:20544]

  Modified files:
    branches/ruby_1_9_1/ChangeLog
    branches/ruby_1_9_1/bootstraptest/test_block.rb
    branches/ruby_1_9_1/vm_insnhelper.c

Index: ruby_1_9_1/ChangeLog
===================================================================
--- ruby_1_9_1/ChangeLog	(revision 20814)
+++ ruby_1_9_1/ChangeLog	(revision 20815)
@@ -1,3 +1,8 @@
+Mon Dec 15 16:26:46 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* vm_insnhelper.c (vm_callee_setup_arg_complex): uses cfp from
+	  blockptr instead of the current cfp.  [ruby-core:20544]
+
 Wed Dec 17 09:50:19 2008  Yuki Sonoda (Yugui)  <yugui@y...>
 
 	* test/ruby/test_metaclass.rb: removed codes for my debugging.
@@ -138,7 +143,7 @@
 
 	* encoding.c (default_external): endless recursion during
 	  loading a locale encoding on some locale.
-	  fixed by Nobuyuki Nakada.
+	  fixed by Nobuyoshi Nakada.
 
 	* string.c (sym_inspect): quote if symbol contains non-printable
 	  characters.  [ruby-dev:37398]
Index: ruby_1_9_1/bootstraptest/test_block.rb
===================================================================
--- ruby_1_9_1/bootstraptest/test_block.rb	(revision 20814)
+++ ruby_1_9_1/bootstraptest/test_block.rb	(revision 20815)
@@ -487,6 +487,24 @@
 }, '[ruby-talk:266422]'
 
 assert_equal 'ok', %q{
+  class C
+    define_method(:xyz) do |o, k, &block|
+      block.call(o, k)
+    end
+  end
+  C.new.xyz("o","k") {|o, k| o+k}
+}, '[ruby-core:20544]'
+
+assert_equal 'ok', %q{
+  class C
+    define_method(:xyz) do |*args, &block|
+      block.call(*args)
+    end
+  end
+  C.new.xyz("o","k") {|*args| args.join("")}
+}, '[ruby-core:20544]'
+
+assert_equal 'ok', %q{
   STDERR.reopen(STDOUT)
   class C
     define_method(:foo) do |&block|
Index: ruby_1_9_1/vm_insnhelper.c
===================================================================
--- ruby_1_9_1/vm_insnhelper.c	(revision 20814)
+++ ruby_1_9_1/vm_insnhelper.c	(revision 20815)
@@ -186,7 +186,8 @@
 	    if (blockptr->proc == 0) {
 		rb_proc_t *proc;
 
-		blockval = vm_make_proc(th, th->cfp, blockptr, rb_cProc);
+		blockval = vm_make_proc(th, RUBY_VM_GET_CFP_FROM_BLOCK_PTR(blockptr),
+					blockptr, rb_cProc);
 
 		GetProcPtr(blockval, proc);
 		*block = &proc->block;

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

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