Package jnr.ffi

Class Memory


  • public final class Memory
    extends java.lang.Object
    A utility for allocating memory that can be passed to native functions.
    • Method Detail

      • allocate

        public static Pointer allocate​(Runtime runtime,
                                       int size)
        Allocates a new block of java memory and wraps it in a Pointer accessor.
        Parameters:
        runtime - The current runtime.
        size - The size in bytes of memory to allocate.
        Returns:
        a Pointer instance that can access the memory.
      • allocate

        public static Pointer allocate​(Runtime runtime,
                                       NativeType type)
        Allocates a new block of java memory and wraps it in a Pointer accessor.
        Parameters:
        runtime - The current runtime.
        type - The native type to allocate memory for.
        Returns:
        a Pointer instance that can access the memory.
      • allocate

        public static Pointer allocate​(Runtime runtime,
                                       Type type)
        Allocates a new block of java memory and wraps it in a Pointer accessor.
        Parameters:
        runtime - The current runtime.
        type - The type to allocate memory for.
        Returns:
        a Pointer instance that can access the memory.
      • allocate

        public static Pointer allocate​(Runtime runtime,
                                       TypeAlias type)
        Allocates a new block of java memory and wraps it in a Pointer accessor.
        Parameters:
        runtime - The current runtime.
        type - The type alias to allocate memory for.
        Returns:
        a Pointer instance that can access the memory.
      • allocateDirect

        public static Pointer allocateDirect​(Runtime runtime,
                                             int size)
        Allocates a new block of native memory and wraps it in a Pointer accessor.
        Parameters:
        runtime - The current runtime.
        size - The size in bytes of memory to allocate.
        Returns:
        a Pointer instance that can access the memory.
      • allocateDirect

        public static Pointer allocateDirect​(Runtime runtime,
                                             long size)
        Allocates a new block of native memory and wraps it in a Pointer accessor.
        Parameters:
        runtime - The current runtime.
        size - The size in bytes of memory to allocate.
        Returns:
        a Pointer instance that can access the memory.
      • allocateDirect

        public static Pointer allocateDirect​(Runtime runtime,
                                             NativeType type)
        Allocates a new block of native memory and wraps it in a Pointer accessor.
        Parameters:
        runtime - The current runtime.
        type - The native type to allocate memory for.
        Returns:
        a Pointer instance that can access the memory.
      • allocateDirect

        public static Pointer allocateDirect​(Runtime runtime,
                                             TypeAlias type)
        Allocates a new block of native memory and wraps it in a Pointer accessor.
        Parameters:
        runtime - The current runtime.
        type - The type alias to allocate memory for.
        Returns:
        a Pointer instance that can access the memory.
      • allocateDirect

        public static Pointer allocateDirect​(Runtime runtime,
                                             int size,
                                             boolean clear)
        Allocates a new block of native memory and wraps it in a Pointer accessor.
        Parameters:
        runtime - The current runtime.
        size - The size in bytes of memory to allocate.
        clear - Whether the memory contents should be cleared, or left as random data.
        Returns:
        a Pointer instance that can access the memory.
      • allocateDirect

        public static Pointer allocateDirect​(Runtime runtime,
                                             long size,
                                             boolean clear)
        Allocates a new block of native memory and wraps it in a Pointer accessor.
        Parameters:
        runtime - The current runtime.
        size - The size in bytes of memory to allocate.
        clear - Whether the memory contents should be cleared, or left as random data.
        Returns:
        a Pointer instance that can access the memory.
      • allocateTemporary

        public static Pointer allocateTemporary​(Runtime runtime,
                                                NativeType type)
        Allocates a new block of transient native memory and wraps it in a Pointer accessor. The memory returned by this method should not be passed to native methods that store the address for later use, as it may change each time it is passed to native code.
        Parameters:
        runtime - The current runtime.
        type - The native type to allocate memory for.
        Returns:
        a Pointer instance that can access the memory.
      • allocateTemporary

        public static Pointer allocateTemporary​(Runtime runtime,
                                                TypeAlias type)
        Allocates a new block of transient native memory and wraps it in a Pointer accessor. The memory returned by this method should not be passed to native methods that store the address for later use, as it may change each time it is passed to native code.
        Parameters:
        runtime - The current runtime.
        type - The type alias to allocate memory for.
        Returns:
        a Pointer instance that can access the memory.
      • allocateTemporary

        public static Pointer allocateTemporary​(Runtime runtime,
                                                NativeType type,
                                                boolean clear)
        Allocates a new block of transient native memory and wraps it in a Pointer accessor. The memory returned by this method should not be passed to native methods that store the address for later use, as it may change each time it is passed to native code.
        Parameters:
        runtime - The current runtime.
        type - The native type to allocate memory for.
        clear - Whether the memory contents should be cleared, or left as random data.
        Returns:
        a Pointer instance that can access the memory.