@abstract Base class for {AutoPointer}‘s releasers.
All subclasses of Releaser should define a +#release(ptr)+ method.
A releaser is an object in charge of release an {AutoPointer}.
@param [Boolean] autorelease @return [Boolean] autorelease Set
autorelease
attribute for pointer managed by Releaser.
# File lib/ffi/autopointer.rb, line 126 def autorelease=(autorelease) @autorelease = autorelease if @ptr end
@param args Release pointer if autorelease
is set.
# File lib/ffi/autopointer.rb, line 132 def call(*args) release(@ptr) if @autorelease && @ptr end
@return [nil] Free pointer.
# File lib/ffi/autopointer.rb, line 114 def free if @ptr release(@ptr) @autorelease = false @ptr = nil @proc = nil end end