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

ruby-changes:24667

From: usa <ko1@a...>
Date: Fri, 17 Aug 2012 12:42:31 +0900 (JST)
Subject: [ruby-changes:24667] usa:r36718 (trunk): * ext/dl/lib/dl/func.rb (DL::Function#bind): allow to return/break from

usa	2012-08-17 12:42:19 +0900 (Fri, 17 Aug 2012)

  New Revision: 36718

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

  Log:
    * ext/dl/lib/dl/func.rb (DL::Function#bind): allow to return/break from
      the callback method. (Fiddle already allows it.)
      [Bug #6389] [ruby-dev:45604]

  Modified files:
    trunk/ChangeLog
    trunk/ext/dl/lib/dl/func.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 36717)
+++ ChangeLog	(revision 36718)
@@ -1,3 +1,9 @@
+Fri Aug 17 12:39:33 2012  NAKAMURA Usaku  <usa@r...>
+
+	* ext/dl/lib/dl/func.rb (DL::Function#bind): allow to return/break from
+	  the callback method. (Fiddle already allows it.)
+	  [Bug #6389] [ruby-dev:45604]
+
 Thu Aug 16 19:54:24 2012  Koichi Sasada  <ko1@a...>
 
 	* vm_trace.c, vm_core.h: simplify tracing mechanism.
Index: ext/dl/lib/dl/func.rb
===================================================================
--- ext/dl/lib/dl/func.rb	(revision 36717)
+++ ext/dl/lib/dl/func.rb	(revision 36718)
@@ -90,6 +90,9 @@
         if( !block )
           raise(RuntimeError, "block must be given.")
         end
+        unless block.lambda?
+          block = Class.new{define_method(:call, block)}.new.method(:call)
+        end
         if( @cfunc.ptr == 0 )
           cb = Proc.new{|*args|
             ary = @stack.unpack(args)

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

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