summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/fiddle/lib/fiddle/ffi_backend.rb8
-rw-r--r--test/fiddle/test_pointer.rb4
2 files changed, 8 insertions, 4 deletions
diff --git a/ext/fiddle/lib/fiddle/ffi_backend.rb b/ext/fiddle/lib/fiddle/ffi_backend.rb
index eac469aff6..0f068a75e0 100644
--- a/ext/fiddle/lib/fiddle/ffi_backend.rb
+++ b/ext/fiddle/lib/fiddle/ffi_backend.rb
@@ -261,6 +261,14 @@ module Fiddle
end
end
+ def self.write(addr, bytes)
+ FFI::Pointer.new(addr).write_bytes(bytes)
+ end
+
+ def self.read(addr, len)
+ FFI::Pointer.new(addr).read_bytes(len)
+ end
+
class << self
alias [] to_ptr
end
diff --git a/test/fiddle/test_pointer.rb b/test/fiddle/test_pointer.rb
index d46fb662ba..673e7ca445 100644
--- a/test/fiddle/test_pointer.rb
+++ b/test/fiddle/test_pointer.rb
@@ -11,10 +11,6 @@ module Fiddle
end
def test_can_read_write_memory
- if ffi_backend?
- omit("Fiddle::Pointer.{read,write} don't exist in FFI backend")
- end
-
# Allocate some memory
Fiddle::Pointer.malloc(Fiddle::SIZEOF_VOIDP, Fiddle::RUBY_FREE) do |pointer|
address = pointer.to_i