Method: FFI::ManagedStruct#initialize

Defined in:
lib/ffi/managedstruct.rb

#initialize(pointer) ⇒ ManagedStruct #initializeManagedStruct

A new instance of FFI::ManagedStruct.

Overloads:

  • #initialize(pointer) ⇒ ManagedStruct

    Create a new ManagedStruct which will invoke the class method #release on

Raises:

  • (NoMethodError)


77
78
79
80
81
# File 'lib/ffi/managedstruct.rb', line 77

def initialize(pointer=nil)
  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