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

ruby-changes:23311

From: nobu <ko1@a...>
Date: Tue, 17 Apr 2012 14:27:36 +0900 (JST)
Subject: [ruby-changes:23311] nobu:r35362 (ruby_1_9_3): merge revision(s) 35354,35356,35357,35361:

nobu	2012-04-17 14:27:25 +0900 (Tue, 17 Apr 2012)

  New Revision: 35362

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

  Log:
    merge revision(s) 35354,35356,35357,35361:
    
    * dln.c (rb_w32_check_imported): skip ordinal entries.  based on a
      patch by phasis68 (Heesob Park) at [ruby-core:44381].
      [ruby-core:44371][Bug #6303]

  Added directories:
    branches/ruby_1_9_3/ext/-test-/win32/
    branches/ruby_1_9_3/test/-ext-/win32/
  Modified files:
    branches/ruby_1_9_3/ChangeLog
    branches/ruby_1_9_3/dln.c
    branches/ruby_1_9_3/ext/-test-/win32/dln/extconf.rb
    branches/ruby_1_9_3/version.h

Index: ruby_1_9_3/ChangeLog
===================================================================
--- ruby_1_9_3/ChangeLog	(revision 35361)
+++ ruby_1_9_3/ChangeLog	(revision 35362)
@@ -1,7 +1,8 @@
-Mon Apr 16 21:26:20 2012  Nobuyoshi Nakada  <nobu@r...>
+Mon Apr 17 14:27:22 2012  Nobuyoshi Nakada  <nobu@r...>
 
-	* dln.c (rb_w32_check_imported): skip ordinal entries.  patched by
-	  phasis68 (Heesob Park) at [ruby-core:44381].  [Bug #6303]
+	* dln.c (rb_w32_check_imported): skip ordinal entries.  based on a
+	  patch by phasis68 (Heesob Park) at [ruby-core:44381].
+	  [ruby-core:44371][Bug #6303]
 
 Sun Apr 15 14:57:00 2012  Tanaka Akira  <akr@f...>
 
Index: ruby_1_9_3/dln.c
===================================================================
--- ruby_1_9_3/dln.c	(revision 35361)
+++ ruby_1_9_3/dln.c	(revision 35362)
@@ -1214,7 +1214,7 @@
     while (desc->Name) {
 	PIMAGE_THUNK_DATA pint = (PIMAGE_THUNK_DATA)((char *)ext + desc->Characteristics);
 	PIMAGE_THUNK_DATA piat = (PIMAGE_THUNK_DATA)((char *)ext + desc->FirstThunk);
-	while (piat->u1.Function) {
+	for (; piat->u1.Function; piat++, pint++) {
 	    static const char prefix[] = "rb_";
 	    PIMAGE_IMPORT_BY_NAME pii;
 	    const char *name;
@@ -1226,8 +1226,6 @@
 		FARPROC addr = GetProcAddress(mine, name);
 		if (addr) return (FARPROC)piat->u1.Function == addr;
 	    }
-	    piat++;
-	    pint++;
 	}
 	desc++;
     }
Index: ruby_1_9_3/ext/-test-/win32/dln/libdlntest.def
===================================================================
--- ruby_1_9_3/ext/-test-/win32/dln/libdlntest.def	(revision 0)
+++ ruby_1_9_3/ext/-test-/win32/dln/libdlntest.def	(revision 35362)
@@ -0,0 +1,2 @@
+EXPORTS
+dlntest_ordinal @1 NONAME

Property changes on: ruby_1_9_3/ext/-test-/win32/dln/libdlntest.def
___________________________________________________________________
Added: svn:eol-style
   + LF

Index: ruby_1_9_3/ext/-test-/win32/dln/libdlntest.c
===================================================================
--- ruby_1_9_3/ext/-test-/win32/dln/libdlntest.c	(revision 0)
+++ ruby_1_9_3/ext/-test-/win32/dln/libdlntest.c	(revision 35362)
@@ -0,0 +1,4 @@
+extern __declspec(dllexport) void
+dlntest_ordinal(void)
+{
+}

Property changes on: ruby_1_9_3/ext/-test-/win32/dln/libdlntest.c
___________________________________________________________________
Added: svn:eol-style
   + LF

Index: ruby_1_9_3/ext/-test-/win32/dln/extconf.rb
===================================================================
--- ruby_1_9_3/ext/-test-/win32/dln/extconf.rb	(revision 0)
+++ ruby_1_9_3/ext/-test-/win32/dln/extconf.rb	(revision 35362)
@@ -0,0 +1,29 @@
+if /mswin|mingw/ =~ RUBY_PLATFORM
+  $objs = ["dlntest.o"]
+  $cleanfiles << "$(topdir)/dlntest.dll"
+  config_string('cleanobjs') {|t| $cleanfiles.concat(t.gsub(/\$\*/, 'dlntest').split)}
+
+  create_makefile("-test-/win32/dln")
+  m = File.read("Makefile")
+  m.sub!(/^OBJS =.*/) {$&+" dlntest.#{$LIBEXT}"}
+  open("Makefile", "wb") do |mf|
+    mf.puts m, "\n"
+    sodir = $extout ? "$(RUBYARCHDIR)/" : ''
+    mf.print "#{sodir}$(DLLIB): dlntest.#{$LIBEXT}"
+    mf.puts
+    mf.puts "dlntest.#{$LIBEXT}: $(topdir)/dlntest.dll"
+    mf.puts
+    mf.puts depend_rules("$(topdir)/dlntest.dll: libdlntest.o libdlntest.def")
+    mf.puts "\t$(ECHO) linking shared-object $(@F)\n"
+    mf.print "\t-$(Q)$(RM) $@\n"
+    mf.print "\t-$(Q)$(MAKEDIRS) $(@D)\n" if $extout
+    link_so = LINK_SO.gsub(/^/, "\t$(Q) ")
+    link_so.sub!(/\$\(LOCAL_LIBS\)/, '')
+    link_so.gsub!(/-\$\(arch\)/, '')
+    link_so.gsub!(/:.so=/, ':.dll=')
+    link_so.sub!(/\$\(OBJS\)/, "libdlntest.#{$OBJEXT}")
+    link_so.sub!(/\$\(DEFFILE\)/, "$(srcdir)/libdlntest.def")
+    mf.puts link_so
+    mf.puts
+  end
+end

Property changes on: ruby_1_9_3/ext/-test-/win32/dln/extconf.rb
___________________________________________________________________
Added: svn:eol-style
   + LF

Index: ruby_1_9_3/ext/-test-/win32/dln/dlntest.c
===================================================================
--- ruby_1_9_3/ext/-test-/win32/dln/dlntest.c	(revision 0)
+++ ruby_1_9_3/ext/-test-/win32/dln/dlntest.c	(revision 35362)
@@ -0,0 +1,17 @@
+#include <ruby.h>
+
+extern __declspec(dllimport) void dlntest_ordinal(void);
+
+static VALUE
+dln_dlntest(VALUE self)
+{
+    dlntest_ordinal();
+    return self;
+}
+
+void
+Init_dln(void)
+{
+    VALUE m = rb_define_module_under(rb_define_module("Bug"), "Win32");
+    rb_define_module_function(m, "dlntest", dln_dlntest, 0);
+}

Property changes on: ruby_1_9_3/ext/-test-/win32/dln/dlntest.c
___________________________________________________________________
Added: svn:eol-style
   + LF

Index: ruby_1_9_3/version.h
===================================================================
--- ruby_1_9_3/version.h	(revision 35361)
+++ ruby_1_9_3/version.h	(revision 35362)
@@ -1,10 +1,10 @@
 #define RUBY_VERSION "1.9.3"
-#define RUBY_PATCHLEVEL 185
+#define RUBY_PATCHLEVEL 186
 
-#define RUBY_RELEASE_DATE "2012-04-16"
+#define RUBY_RELEASE_DATE "2012-04-17"
 #define RUBY_RELEASE_YEAR 2012
 #define RUBY_RELEASE_MONTH 4
-#define RUBY_RELEASE_DAY 16
+#define RUBY_RELEASE_DAY 17
 
 #include "ruby/version.h"
 
Index: ruby_1_9_3/test/-ext-/win32/test_dln.rb
===================================================================
--- ruby_1_9_3/test/-ext-/win32/test_dln.rb	(revision 0)
+++ ruby_1_9_3/test/-ext-/win32/test_dln.rb	(revision 35362)
@@ -0,0 +1,13 @@
+require 'test/unit'
+require_relative '../../ruby/envutil'
+
+module Bug
+  module Win32
+    class TestDln < Test::Unit::TestCase
+      def test_check_imported
+        bug = '[Bug #6303]'
+        assert_in_out_err(['-r-test-/win32/dln', '-eexit'], '', [], [], bug, timeout: 10)
+      end
+    end
+  end
+end

Property changes on: ruby_1_9_3/test/-ext-/win32/test_dln.rb
___________________________________________________________________
Added: svn:eol-style
   + LF


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

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