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

ruby-changes:26454

From: usa <ko1@a...>
Date: Thu, 20 Dec 2012 18:47:54 +0900 (JST)
Subject: [ruby-changes:26454] usa:r38505 (ruby_1_9_3): merge revision(s) 38073,38251,38252: [Backport #7552]

usa	2012-12-20 18:45:19 +0900 (Thu, 20 Dec 2012)

  New Revision: 38505

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

  Log:
    merge revision(s) 38073,38251,38252: [Backport #7552]
    
    * ext/fiddle/extconf.rb, ext/fiddle/function.c
      (Fiddle::Function::STDCALL): FFI_STDCALL is not a macro, but an
      enumeration. [ruby-core:50398] [Bug #7483]

  Modified directories:
    branches/ruby_1_9_3/
  Modified files:
    branches/ruby_1_9_3/ChangeLog
    branches/ruby_1_9_3/ext/fiddle/closure.c
    branches/ruby_1_9_3/ext/fiddle/extconf.rb
    branches/ruby_1_9_3/ext/fiddle/function.c
    branches/ruby_1_9_3/version.h

Index: ruby_1_9_3/ChangeLog
===================================================================
--- ruby_1_9_3/ChangeLog	(revision 38504)
+++ ruby_1_9_3/ChangeLog	(revision 38505)
@@ -1,3 +1,9 @@ https://github.com/ruby/ruby/blob/trunk/ruby_1_9_3/ChangeLog#L1
+Thu Dec 20 18:43:00 2012  Naohisa Goto  <ngotogenome@g...>
+
+	* ext/fiddle/extconf.rb, ext/fiddle/function.c
+	  (Fiddle::Function::STDCALL): FFI_STDCALL is not a macro, but an
+	  enumeration. [ruby-core:50398] [Bug #7483]
+
 Thu Dec 20 18:40:25 2012  Nobuyoshi Nakada  <nobu@r...>
 
 	* thread.c (exec_event_hooks): exceptions in event hooks should not
Index: ruby_1_9_3/ext/fiddle/function.c
===================================================================
--- ruby_1_9_3/ext/fiddle/function.c	(revision 38504)
+++ ruby_1_9_3/ext/fiddle/function.c	(revision 38505)
@@ -179,7 +179,7 @@ Init_fiddle_function(void) https://github.com/ruby/ruby/blob/trunk/ruby_1_9_3/ext/fiddle/function.c#L179
      */
     rb_define_const(cFiddleFunction, "DEFAULT", INT2NUM(FFI_DEFAULT_ABI));
 
-#ifdef FFI_STDCALL
+#ifdef HAVE_CONST_FFI_STDCALL
     /*
      * Document-const: STDCALL
      *
@@ -203,7 +203,7 @@ Init_fiddle_function(void) https://github.com/ruby/ruby/blob/trunk/ruby_1_9_3/ext/fiddle/function.c#L203
 
     /*
      * Document-method: new
-     * call-seq: new(ptr, *args, ret_type, abi = DEFAULT)
+     * call-seq: new(ptr, args, ret_type, abi = DEFAULT)
      *
      * Constructs a Function object.
      * * +ptr+ is a referenced function, of a DL::Handle
Index: ruby_1_9_3/ext/fiddle/extconf.rb
===================================================================
--- ruby_1_9_3/ext/fiddle/extconf.rb	(revision 38504)
+++ ruby_1_9_3/ext/fiddle/extconf.rb	(revision 38505)
@@ -19,6 +19,36 @@ end https://github.com/ruby/ruby/blob/trunk/ruby_1_9_3/ext/fiddle/extconf.rb#L19
 
 have_header 'sys/mman.h'
 
+if have_header "dlfcn.h"
+  have_library "dl"
+
+  %w{ dlopen dlclose dlsym }.each do |func|
+    abort "missing function #{func}" unless have_func(func)
+  end
+
+  have_func "dlerror"
+elsif have_header "windows.h"
+  %w{ LoadLibrary FreeLibrary GetProcAddress }.each do |func|
+    abort "missing function #{func}" unless have_func(func)
+  end
+end
+
+have_const('FFI_STDCALL', 'ffi.h') || have_const('FFI_STDCALL', 'ffi/ffi.h')
+
+config = File.read(RbConfig.expand(File.join($arch_hdrdir, "ruby/config.h")))
+types = {"SIZE_T"=>"SSIZE_T", "PTRDIFF_T"=>nil, "INTPTR_T"=>nil}
+types.each do |type, signed|
+  if /^\#define\s+SIZEOF_#{type}\s+(SIZEOF_(.+)|\d+)/ =~ config
+    if size = $2 and size != 'VOIDP'
+      size = types.fetch(size) {size}
+      $defs << format("-DTYPE_%s=TYPE_%s", signed||type, size)
+    end
+    if signed
+      check_signedness(type.downcase, "stddef.h")
+    end
+  end
+end
+
 create_makefile 'fiddle'
 
 # :startdoc:
Index: ruby_1_9_3/ext/fiddle/closure.c
===================================================================
--- ruby_1_9_3/ext/fiddle/closure.c	(revision 38504)
+++ ruby_1_9_3/ext/fiddle/closure.c	(revision 38505)
@@ -284,7 +284,7 @@ Init_fiddle_closure() https://github.com/ruby/ruby/blob/trunk/ruby_1_9_3/ext/fiddle/closure.c#L284
     /*
      * Document-method: new
      *
-     * call-seq: new(ret, *args, abi = Fiddle::DEFAULT)
+     * call-seq: new(ret, args, abi = Fiddle::DEFAULT)
      *
      * Construct a new Closure object.
      *
Index: ruby_1_9_3/version.h
===================================================================
--- ruby_1_9_3/version.h	(revision 38504)
+++ ruby_1_9_3/version.h	(revision 38505)
@@ -1,5 +1,5 @@ https://github.com/ruby/ruby/blob/trunk/ruby_1_9_3/version.h#L1
 #define RUBY_VERSION "1.9.3"
-#define RUBY_PATCHLEVEL 351
+#define RUBY_PATCHLEVEL 352
 
 #define RUBY_RELEASE_DATE "2012-12-20"
 #define RUBY_RELEASE_YEAR 2012

Property changes on: ruby_1_9_3
___________________________________________________________________
Modified: svn:mergeinfo
   Merged /trunk:r38073,38251-38252


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

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