From 486f3f4270102bb79102085168cbf953818f52f6 Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 15 Feb 2016 03:42:09 +0000 Subject: win32/resolv.rb: check pointer size * ext/win32/lib/win32/resolv.rb: check pointer size first, NT if it is larger than 4 as Windows 9X are 32-bit mode only. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/win32/lib/win32/resolv.rb | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/ext/win32/lib/win32/resolv.rb b/ext/win32/lib/win32/resolv.rb index 2e724e3257..8dc9e0d88b 100644 --- a/ext/win32/lib/win32/resolv.rb +++ b/ext/win32/lib/win32/resolv.rb @@ -35,14 +35,16 @@ module Win32 end end -kernel32 = Module.new do +nt = Module.new do + break true if [nil].pack("p").size > 4 extend Importer dlload "kernel32" + getv = extern "int GetVersionExA(void *)", :stdcall + info = [ 148, 0, 0, 0, 0 ].pack('V5') + "\0" * 128 + getv.call(info) + break info.unpack('V5')[4] == 2 # VER_PLATFORM_WIN32_NT end -getv = kernel32.extern "int GetVersionExA(void *)", :stdcall -info = [ 148, 0, 0, 0, 0 ].pack('V5') + "\0" * 128 -getv.call(info) -if info.unpack('V5')[4] == 2 # VER_PLATFORM_WIN32_NT +if nt #==================================================================== # Windows NT #==================================================================== -- cgit v1.2.3