Skip to content

Commit e4f1307

Browse files
ffi_backend: allow any integer coercible as pointer address
1 parent 6d08b6a commit e4f1307

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

lib/fiddle/ffi_backend.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,8 @@ def initialize(addr, size = nil, free = nil)
309309
end
310310
elsif addr.is_a?(IO)
311311
raise NotImplementedError, "IO ptr isn't supported"
312+
else
313+
FFI::Pointer.new(Integer(addr))
312314
end
313315

314316
@size = size ? size : ptr.size

test/fiddle/test_pointer.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,11 +161,16 @@ def test_to_ptr_with_ptr
161161
end
162162
end
163163

164-
def test_to_ptr_with_num
164+
def test_to_ptr_with_int
165165
ptr = Pointer.new 0
166166
assert_equal ptr, Pointer[0]
167167
end
168168

169+
def test_to_ptr_with_num
170+
ptr = Pointer.new 0
171+
assert_equal ptr, Pointer[0.0]
172+
end
173+
169174
def test_equals
170175
ptr = Pointer.new 0
171176
ptr2 = Pointer.new 0

0 commit comments

Comments
 (0)