summaryrefslogtreecommitdiff
path: root/lib/ffi/managedstruct.rb
diff options
context:
space:
mode:
authorLars Kanis <lars@greiz-reinsdorf.de>2023-05-02 11:28:06 +0200
committerLars Kanis <lars@greiz-reinsdorf.de>2023-05-02 11:54:33 +0200
commit08b1a6754fb1ebbf340c778e9a015ce0ecc83974 (patch)
tree5011a6b04cb9295bd2d6c44ed302a0bfb0d3acaf /lib/ffi/managedstruct.rb
parent98cce6a671e333fcb6b6eeeb821885f03d0e2fa5 (diff)
downloadffi-08b1a6754fb1ebbf340c778e9a015ce0ecc83974.tar.gz
Allow private release method for ManagedStruct and AutoPointer
FFI users might not want to expose `release` as a public class method, but want to keep it private. Also re-enable GC tests that were disabled as part of #427, but make them opt-in per env var FFI_TEST_GC. Derivations of Releaser are no longer necessary, so that they are removed now.
Diffstat (limited to 'lib/ffi/managedstruct.rb')
-rw-r--r--lib/ffi/managedstruct.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/ffi/managedstruct.rb b/lib/ffi/managedstruct.rb
index b5ec8a3..5d243e5 100644
--- a/lib/ffi/managedstruct.rb
+++ b/lib/ffi/managedstruct.rb
@@ -75,7 +75,7 @@ module FFI
# @overload initialize
# A new instance of FFI::ManagedStruct.
def initialize(pointer=nil)
- raise NoMethodError, "release() not implemented for class #{self}" unless self.class.respond_to? :release
+ raise NoMethodError, "release() not implemented for class #{self}" unless self.class.respond_to?(:release, true)
raise ArgumentError, "Must supply a pointer to memory for the Struct" unless pointer
super AutoPointer.new(pointer, self.class.method(:release))
end