lib/selenium/webdriver/ie/util.rb in selenium-webdriver-0.0.28 vs lib/selenium/webdriver/ie/util.rb in selenium-webdriver-0.0.29
- old
+ new
@@ -5,16 +5,10 @@
#
# @private
#
module Util
- CP_ACP = 0
- CP_OEMCP = 1
- CP_MACCP = 2
- CP_THREAD_ACP = 3
- CP_SYMBOL = 42
- CP_UTF7 = 65000
CP_UTF8 = 65001
def string_array_from(raw_strings)
strings_ptr = raw_strings.get_pointer(0)
length_ptr = FFI::MemoryPointer.new :int
@@ -38,19 +32,18 @@
end
arr
ensure
Lib.wdFreeStringCollection(strings_ptr)
- raw_strings.free
end
def create_element(&blk)
element_ptr_ref = FFI::MemoryPointer.new :pointer
yield element_ptr_ref
- Element.new(self, element_ptr_ref.get_pointer(0))
- ensure
- element_ptr_ref.free
+
+ auto_ptr = FFI::AutoPointer.new(element_ptr_ref.get_pointer(0), Lib.method(:finalize_element))
+ Element.new(self, auto_ptr)
end
def create_element_collection(&blk)
elements_ptr_ref = FFI::MemoryPointer.new :pointer
yield elements_ptr_ref
@@ -83,11 +76,10 @@
end
wstring_to_bytestring raw_string
ensure
Lib.wdFreeString(string_ptr) unless string_ptr.null?
- string_ptr_ref.free
end
def extract_elements_from(elements_ptr_ref)
elements_ptr = elements_ptr_ref.get_pointer(0)
length_ptr = FFI::MemoryPointer.new :int
@@ -109,16 +101,12 @@
end
Lib.wdFreeElementCollection(elements_ptr, 0)
arr
- ensure
- elements_ptr_ref.free
- length_ptr.free
end
-
def wstring_ptr(str)
str = str.to_s
size = Kernel32.MultiByteToWideChar(CP_UTF8, 0, str, -1, nil, 0)
unless size > 0
@@ -140,11 +128,9 @@
buf = FFI::MemoryPointer.new :pointer, size
Kernel32.WideCharToMultiByte(CP_UTF8, 0, wstring, -1, buf, size, nil, nil )
buf.get_bytes(0, size - 1)
- ensure
- buf.free if buf
end
end # Util
end # IE
end # WebDriver