# Uses of Interface
jdk.incubator.foreign.SegmentAllocator

Packages that use SegmentAllocator
Package
Description
jdk.incubator.foreign
Classes to support low-level and efficient foreign memory/function access, directly from Java.

## Uses of SegmentAllocator in jdk.incubator.foreign

Methods in jdk.incubator.foreign that return SegmentAllocator
Modifier and Type
Method
Description
`static SegmentAllocator`
SegmentAllocator.`arenaAllocator(long size, ResourceScope scope)`
Returns a native arena-based allocator which allocates a single memory segment, of given size (using malloc), and then responds to allocation request by returning different slices of that same segment (until no further allocation is possible).
`static SegmentAllocator`
SegmentAllocator.`arenaAllocator(ResourceScope scope)`
Returns a native unbounded arena-based allocator.
`static SegmentAllocator`
SegmentAllocator.`ofScope(ResourceScope scope)`
Returns a native allocator which responds to allocation requests by allocating new segments bound by the given resource scope, using the `MemorySegment.allocateNative(long, long, ResourceScope)` factory.
`static SegmentAllocator`
SegmentAllocator.`ofSegment(MemorySegment segment)`
Returns a segment allocator which responds to allocation requests by recycling a single segment; that is, each new allocation request will return a new slice starting at the segment offset `0` (alignment constraints are ignored by this allocator).
Methods in jdk.incubator.foreign with parameters of type SegmentAllocator
Modifier and Type
Method
Description
`MethodHandle`
CLinker.`downcallHandle(Addressable symbol, SegmentAllocator allocator, MethodType type, FunctionDescriptor function)`
Obtain a foreign method handle, with the given type and featuring the given function descriptor, which can be used to call a target foreign function at the given address.
`static MemorySegment`
CLinker.`toCString(String str, SegmentAllocator allocator)`
Converts a Java string into a UTF-8 encoded, null-terminated C string, storing the result into a native memory segment allocated using the provided allocator.
`MemorySegment`
CLinker.VaList.`vargAsSegment(MemoryLayout layout, SegmentAllocator allocator)`
Reads the next value as a `MemorySegment`, and advances this va list's position.