public abstract class jdk.internal.foreign.HeapMemorySegmentImpl<H> extends jdk.internal.foreign.AbstractMemorySegmentImpl
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
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 H base;
descriptor: Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
Signature: 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, H, long, int, jdk.internal.foreign.MemoryScope);
descriptor: (JLjava/lang/Object;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.base:Ljava/lang/Object;
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 base TH;
0 4 4 length J
0 4 6 mask I
0 4 7 scope Ljdk/internal/foreign/MemoryScope;
Signature: (JTH;JILjdk/internal/foreign/MemoryScope;)V
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.ForceInline()
MethodParameters:
Name Flags
offset
base
length
mask
scope
abstract H base();
descriptor: ()Ljava/lang/Object;
flags: (0x0400) ACC_ABSTRACT
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;>;
abstract jdk.internal.foreign.HeapMemorySegmentImpl<H> dup(long, long, int, jdk.internal.foreign.MemoryScope);
descriptor: (JJILjdk/internal/foreign/MemoryScope;)Ljdk/internal/foreign/HeapMemorySegmentImpl;
flags: (0x0400) ACC_ABSTRACT
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;
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
}
Signature: <H:Ljava/lang/Object;>Ljdk/internal/foreign/AbstractMemorySegmentImpl;
SourceFile: "HeapMemorySegmentImpl.java"
NestMembers:
jdk.internal.foreign.HeapMemorySegmentImpl$OfByte jdk.internal.foreign.HeapMemorySegmentImpl$OfChar jdk.internal.foreign.HeapMemorySegmentImpl$OfDouble jdk.internal.foreign.HeapMemorySegmentImpl$OfFloat jdk.internal.foreign.HeapMemorySegmentImpl$OfInt jdk.internal.foreign.HeapMemorySegmentImpl$OfLong jdk.internal.foreign.HeapMemorySegmentImpl$OfShort
InnerClasses:
public OfByte = jdk.internal.foreign.HeapMemorySegmentImpl$OfByte of jdk.internal.foreign.HeapMemorySegmentImpl
public OfChar = jdk.internal.foreign.HeapMemorySegmentImpl$OfChar of jdk.internal.foreign.HeapMemorySegmentImpl
public OfDouble = jdk.internal.foreign.HeapMemorySegmentImpl$OfDouble of jdk.internal.foreign.HeapMemorySegmentImpl
public OfFloat = jdk.internal.foreign.HeapMemorySegmentImpl$OfFloat of jdk.internal.foreign.HeapMemorySegmentImpl
public OfInt = jdk.internal.foreign.HeapMemorySegmentImpl$OfInt of jdk.internal.foreign.HeapMemorySegmentImpl
public OfLong = jdk.internal.foreign.HeapMemorySegmentImpl$OfLong of jdk.internal.foreign.HeapMemorySegmentImpl
public OfShort = jdk.internal.foreign.HeapMemorySegmentImpl$OfShort of jdk.internal.foreign.HeapMemorySegmentImpl