public interface jdk.incubator.foreign.CLinker
minor version: 0
major version: 59
flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
this_class: jdk.incubator.foreign.CLinker
super_class: java.lang.Object
{
public static final jdk.incubator.foreign.ValueLayout C_CHAR;
descriptor: Ljdk/incubator/foreign/ValueLayout;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final jdk.incubator.foreign.ValueLayout C_SHORT;
descriptor: Ljdk/incubator/foreign/ValueLayout;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final jdk.incubator.foreign.ValueLayout C_INT;
descriptor: Ljdk/incubator/foreign/ValueLayout;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final jdk.incubator.foreign.ValueLayout C_LONG;
descriptor: Ljdk/incubator/foreign/ValueLayout;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final jdk.incubator.foreign.ValueLayout C_LONG_LONG;
descriptor: Ljdk/incubator/foreign/ValueLayout;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final jdk.incubator.foreign.ValueLayout C_FLOAT;
descriptor: Ljdk/incubator/foreign/ValueLayout;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final jdk.incubator.foreign.ValueLayout C_DOUBLE;
descriptor: Ljdk/incubator/foreign/ValueLayout;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final jdk.incubator.foreign.ValueLayout C_POINTER;
descriptor: Ljdk/incubator/foreign/ValueLayout;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
public static final jdk.incubator.foreign.MemoryLayout C_VA_LIST;
descriptor: Ljdk/incubator/foreign/MemoryLayout;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: getstatic jdk.internal.foreign.PlatformLayouts$SysV.C_CHAR:Ljdk/incubator/foreign/ValueLayout;
getstatic jdk.internal.foreign.PlatformLayouts$Win64.C_CHAR:Ljdk/incubator/foreign/ValueLayout;
getstatic jdk.internal.foreign.PlatformLayouts$AArch64.C_CHAR:Ljdk/incubator/foreign/ValueLayout;
invokestatic jdk.internal.foreign.PlatformLayouts.pick:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
checkcast jdk.incubator.foreign.ValueLayout
putstatic jdk.incubator.foreign.CLinker.C_CHAR:Ljdk/incubator/foreign/ValueLayout;
1: getstatic jdk.internal.foreign.PlatformLayouts$SysV.C_SHORT:Ljdk/incubator/foreign/ValueLayout;
getstatic jdk.internal.foreign.PlatformLayouts$Win64.C_SHORT:Ljdk/incubator/foreign/ValueLayout;
getstatic jdk.internal.foreign.PlatformLayouts$AArch64.C_SHORT:Ljdk/incubator/foreign/ValueLayout;
invokestatic jdk.internal.foreign.PlatformLayouts.pick:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
checkcast jdk.incubator.foreign.ValueLayout
putstatic jdk.incubator.foreign.CLinker.C_SHORT:Ljdk/incubator/foreign/ValueLayout;
2: getstatic jdk.internal.foreign.PlatformLayouts$SysV.C_INT:Ljdk/incubator/foreign/ValueLayout;
getstatic jdk.internal.foreign.PlatformLayouts$Win64.C_INT:Ljdk/incubator/foreign/ValueLayout;
getstatic jdk.internal.foreign.PlatformLayouts$AArch64.C_INT:Ljdk/incubator/foreign/ValueLayout;
invokestatic jdk.internal.foreign.PlatformLayouts.pick:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
checkcast jdk.incubator.foreign.ValueLayout
putstatic jdk.incubator.foreign.CLinker.C_INT:Ljdk/incubator/foreign/ValueLayout;
3: getstatic jdk.internal.foreign.PlatformLayouts$SysV.C_LONG:Ljdk/incubator/foreign/ValueLayout;
getstatic jdk.internal.foreign.PlatformLayouts$Win64.C_LONG:Ljdk/incubator/foreign/ValueLayout;
getstatic jdk.internal.foreign.PlatformLayouts$AArch64.C_LONG:Ljdk/incubator/foreign/ValueLayout;
invokestatic jdk.internal.foreign.PlatformLayouts.pick:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
checkcast jdk.incubator.foreign.ValueLayout
putstatic jdk.incubator.foreign.CLinker.C_LONG:Ljdk/incubator/foreign/ValueLayout;
4: getstatic jdk.internal.foreign.PlatformLayouts$SysV.C_LONG_LONG:Ljdk/incubator/foreign/ValueLayout;
getstatic jdk.internal.foreign.PlatformLayouts$Win64.C_LONG_LONG:Ljdk/incubator/foreign/ValueLayout;
getstatic jdk.internal.foreign.PlatformLayouts$AArch64.C_LONG_LONG:Ljdk/incubator/foreign/ValueLayout;
invokestatic jdk.internal.foreign.PlatformLayouts.pick:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
checkcast jdk.incubator.foreign.ValueLayout
putstatic jdk.incubator.foreign.CLinker.C_LONG_LONG:Ljdk/incubator/foreign/ValueLayout;
5: getstatic jdk.internal.foreign.PlatformLayouts$SysV.C_FLOAT:Ljdk/incubator/foreign/ValueLayout;
getstatic jdk.internal.foreign.PlatformLayouts$Win64.C_FLOAT:Ljdk/incubator/foreign/ValueLayout;
getstatic jdk.internal.foreign.PlatformLayouts$AArch64.C_FLOAT:Ljdk/incubator/foreign/ValueLayout;
invokestatic jdk.internal.foreign.PlatformLayouts.pick:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
checkcast jdk.incubator.foreign.ValueLayout
putstatic jdk.incubator.foreign.CLinker.C_FLOAT:Ljdk/incubator/foreign/ValueLayout;
6: getstatic jdk.internal.foreign.PlatformLayouts$SysV.C_DOUBLE:Ljdk/incubator/foreign/ValueLayout;
getstatic jdk.internal.foreign.PlatformLayouts$Win64.C_DOUBLE:Ljdk/incubator/foreign/ValueLayout;
getstatic jdk.internal.foreign.PlatformLayouts$AArch64.C_DOUBLE:Ljdk/incubator/foreign/ValueLayout;
invokestatic jdk.internal.foreign.PlatformLayouts.pick:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
checkcast jdk.incubator.foreign.ValueLayout
putstatic jdk.incubator.foreign.CLinker.C_DOUBLE:Ljdk/incubator/foreign/ValueLayout;
7: getstatic jdk.internal.foreign.PlatformLayouts$SysV.C_POINTER:Ljdk/incubator/foreign/ValueLayout;
getstatic jdk.internal.foreign.PlatformLayouts$Win64.C_POINTER:Ljdk/incubator/foreign/ValueLayout;
getstatic jdk.internal.foreign.PlatformLayouts$AArch64.C_POINTER:Ljdk/incubator/foreign/ValueLayout;
invokestatic jdk.internal.foreign.PlatformLayouts.pick:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
checkcast jdk.incubator.foreign.ValueLayout
putstatic jdk.incubator.foreign.CLinker.C_POINTER:Ljdk/incubator/foreign/ValueLayout;
8: getstatic jdk.internal.foreign.PlatformLayouts$SysV.C_VA_LIST:Ljdk/incubator/foreign/MemoryLayout;
getstatic jdk.internal.foreign.PlatformLayouts$Win64.C_VA_LIST:Ljdk/incubator/foreign/MemoryLayout;
getstatic jdk.internal.foreign.PlatformLayouts$AArch64.C_VA_LIST:Ljdk/incubator/foreign/MemoryLayout;
invokestatic jdk.internal.foreign.PlatformLayouts.pick:(Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
putstatic jdk.incubator.foreign.CLinker.C_VA_LIST:Ljdk/incubator/foreign/MemoryLayout;
return
LocalVariableTable:
Start End Slot Name Signature
public static jdk.incubator.foreign.CLinker getInstance();
descriptor: ()Ljdk/incubator/foreign/CLinker;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "CLinker.getInstance"
invokestatic jdk.internal.foreign.Utils.checkRestrictedAccess:(Ljava/lang/String;)V
1: invokestatic jdk.internal.foreign.abi.SharedUtils.getSystemLinker:()Ljdk/incubator/foreign/CLinker;
areturn
LocalVariableTable:
Start End Slot Name Signature
public abstract java.lang.invoke.MethodHandle downcallHandle(jdk.incubator.foreign.Addressable, java.lang.invoke.MethodType, jdk.incubator.foreign.FunctionDescriptor);
descriptor: (Ljdk/incubator/foreign/Addressable;Ljava/lang/invoke/MethodType;Ljdk/incubator/foreign/FunctionDescriptor;)Ljava/lang/invoke/MethodHandle;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
symbol
type
function
public abstract jdk.incubator.foreign.MemorySegment upcallStub(java.lang.invoke.MethodHandle, jdk.incubator.foreign.FunctionDescriptor);
descriptor: (Ljava/lang/invoke/MethodHandle;Ljdk/incubator/foreign/FunctionDescriptor;)Ljdk/incubator/foreign/MemorySegment;
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
MethodParameters:
Name Flags
target
function
public static <T extends jdk.incubator.foreign.MemoryLayout> T asVarArg();
descriptor: (Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
invokestatic jdk.internal.foreign.PlatformLayouts.asVarArg:(Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemoryLayout;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 layout TT;
Signature: <T::Ljdk/incubator/foreign/MemoryLayout;>(TT;)TT;
MethodParameters:
Name Flags
layout
public static jdk.incubator.foreign.MemorySegment toCString(java.lang.String);
descriptor: (Ljava/lang/String;)Ljdk/incubator/foreign/MemorySegment;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
invokevirtual java.lang.String.getBytes:()[B
invokestatic jdk.incubator.foreign.CLinker.toCString:([B)Ljdk/incubator/foreign/MemorySegment;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 str Ljava/lang/String;
MethodParameters:
Name Flags
str
public static jdk.incubator.foreign.MemorySegment toCString(java.lang.String, java.nio.charset.Charset);
descriptor: (Ljava/lang/String;Ljava/nio/charset/Charset;)Ljdk/incubator/foreign/MemorySegment;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
aload 1
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
invokestatic jdk.incubator.foreign.CLinker.toCString:([B)Ljdk/incubator/foreign/MemorySegment;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 str Ljava/lang/String;
0 3 1 charset Ljava/nio/charset/Charset;
MethodParameters:
Name Flags
str
charset
public static jdk.incubator.foreign.MemorySegment toCString(java.lang.String, jdk.incubator.foreign.NativeScope);
descriptor: (Ljava/lang/String;Ljdk/incubator/foreign/NativeScope;)Ljdk/incubator/foreign/MemorySegment;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
invokevirtual java.lang.String.getBytes:()[B
aload 1
invokestatic jdk.incubator.foreign.CLinker.toCString:([BLjdk/incubator/foreign/NativeScope;)Ljdk/incubator/foreign/MemorySegment;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 str Ljava/lang/String;
0 3 1 scope Ljdk/incubator/foreign/NativeScope;
MethodParameters:
Name Flags
str
scope
public static jdk.incubator.foreign.MemorySegment toCString(java.lang.String, java.nio.charset.Charset, jdk.incubator.foreign.NativeScope);
descriptor: (Ljava/lang/String;Ljava/nio/charset/Charset;Ljdk/incubator/foreign/NativeScope;)Ljdk/incubator/foreign/MemorySegment;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 0
aload 1
invokevirtual java.lang.String.getBytes:(Ljava/nio/charset/Charset;)[B
aload 2
invokestatic jdk.incubator.foreign.CLinker.toCString:([BLjdk/incubator/foreign/NativeScope;)Ljdk/incubator/foreign/MemorySegment;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 str Ljava/lang/String;
0 4 1 charset Ljava/nio/charset/Charset;
0 4 2 scope Ljdk/incubator/foreign/NativeScope;
MethodParameters:
Name Flags
str
charset
scope
public static java.lang.String toJavaStringRestricted(jdk.incubator.foreign.MemoryAddress);
descriptor: (Ljdk/incubator/foreign/MemoryAddress;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: ldc "CLinker.toJavaStringRestricted"
invokestatic jdk.internal.foreign.Utils.checkRestrictedAccess:(Ljava/lang/String;)V
1: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: getstatic jdk.internal.foreign.NativeMemorySegmentImpl.EVERYTHING:Ljdk/incubator/foreign/MemorySegment;
aload 0
invokeinterface jdk.incubator.foreign.MemoryAddress.toRawLongValue:()J
invokestatic java.nio.charset.Charset.defaultCharset:()Ljava/nio/charset/Charset;
invokestatic jdk.internal.foreign.abi.SharedUtils.toJavaStringInternal:(Ljdk/incubator/foreign/MemorySegment;JLjava/nio/charset/Charset;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 addr Ljdk/incubator/foreign/MemoryAddress;
MethodParameters:
Name Flags
addr
public static java.lang.String toJavaStringRestricted(jdk.incubator.foreign.MemoryAddress, java.nio.charset.Charset);
descriptor: (Ljdk/incubator/foreign/MemoryAddress;Ljava/nio/charset/Charset;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: ldc "CLinker.toJavaStringRestricted"
invokestatic jdk.internal.foreign.Utils.checkRestrictedAccess:(Ljava/lang/String;)V
1: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: getstatic jdk.internal.foreign.NativeMemorySegmentImpl.EVERYTHING:Ljdk/incubator/foreign/MemorySegment;
aload 0
invokeinterface jdk.incubator.foreign.MemoryAddress.toRawLongValue:()J
aload 1
invokestatic jdk.internal.foreign.abi.SharedUtils.toJavaStringInternal:(Ljdk/incubator/foreign/MemorySegment;JLjava/nio/charset/Charset;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 addr Ljdk/incubator/foreign/MemoryAddress;
0 4 1 charset Ljava/nio/charset/Charset;
MethodParameters:
Name Flags
addr
charset
public static java.lang.String toJavaString(jdk.incubator.foreign.MemorySegment);
descriptor: (Ljdk/incubator/foreign/MemorySegment;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
lconst_0
invokestatic java.nio.charset.Charset.defaultCharset:()Ljava/nio/charset/Charset;
invokestatic jdk.internal.foreign.abi.SharedUtils.toJavaStringInternal:(Ljdk/incubator/foreign/MemorySegment;JLjava/nio/charset/Charset;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 addr Ljdk/incubator/foreign/MemorySegment;
MethodParameters:
Name Flags
addr
public static java.lang.String toJavaString(jdk.incubator.foreign.MemorySegment, java.nio.charset.Charset);
descriptor: (Ljdk/incubator/foreign/MemorySegment;Ljava/nio/charset/Charset;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
lconst_0
aload 1
invokestatic jdk.internal.foreign.abi.SharedUtils.toJavaStringInternal:(Ljdk/incubator/foreign/MemorySegment;JLjava/nio/charset/Charset;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 addr Ljdk/incubator/foreign/MemorySegment;
0 3 1 charset Ljava/nio/charset/Charset;
MethodParameters:
Name Flags
addr
charset
private static void copy(jdk.incubator.foreign.MemorySegment, byte[]);
descriptor: (Ljdk/incubator/foreign/MemorySegment;[B)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic jdk.incubator.foreign.MemorySegment.ofArray:([B)Ljdk/incubator/foreign/MemorySegment;
astore 2
start local 2 1: aload 0
aload 2
invokeinterface jdk.incubator.foreign.MemorySegment.copyFrom:(Ljdk/incubator/foreign/MemorySegment;)V
2: aload 0
aload 1
arraylength
i2l
iconst_0
invokestatic jdk.incubator.foreign.MemoryAccess.setByteAtOffset:(Ljdk/incubator/foreign/MemorySegment;JB)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 addr Ljdk/incubator/foreign/MemorySegment;
0 4 1 bytes [B
1 4 2 heapSegment Ljdk/incubator/foreign/MemorySegment;
MethodParameters:
Name Flags
addr
bytes
private static jdk.incubator.foreign.MemorySegment toCString(byte[]);
descriptor: ([B)Ljdk/incubator/foreign/MemorySegment;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
arraylength
iconst_1
iadd
i2l
lconst_1
invokestatic jdk.incubator.foreign.MemorySegment.allocateNative:(JJ)Ljdk/incubator/foreign/MemorySegment;
astore 1
start local 1 1: aload 1
aload 0
invokestatic jdk.incubator.foreign.CLinker.copy:(Ljdk/incubator/foreign/MemorySegment;[B)V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 bytes [B
1 3 1 segment Ljdk/incubator/foreign/MemorySegment;
MethodParameters:
Name Flags
bytes
private static jdk.incubator.foreign.MemorySegment toCString(byte[], jdk.incubator.foreign.NativeScope);
descriptor: ([BLjdk/incubator/foreign/NativeScope;)Ljdk/incubator/foreign/MemorySegment;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
aload 0
arraylength
iconst_1
iadd
i2l
lconst_1
invokeinterface jdk.incubator.foreign.NativeScope.allocate:(JJ)Ljdk/incubator/foreign/MemorySegment;
astore 2
start local 2 1: aload 2
aload 0
invokestatic jdk.incubator.foreign.CLinker.copy:(Ljdk/incubator/foreign/MemorySegment;[B)V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 bytes [B
0 3 1 scope Ljdk/incubator/foreign/NativeScope;
1 3 2 addr Ljdk/incubator/foreign/MemorySegment;
MethodParameters:
Name Flags
bytes
scope
public static jdk.incubator.foreign.MemoryAddress allocateMemoryRestricted(long);
descriptor: (J)Ljdk/incubator/foreign/MemoryAddress;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: ldc "CLinker.allocateMemoryRestricted"
invokestatic jdk.internal.foreign.Utils.checkRestrictedAccess:(Ljava/lang/String;)V
1: lload 0
invokestatic jdk.internal.foreign.abi.SharedUtils.allocateMemoryInternal:(J)Ljdk/incubator/foreign/MemoryAddress;
astore 2
start local 2 2: aload 2
getstatic jdk.incubator.foreign.MemoryAddress.NULL:Ljdk/incubator/foreign/MemoryAddress;
invokeinterface jdk.incubator.foreign.MemoryAddress.equals:(Ljava/lang/Object;)Z
ifeq 4
3: new java.lang.OutOfMemoryError
dup
invokespecial java.lang.OutOfMemoryError.<init>:()V
athrow
4: StackMap locals: jdk.incubator.foreign.MemoryAddress
StackMap stack:
aload 2
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 size J
2 5 2 addr Ljdk/incubator/foreign/MemoryAddress;
MethodParameters:
Name Flags
size
public static void freeMemoryRestricted(jdk.incubator.foreign.MemoryAddress);
descriptor: (Ljdk/incubator/foreign/MemoryAddress;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "CLinker.freeMemoryRestricted"
invokestatic jdk.internal.foreign.Utils.checkRestrictedAccess:(Ljava/lang/String;)V
1: aload 0
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
invokestatic jdk.internal.foreign.abi.SharedUtils.freeMemoryInternal:(Ljdk/incubator/foreign/MemoryAddress;)V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 addr Ljdk/incubator/foreign/MemoryAddress;
MethodParameters:
Name Flags
addr
}
SourceFile: "CLinker.java"
NestMembers:
jdk.incubator.foreign.CLinker$TypeKind jdk.incubator.foreign.CLinker$VaList jdk.incubator.foreign.CLinker$VaList$Builder
InnerClasses:
public final TypeKind = jdk.incubator.foreign.CLinker$TypeKind of jdk.incubator.foreign.CLinker
public abstract VaList = jdk.incubator.foreign.CLinker$VaList of jdk.incubator.foreign.CLinker
public final AArch64 = jdk.internal.foreign.PlatformLayouts$AArch64 of jdk.internal.foreign.PlatformLayouts
public final SysV = jdk.internal.foreign.PlatformLayouts$SysV of jdk.internal.foreign.PlatformLayouts
public final Win64 = jdk.internal.foreign.PlatformLayouts$Win64 of jdk.internal.foreign.PlatformLayouts