lib/fiddle/import.rb in fiddle-1.0.0 vs lib/fiddle/import.rb in fiddle-1.0.1

- old
+ new

@@ -81,15 +81,11 @@ when Handle lib when Importer lib.handlers else - begin - Fiddle.dlopen(lib) - rescue DLError - raise(DLError, "can't load #{lib}") - end + Fiddle.dlopen(lib) end }.flatten() @handler = CompositeHandler.new(handles) @func_map = {} @type_alias = {} @@ -113,20 +109,25 @@ return SIZEOF_SHORT when TYPE_INT return SIZEOF_INT when TYPE_LONG return SIZEOF_LONG - when TYPE_LONG_LONG - return SIZEOF_LONG_LONG when TYPE_FLOAT return SIZEOF_FLOAT when TYPE_DOUBLE return SIZEOF_DOUBLE when TYPE_VOIDP return SIZEOF_VOIDP + when TYPE_CONST_STRING + return SIZEOF_CONST_STRING else - raise(DLError, "unknown type: #{ty}") + if defined?(TYPE_LONG_LONG) and + ty == TYPE_LONG_LONG + return SIZEOF_LONG_LONG + else + raise(DLError, "unknown type: #{ty}") + end end when Class if( ty.instance_methods().include?(:to_ptr) ) return ty.size() end @@ -152,10 +153,11 @@ private :parse_bind_options # :stopdoc: CALL_TYPE_TO_ABI = Hash.new { |h, k| raise RuntimeError, "unsupported call type: #{k}" - }.merge({ :stdcall => (Function::STDCALL rescue Function::DEFAULT), + }.merge({ :stdcall => Function.const_defined?(:STDCALL) ? Function::STDCALL : + Function::DEFAULT, :cdecl => Function::DEFAULT, nil => Function::DEFAULT }).freeze private_constant :CALL_TYPE_TO_ABI # :startdoc: