Skip to content

Commit 6ab5902

Browse files
committed
Extract Truffle::FiddleBackend.get_pointer_value
1 parent 4ebaf30 commit 6ab5902

File tree

1 file changed

+17
-13
lines changed

1 file changed

+17
-13
lines changed

lib/truffle/truffle/fiddle_backend.rb

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,7 @@ def self.int_type(size)
5555
def self.convert_ruby_to_native(type, val)
5656
case type
5757
when Fiddle::TYPE_VOIDP
58-
if val.is_a?(String)
59-
Truffle::CExt.string_pointer_to_native(val)
60-
elsif val.is_a?(Fiddle::Pointer)
61-
val.to_i
62-
elsif val.respond_to?(:to_ptr)
63-
val.to_ptr.to_i
64-
elsif val.nil?
65-
0
66-
elsif val.is_a?(Integer)
67-
val
68-
else
69-
raise NotImplementedError, "#{val.inspect} to pointer"
70-
end
58+
get_pointer_value(val)
7159
when Fiddle::TYPE_INT
7260
Integer(val)
7361
when -Fiddle::TYPE_LONG
@@ -79,6 +67,22 @@ def self.convert_ruby_to_native(type, val)
7967
end
8068
end
8169

70+
def self.get_pointer_value(val)
71+
if val.is_a?(String)
72+
Truffle::CExt.string_pointer_to_native(val)
73+
elsif val.is_a?(Fiddle::Pointer)
74+
val.to_i
75+
elsif val.respond_to?(:to_ptr)
76+
val.to_ptr.to_i
77+
elsif val.nil?
78+
0
79+
elsif val.is_a?(Integer)
80+
val
81+
else
82+
raise NotImplementedError, "#{val.inspect} to pointer"
83+
end
84+
end
85+
8286
def self.convert_native_to_ruby(type, val)
8387
case type
8488
when Fiddle::TYPE_VOID

0 commit comments

Comments
 (0)