* test/win32ole/test_win32ole_method.rb (test_offset_vtbl): check
that OS is Windows 32bit or Windows 64bit in order to get correct offset value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
52b05d259f
commit
7e195fa734
@ -1,3 +1,9 @@
|
|||||||
|
Sat Jun 26 07:59:18 2010 Masaki Suketa <masaki.suketa@nifty.ne.jp>
|
||||||
|
|
||||||
|
* test/win32ole/test_win32ole_method.rb (test_offset_vtbl): check
|
||||||
|
that OS is Windows 32bit or Windows 64bit in order to get
|
||||||
|
correct offset value.
|
||||||
|
|
||||||
Sat Jun 26 04:39:12 2010 Masaya Tarui <tarui@ruby-lnag.org>
|
Sat Jun 26 04:39:12 2010 Masaya Tarui <tarui@ruby-lnag.org>
|
||||||
|
|
||||||
* ext/dl/lib/dl/func.rb (call): don't overwrite original arguments
|
* ext/dl/lib/dl/func.rb (call): don't overwrite original arguments
|
||||||
|
@ -108,8 +108,29 @@ if defined?(WIN32OLE_METHOD)
|
|||||||
assert_equal(1610743810, @m_namespace.dispid)
|
assert_equal(1610743810, @m_namespace.dispid)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def is_win64?
|
||||||
|
if /win64$/ =~ RUBY_PLATFORM
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
require 'Win32API'
|
||||||
|
get_current_process = Win32API.new('kernel32', 'GetCurrentProcess', nil, 'i')
|
||||||
|
handle = get_current_process.call
|
||||||
|
is_wow64 = false
|
||||||
|
begin
|
||||||
|
is_wow64_process = Win32API.new('Kernel32', 'IsWow64Process', ['i', 'p'], 'i')
|
||||||
|
bool = "\0\0\0\0"
|
||||||
|
if is_wow64_process.call(handle, bool) != 0
|
||||||
|
is_wow64 = bool != "\0\0\0\0"
|
||||||
|
end
|
||||||
|
rescue RuntimeError
|
||||||
|
# no IsWow64Process
|
||||||
|
end
|
||||||
|
is_wow64
|
||||||
|
end
|
||||||
|
|
||||||
def test_offset_vtbl
|
def test_offset_vtbl
|
||||||
assert_equal(24, @m_invoke.offset_vtbl)
|
exp = is_win64? ? 48 : 24
|
||||||
|
assert_equal(exp, @m_invoke.offset_vtbl)
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_size_params
|
def test_size_params
|
||||||
|
Loading…
x
Reference in New Issue
Block a user