mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* ext/{dl,fiddle}/win32/lib/win32/registry.rb (Win32::Regstry#check):
should report the position of the error. * ext/{dl,fiddle}/win32/lib/win32/registry.rb (Win32::Regstry#QueryValue): workaround for test-all crash. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41849 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a189f7f6c8
commit
b35c6a429e
3 changed files with 34 additions and 16 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
Tue Jul 9 11:04:35 2013 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||||
|
|
||||||
|
* ext/{dl,fiddle}/win32/lib/win32/registry.rb (Win32::Regstry#check):
|
||||||
|
should report the position of the error.
|
||||||
|
|
||||||
|
* ext/{dl,fiddle}/win32/lib/win32/registry.rb
|
||||||
|
(Win32::Regstry#QueryValue): workaround for test-all crash.
|
||||||
|
|
||||||
Tue Jul 9 10:27:56 2013 NAKAMURA Usaku <usa@ruby-lang.org>
|
Tue Jul 9 10:27:56 2013 NAKAMURA Usaku <usa@ruby-lang.org>
|
||||||
|
|
||||||
* ext/{dl,fiddle}/win32/lib/win32/registry.rb
|
* ext/{dl,fiddle}/win32/lib/win32/registry.rb
|
||||||
|
|
|
@ -232,7 +232,7 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr
|
||||||
module_function
|
module_function
|
||||||
|
|
||||||
def check(result)
|
def check(result)
|
||||||
raise Error, result, caller(2) if result != 0
|
raise Error, result, caller(1) if result != 0
|
||||||
end
|
end
|
||||||
|
|
||||||
def packdw(dw)
|
def packdw(dw)
|
||||||
|
@ -283,13 +283,18 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr
|
||||||
end
|
end
|
||||||
|
|
||||||
def QueryValue(hkey, name)
|
def QueryValue(hkey, name)
|
||||||
type = packdw(0)
|
prev_gc = GC.disable
|
||||||
size = packdw(0)
|
begin
|
||||||
name = name.encode(WCHAR)
|
type = packdw(0)
|
||||||
check RegQueryValueExW.call(hkey, name, 0, type, 0, size)
|
size = packdw(0)
|
||||||
data = WCHAR_SPACE * unpackdw(size)
|
name = name.encode(WCHAR)
|
||||||
check RegQueryValueExW.call(hkey, name, 0, type, data, size)
|
check RegQueryValueExW.call(hkey, name, 0, type, 0, size)
|
||||||
[ unpackdw(type), data[0, unpackdw(size)].encode ]
|
data = WCHAR_SPACE * unpackdw(size)
|
||||||
|
check RegQueryValueExW.call(hkey, name, 0, type, data, size)
|
||||||
|
[ unpackdw(type), data[0, unpackdw(size)].encode ]
|
||||||
|
ensure
|
||||||
|
GC.enable if prev_gc
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def SetValue(hkey, name, type, data, size)
|
def SetValue(hkey, name, type, data, size)
|
||||||
|
|
|
@ -232,7 +232,7 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr
|
||||||
module_function
|
module_function
|
||||||
|
|
||||||
def check(result)
|
def check(result)
|
||||||
raise Error, result, caller(2) if result != 0
|
raise Error, result, caller(1) if result != 0
|
||||||
end
|
end
|
||||||
|
|
||||||
def packdw(dw)
|
def packdw(dw)
|
||||||
|
@ -283,13 +283,18 @@ For detail, see the MSDN[http://msdn.microsoft.com/library/en-us/sysinfo/base/pr
|
||||||
end
|
end
|
||||||
|
|
||||||
def QueryValue(hkey, name)
|
def QueryValue(hkey, name)
|
||||||
type = packdw(0)
|
prev_gc = GC.disable
|
||||||
size = packdw(0)
|
begin
|
||||||
name = name.encode(WCHAR)
|
type = packdw(0)
|
||||||
check RegQueryValueExW.call(hkey, name, 0, type, 0, size)
|
size = packdw(0)
|
||||||
data = WCHAR_SPACE * unpackdw(size)
|
name = name.encode(WCHAR)
|
||||||
check RegQueryValueExW.call(hkey, name, 0, type, data, size)
|
check RegQueryValueExW.call(hkey, name, 0, type, 0, size)
|
||||||
[ unpackdw(type), data[0, unpackdw(size)].encode ]
|
data = WCHAR_SPACE * unpackdw(size)
|
||||||
|
check RegQueryValueExW.call(hkey, name, 0, type, data, size)
|
||||||
|
[ unpackdw(type), data[0, unpackdw(size)].encode ]
|
||||||
|
ensure
|
||||||
|
GC.enable if prev_gc
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def SetValue(hkey, name, type, data, size)
|
def SetValue(hkey, name, type, data, size)
|
||||||
|
|
Loading…
Add table
Reference in a new issue