Interface TypeValueFreeFunc

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 TypeValueFreeFunc extends FunctionPointer

Functional interface declaration of the TypeValueFreeFunc callback.

See Also:
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    run(Value value)
    Frees any old contents that might be left in the value->data array of the given value.
    Creates a native function pointer to the upcall(MemorySegment) method.
    default void
    The upcall method is called from native code.
  • Method Details

    • run

      void run(Value value)

      Frees any old contents that might be left in the value->data array of the given value.

      No resources may remain allocated through the GValue contents after this function returns. E.g. for our above string type:

      // only free strings without a specific flag for static storage
      if (!(value->data[1].v_uint & G_VALUE_NOCOPY_CONTENTS))
        g_free (value->data[0].v_pointer);
      
      Parameters:
      value - the value to free
      Since:
      2.78
    • upcall

      default void upcall(MemorySegment value)
      The upcall method is called from native code. The parameters are marshaled and run(Value) is executed.
    • toCallback

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