APIdia Launch Partner
Top Inners Fields Constructors Methods
jdk.internal.foreign.abi

public Class DowncallLinker

extends Object
Class Inheritance
Imports
jdk.internal.access.JavaLangInvokeAccess, .SharedSecrets, jdk.internal.foreign.AbstractMemorySegmentImpl, .MemorySessionImpl, jdk.internal.invoke.MhUtil, java.lang.foreign.AddressLayout, .Arena, .MemorySegment, .SegmentAllocator, java.lang.invoke.MethodHandle, .MethodHandles, .MethodType, java.util.ArrayList, .Arrays, .List, java.util.stream.Stream

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static record

Field Summary

Modifier and TypeField and Description
private final ABIDescriptor
private final CallingSequence
private static final MethodHandle
private static final JavaLangInvokeAccess
private static final MethodHandle
private static final boolean

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private Stream<Binding.VMStore>
public MethodHandle
pack-priv Object
private static MethodHandle
private Binding.VMLoad[]
private Stream<Binding.VMLoad>
private VMStorage[]
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

abiback to summary
private final ABIDescriptor abi
callingSequenceback to summary
private final CallingSequence callingSequence
EMPTY_OBJECT_ARRAY_HANDLEback to summary
private static final MethodHandle EMPTY_OBJECT_ARRAY_HANDLE
JLIAback to summary
private static final JavaLangInvokeAccess JLIA
MH_INVOKE_INTERP_BINDINGSback to summary
private static final MethodHandle MH_INVOKE_INTERP_BINDINGS
USE_SPECback to summary
private static final boolean USE_SPEC

Constructor Detail

DowncallLinkerback to summary
public DowncallLinker(ABIDescriptor abi, CallingSequence callingSequence)

Method Detail

argMoveBindingsStreamback to summary
private Stream<Binding.VMStore> argMoveBindingsStream(CallingSequence callingSequence)
getBoundMethodHandleback to summary
public MethodHandle getBoundMethodHandle()
invokeInterpBindingsback to summary
pack-priv Object invokeInterpBindings(SegmentAllocator allocator, Object[] args, DowncallLinker.InvocationData invData) throws Throwable
makeCollectorHandleback to summary
private static MethodHandle makeCollectorHandle(MethodType type)
retMoveBindingsback to summary
private Binding.VMLoad[] retMoveBindings(CallingSequence callingSequence)
retMoveBindingsStreamback to summary
private Stream<Binding.VMLoad> retMoveBindingsStream(CallingSequence callingSequence)
toStorageArrayback to summary
private VMStorage[] toStorageArray(Binding.Move[] moves)
jdk.internal.foreign.abi back to summary

private final Record DowncallLinker.InvocationData

extends Record
Class Inheritance
Record Components
leaf:MethodHandle 
callingSequence:CallingSequence 

Field Summary

Modifier and TypeField and Description
private final CallingSequence
callingSequence

Record Component accessed by callingSequence().

private final MethodHandle
leaf

Record Component accessed by leaf().

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public CallingSequence
callingSequence()

Record Component getter of callingSequence.

public final boolean
equals(Object o)

Implements abstract java.lang.Record.equals.

Indicates whether some other object is "equal to" this one.

public final int
hashCode()

Implements abstract java.lang.Record.hashCode.

Returns a hash code value for the record.

public MethodHandle
leaf()

Record Component getter of leaf.

public final String
toString()

Implements abstract java.lang.Record.toString.

Returns a string representation of the record.

Field Detail

callingSequenceback to summary
private final CallingSequence callingSequence

Record Component accessed by callingSequence().

leafback to summary
private final MethodHandle leaf

Record Component accessed by leaf().

Constructor Detail

InvocationDataback to summary
private InvocationData(MethodHandle leaf, CallingSequence callingSequence)

Method Detail

callingSequenceback to summary
public CallingSequence callingSequence()

Record Component getter of callingSequence.

equalsback to summary
public final boolean equals(Object o)

Implements abstract java.lang.Record.equals.

Doc from java.lang.Record.equals.

Indicates whether some other object is "equal to" this one. In addition to the general contract of Object.equals, record classes must further obey the invariant that when a record instance is "copied" by passing the result of the record component accessor methods to the canonical constructor, as follows:

    R copy = new R(r.c1(), r.c2(), ..., r.cn());
then it must be the case that r.equals(copy).
hashCodeback to summary
public final int hashCode()

Implements abstract java.lang.Record.hashCode.

Doc from java.lang.Record.hashCode.

Returns a hash code value for the record. Obeys the general contract of Object.hashCode. For records, hashing behavior is constrained by the refined contract of Record.equals, so that any two records created from the same components must have the same hash code.

leafback to summary
public MethodHandle leaf()

Record Component getter of leaf.

toStringback to summary
public final String toString()

Implements abstract java.lang.Record.toString.

Doc from java.lang.Record.toString.

Returns a string representation of the record. In accordance with the general contract of Object#toString(), the toString method returns a string that "textually represents" this record. The result should be a concise but informative representation that is easy for a person to read.

In addition to this general contract, record classes must further participate in the invariant that any two records which are equal must produce equal strings. This invariant is necessarily relaxed in the rare case where corresponding equal component values might fail to produce equal strings for themselves.