public class jdk.internal.foreign.HeapMemorySegmentImpl<H> extends jdk.internal.foreign.AbstractMemorySegmentImpl
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.internal.foreign.HeapMemorySegmentImpl
super_class: jdk.internal.foreign.AbstractMemorySegmentImpl
{
private static final jdk.internal.misc.Unsafe UNSAFE;
descriptor: Ljdk/internal/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int BYTE_ARR_BASE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
final long offset;
descriptor: J
flags: (0x0010) ACC_FINAL
final java.util.function.Supplier<H> baseProvider;
descriptor: Ljava/util/function/Supplier;
flags: (0x0010) ACC_FINAL
Signature: Ljava/util/function/Supplier<TH;>;
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic jdk.internal.misc.Unsafe.getUnsafe:()Ljdk/internal/misc/Unsafe;
putstatic jdk.internal.foreign.HeapMemorySegmentImpl.UNSAFE:Ljdk/internal/misc/Unsafe;
1: getstatic jdk.internal.foreign.HeapMemorySegmentImpl.UNSAFE:Ljdk/internal/misc/Unsafe;
ldc [B
invokevirtual jdk.internal.misc.Unsafe.arrayBaseOffset:(Ljava/lang/Class;)I
putstatic jdk.internal.foreign.HeapMemorySegmentImpl.BYTE_ARR_BASE:I
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(long, java.util.function.Supplier<H>, long, int, jdk.internal.foreign.MemoryScope);
descriptor: (JLjava/util/function/Supplier;JILjdk/internal/foreign/MemoryScope;)V
flags: (0x0000)
Code:
stack=5, locals=8, args_size=6
start local 0 start local 1 start local 3 start local 4 start local 6 start local 7 0: aload 0
lload 4
iload 6
aload 7
invokespecial jdk.internal.foreign.AbstractMemorySegmentImpl.<init>:(JILjdk/internal/foreign/MemoryScope;)V
1: aload 0
lload 1
putfield jdk.internal.foreign.HeapMemorySegmentImpl.offset:J
2: aload 0
aload 3
putfield jdk.internal.foreign.HeapMemorySegmentImpl.baseProvider:Ljava/util/function/Supplier;
3: return
end local 7 end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/foreign/HeapMemorySegmentImpl<TH;>;
0 4 1 offset J
0 4 3 baseProvider Ljava/util/function/Supplier<TH;>;
0 4 4 length J
0 4 6 mask I
0 4 7 scope Ljdk/internal/foreign/MemoryScope;
Signature: (JLjava/util/function/Supplier<TH;>;JILjdk/internal/foreign/MemoryScope;)V
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.ForceInline()
MethodParameters:
Name Flags
offset
baseProvider
length
mask
scope
H base();
descriptor: ()Ljava/lang/Object;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.foreign.HeapMemorySegmentImpl.baseProvider:Ljava/util/function/Supplier;
invokeinterface java.util.function.Supplier.get:()Ljava/lang/Object;
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/foreign/HeapMemorySegmentImpl<TH;>;
Signature: ()TH;
long min();
descriptor: ()J
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.foreign.HeapMemorySegmentImpl.offset:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/foreign/HeapMemorySegmentImpl<TH;>;
jdk.internal.foreign.HeapMemorySegmentImpl<H> dup(long, long, int, jdk.internal.foreign.MemoryScope);
descriptor: (JJILjdk/internal/foreign/MemoryScope;)Ljdk/internal/foreign/HeapMemorySegmentImpl;
flags: (0x0000)
Code:
stack=9, locals=7, args_size=5
start local 0 start local 1 start local 3 start local 5 start local 6 0: new jdk.internal.foreign.HeapMemorySegmentImpl
dup
aload 0
getfield jdk.internal.foreign.HeapMemorySegmentImpl.offset:J
lload 1
ladd
aload 0
getfield jdk.internal.foreign.HeapMemorySegmentImpl.baseProvider:Ljava/util/function/Supplier;
lload 3
iload 5
aload 6
invokespecial jdk.internal.foreign.HeapMemorySegmentImpl.<init>:(JLjava/util/function/Supplier;JILjdk/internal/foreign/MemoryScope;)V
areturn
end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/foreign/HeapMemorySegmentImpl<TH;>;
0 1 1 offset J
0 1 3 size J
0 1 5 mask I
0 1 6 scope Ljdk/internal/foreign/MemoryScope;
Signature: (JJILjdk/internal/foreign/MemoryScope;)Ljdk/internal/foreign/HeapMemorySegmentImpl<TH;>;
MethodParameters:
Name Flags
offset
size
mask
scope
java.nio.ByteBuffer makeByteBuffer();
descriptor: ()Ljava/nio/ByteBuffer;
flags: (0x0000)
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual jdk.internal.foreign.HeapMemorySegmentImpl.base:()Ljava/lang/Object;
instanceof byte[]
ifne 2
1: new java.lang.UnsupportedOperationException
dup
ldc "Not an address to an heap-allocated byte array"
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
invokestatic jdk.internal.access.SharedSecrets.getJavaNioAccess:()Ljdk/internal/access/JavaNioAccess;
astore 1
start local 1 3: aload 1
aload 0
invokevirtual jdk.internal.foreign.HeapMemorySegmentImpl.base:()Ljava/lang/Object;
checkcast byte[]
aload 0
invokevirtual jdk.internal.foreign.HeapMemorySegmentImpl.min:()J
l2i
getstatic jdk.internal.foreign.HeapMemorySegmentImpl.BYTE_ARR_BASE:I
isub
aload 0
invokevirtual jdk.internal.foreign.HeapMemorySegmentImpl.byteSize:()J
l2i
aload 0
invokeinterface jdk.internal.access.JavaNioAccess.newHeapByteBuffer:([BIILjdk/internal/access/foreign/MemorySegmentProxy;)Ljava/nio/ByteBuffer;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/foreign/HeapMemorySegmentImpl<TH;>;
3 4 1 nioAccess Ljdk/internal/access/JavaNioAccess;
public static jdk.incubator.foreign.MemorySegment makeArraySegment(byte[]);
descriptor: ([B)Ljdk/incubator/foreign/MemorySegment;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokedynamic get([B)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/internal/foreign/HeapMemorySegmentImpl.lambda$0([B)[B (6)
()[B
aload 0
arraylength
1: getstatic jdk.internal.misc.Unsafe.ARRAY_BYTE_BASE_OFFSET:I
getstatic jdk.internal.misc.Unsafe.ARRAY_BYTE_INDEX_SCALE:I
2: invokestatic jdk.internal.foreign.HeapMemorySegmentImpl.makeHeapSegment:(Ljava/util/function/Supplier;III)Ljdk/internal/foreign/HeapMemorySegmentImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 arr [B
MethodParameters:
Name Flags
arr
public static jdk.incubator.foreign.MemorySegment makeArraySegment(char[]);
descriptor: ([C)Ljdk/incubator/foreign/MemorySegment;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokedynamic get([C)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/internal/foreign/HeapMemorySegmentImpl.lambda$1([C)[C (6)
()[C
aload 0
arraylength
1: getstatic jdk.internal.misc.Unsafe.ARRAY_CHAR_BASE_OFFSET:I
getstatic jdk.internal.misc.Unsafe.ARRAY_CHAR_INDEX_SCALE:I
2: invokestatic jdk.internal.foreign.HeapMemorySegmentImpl.makeHeapSegment:(Ljava/util/function/Supplier;III)Ljdk/internal/foreign/HeapMemorySegmentImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 arr [C
MethodParameters:
Name Flags
arr
public static jdk.incubator.foreign.MemorySegment makeArraySegment(short[]);
descriptor: ([S)Ljdk/incubator/foreign/MemorySegment;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokedynamic get([S)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/internal/foreign/HeapMemorySegmentImpl.lambda$2([S)[S (6)
()[S
aload 0
arraylength
1: getstatic jdk.internal.misc.Unsafe.ARRAY_SHORT_BASE_OFFSET:I
getstatic jdk.internal.misc.Unsafe.ARRAY_SHORT_INDEX_SCALE:I
2: invokestatic jdk.internal.foreign.HeapMemorySegmentImpl.makeHeapSegment:(Ljava/util/function/Supplier;III)Ljdk/internal/foreign/HeapMemorySegmentImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 arr [S
MethodParameters:
Name Flags
arr
public static jdk.incubator.foreign.MemorySegment makeArraySegment(int[]);
descriptor: ([I)Ljdk/incubator/foreign/MemorySegment;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokedynamic get([I)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/internal/foreign/HeapMemorySegmentImpl.lambda$3([I)[I (6)
()[I
aload 0
arraylength
1: getstatic jdk.internal.misc.Unsafe.ARRAY_INT_BASE_OFFSET:I
getstatic jdk.internal.misc.Unsafe.ARRAY_INT_INDEX_SCALE:I
2: invokestatic jdk.internal.foreign.HeapMemorySegmentImpl.makeHeapSegment:(Ljava/util/function/Supplier;III)Ljdk/internal/foreign/HeapMemorySegmentImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 arr [I
MethodParameters:
Name Flags
arr
public static jdk.incubator.foreign.MemorySegment makeArraySegment(long[]);
descriptor: ([J)Ljdk/incubator/foreign/MemorySegment;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokedynamic get([J)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/internal/foreign/HeapMemorySegmentImpl.lambda$4([J)[J (6)
()[J
aload 0
arraylength
1: getstatic jdk.internal.misc.Unsafe.ARRAY_LONG_BASE_OFFSET:I
getstatic jdk.internal.misc.Unsafe.ARRAY_LONG_INDEX_SCALE:I
2: invokestatic jdk.internal.foreign.HeapMemorySegmentImpl.makeHeapSegment:(Ljava/util/function/Supplier;III)Ljdk/internal/foreign/HeapMemorySegmentImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 arr [J
MethodParameters:
Name Flags
arr
public static jdk.incubator.foreign.MemorySegment makeArraySegment(float[]);
descriptor: ([F)Ljdk/incubator/foreign/MemorySegment;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokedynamic get([F)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/internal/foreign/HeapMemorySegmentImpl.lambda$5([F)[F (6)
()[F
aload 0
arraylength
1: getstatic jdk.internal.misc.Unsafe.ARRAY_FLOAT_BASE_OFFSET:I
getstatic jdk.internal.misc.Unsafe.ARRAY_FLOAT_INDEX_SCALE:I
2: invokestatic jdk.internal.foreign.HeapMemorySegmentImpl.makeHeapSegment:(Ljava/util/function/Supplier;III)Ljdk/internal/foreign/HeapMemorySegmentImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 arr [F
MethodParameters:
Name Flags
arr
public static jdk.incubator.foreign.MemorySegment makeArraySegment(double[]);
descriptor: ([D)Ljdk/incubator/foreign/MemorySegment;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokedynamic get([D)Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
jdk/internal/foreign/HeapMemorySegmentImpl.lambda$6([D)[D (6)
()[D
aload 0
arraylength
1: getstatic jdk.internal.misc.Unsafe.ARRAY_DOUBLE_BASE_OFFSET:I
getstatic jdk.internal.misc.Unsafe.ARRAY_DOUBLE_INDEX_SCALE:I
2: invokestatic jdk.internal.foreign.HeapMemorySegmentImpl.makeHeapSegment:(Ljava/util/function/Supplier;III)Ljdk/internal/foreign/HeapMemorySegmentImpl;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 arr [D
MethodParameters:
Name Flags
arr
static <Z> jdk.internal.foreign.HeapMemorySegmentImpl<Z> makeHeapSegment(java.util.function.Supplier<Z>, int, int, int);
descriptor: (Ljava/util/function/Supplier;III)Ljdk/internal/foreign/HeapMemorySegmentImpl;
flags: (0x0008) ACC_STATIC
Code:
stack=9, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
iload 3
imul
istore 4
start local 4 1: aconst_null
aconst_null
invokestatic jdk.internal.foreign.MemoryScope.create:(Ljava/lang/Object;Ljava/lang/Runnable;)Ljdk/internal/foreign/MemoryScope;
astore 5
start local 5 2: new jdk.internal.foreign.HeapMemorySegmentImpl
dup
iload 2
i2l
aload 0
iload 4
i2l
iload 4
i2l
invokestatic jdk.internal.foreign.HeapMemorySegmentImpl.defaultAccessModes:(J)I
aload 5
invokespecial jdk.internal.foreign.HeapMemorySegmentImpl.<init>:(JLjava/util/function/Supplier;JILjdk/internal/foreign/MemoryScope;)V
areturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 obj Ljava/util/function/Supplier<TZ;>;
0 3 1 length I
0 3 2 base I
0 3 3 scale I
1 3 4 byteSize I
2 3 5 scope Ljdk/internal/foreign/MemoryScope;
Signature: <Z:Ljava/lang/Object;>(Ljava/util/function/Supplier<TZ;>;III)Ljdk/internal/foreign/HeapMemorySegmentImpl<TZ;>;
MethodParameters:
Name Flags
obj
length
base
scale
jdk.internal.foreign.AbstractMemorySegmentImpl dup(long, long, int, jdk.internal.foreign.MemoryScope);
descriptor: (JJILjdk/internal/foreign/MemoryScope;)Ljdk/internal/foreign/AbstractMemorySegmentImpl;
flags: (0x1040) ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=7, locals=7, args_size=5
0: aload 0
lload 1
lload 3
iload 5
aload 6
invokevirtual jdk.internal.foreign.HeapMemorySegmentImpl.dup:(JJILjdk/internal/foreign/MemoryScope;)Ljdk/internal/foreign/HeapMemorySegmentImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
private static byte[] lambda$0(byte[]);
descriptor: ([B)[B
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
areturn
LocalVariableTable:
Start End Slot Name Signature
private static char[] lambda$1(char[]);
descriptor: ([C)[C
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
areturn
LocalVariableTable:
Start End Slot Name Signature
private static short[] lambda$2(short[]);
descriptor: ([S)[S
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
areturn
LocalVariableTable:
Start End Slot Name Signature
private static int[] lambda$3(int[]);
descriptor: ([I)[I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
areturn
LocalVariableTable:
Start End Slot Name Signature
private static long[] lambda$4(long[]);
descriptor: ([J)[J
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
areturn
LocalVariableTable:
Start End Slot Name Signature
private static float[] lambda$5(float[]);
descriptor: ([F)[F
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
areturn
LocalVariableTable:
Start End Slot Name Signature
private static double[] lambda$6(double[]);
descriptor: ([D)[D
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: <H:Ljava/lang/Object;>Ljdk/internal/foreign/AbstractMemorySegmentImpl;
SourceFile: "HeapMemorySegmentImpl.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles