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