Interface InstanceInitFunc

All Superinterfaces:
FunctionPointer
Functional Interface:
This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface @Generated("org.javagi.JavaGI") public interface InstanceInitFunc extends FunctionPointer

Functional interface declaration of the InstanceInitFunc callback.

See Also:
  • Method Details

    • run

      void run(TypeInstance instance, TypeClass gClass)

      A callback function used by the type system to initialize a new instance of a type.

      This function initializes all instance members and allocates any resources required by it.

      Initialization of a derived instance involves calling all its parent types instance initializers, so the class member of the instance is altered during its initialization to always point to the class that belongs to the type the current initializer was introduced for.

      The extended members of instance are guaranteed to have been filled with zeros before this function is called.

      Parameters:
      instance - The instance to initialize
      gClass - The class of the type the instance is created for
    • upcall

      default void upcall(MemorySegment instance, MemorySegment gClass)
      The upcall method is called from native code. The parameters are marshaled and run(TypeInstance, TypeClass) is executed.
    • toCallback

      default MemorySegment toCallback(Arena arena)
      Creates a native function pointer to the upcall(MemorySegment, MemorySegment) method.
      Specified by:
      toCallback in interface FunctionPointer
      Parameters:
      arena - the arena in which the function pointer is allocated
      Returns:
      the native function pointer