public class jdk.internal.foreign.NativeMemorySegmentImpl extends jdk.internal.foreign.AbstractMemorySegmentImpl
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.internal.foreign.NativeMemorySegmentImpl
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 long MAX_ALIGN;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean skipZeroMemory;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
final long min;
descriptor: J
flags: (0x0010) ACC_FINAL
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.NativeMemorySegmentImpl.unsafe:Ljdk/internal/misc/Unsafe;
1: getstatic jdk.internal.misc.Unsafe.ADDRESS_SIZE:I
iconst_4
if_icmpne 2
bipush 8
goto 3
StackMap locals:
StackMap stack:
2: bipush 16
StackMap locals:
StackMap stack: int
3: i2l
putstatic jdk.internal.foreign.NativeMemorySegmentImpl.MAX_ALIGN:J
4: ldc "jdk.internal.foreign.skipZeroMemory"
invokestatic sun.security.action.GetBooleanAction.privilegedGetProperty:(Ljava/lang/String;)Z
putstatic jdk.internal.foreign.NativeMemorySegmentImpl.skipZeroMemory:Z
return
LocalVariableTable:
Start End Slot Name Signature
void <init>(long, long, int, jdk.internal.foreign.MemoryScope);
descriptor: (JJILjdk/internal/foreign/MemoryScope;)V
flags: (0x0000)
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 3 start local 5 start local 6 0: aload 0
lload 3
iload 5
aload 6
invokespecial jdk.internal.foreign.AbstractMemorySegmentImpl.<init>:(JILjdk/internal/foreign/MemoryScope;)V
1: aload 0
lload 1
putfield jdk.internal.foreign.NativeMemorySegmentImpl.min:J
2: return
end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/foreign/NativeMemorySegmentImpl;
0 3 1 min J
0 3 3 length J
0 3 5 mask I
0 3 6 scope Ljdk/internal/foreign/MemoryScope;
RuntimeVisibleAnnotations:
jdk.internal.vm.annotation.ForceInline()
MethodParameters:
Name Flags
min
length
mask
scope
jdk.internal.foreign.NativeMemorySegmentImpl dup(long, long, int, jdk.internal.foreign.MemoryScope);
descriptor: (JJILjdk/internal/foreign/MemoryScope;)Ljdk/internal/foreign/NativeMemorySegmentImpl;
flags: (0x0000)
Code:
stack=8, 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.NativeMemorySegmentImpl
dup
aload 0
getfield jdk.internal.foreign.NativeMemorySegmentImpl.min:J
lload 1
ladd
lload 3
iload 5
aload 6
invokespecial jdk.internal.foreign.NativeMemorySegmentImpl.<init>:(JJILjdk/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/NativeMemorySegmentImpl;
0 1 1 offset J
0 1 3 size J
0 1 5 mask I
0 1 6 scope Ljdk/internal/foreign/MemoryScope;
MethodParameters:
Name Flags
offset
size
mask
scope
java.nio.ByteBuffer makeByteBuffer();
descriptor: ()Ljava/nio/ByteBuffer;
flags: (0x0000)
Code:
stack=6, locals=2, args_size=1
start local 0 0: invokestatic jdk.internal.access.SharedSecrets.getJavaNioAccess:()Ljdk/internal/access/JavaNioAccess;
astore 1
start local 1 1: aload 1
aload 0
invokevirtual jdk.internal.foreign.NativeMemorySegmentImpl.min:()J
aload 0
getfield jdk.internal.foreign.NativeMemorySegmentImpl.length:J
l2i
aconst_null
aload 0
invokeinterface jdk.internal.access.JavaNioAccess.newDirectByteBuffer:(JILjava/lang/Object;Ljdk/internal/access/foreign/MemorySegmentProxy;)Ljava/nio/ByteBuffer;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/foreign/NativeMemorySegmentImpl;
1 2 1 nioAccess Ljdk/internal/access/JavaNioAccess;
long min();
descriptor: ()J
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.foreign.NativeMemorySegmentImpl.min:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/foreign/NativeMemorySegmentImpl;
java.lang.Object base();
descriptor: ()Ljava/lang/Object;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/foreign/NativeMemorySegmentImpl;
public static jdk.incubator.foreign.MemorySegment makeNativeSegment(long, long);
descriptor: (JJ)Ljdk/incubator/foreign/MemorySegment;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=14, args_size=2
start local 0 start local 2 0: lload 0
lstore 4
start local 4 1: lload 2
getstatic jdk.internal.foreign.NativeMemorySegmentImpl.MAX_ALIGN:J
lcmp
ifle 3
2: lload 0
lload 2
lconst_1
lsub
ladd
lstore 4
3: StackMap locals: long
StackMap stack:
getstatic jdk.internal.foreign.NativeMemorySegmentImpl.unsafe:Ljdk/internal/misc/Unsafe;
lload 4
invokevirtual jdk.internal.misc.Unsafe.allocateMemory:(J)J
lstore 6
start local 6 4: getstatic jdk.internal.foreign.NativeMemorySegmentImpl.skipZeroMemory:Z
ifne 6
5: getstatic jdk.internal.foreign.NativeMemorySegmentImpl.unsafe:Ljdk/internal/misc/Unsafe;
lload 6
lload 4
iconst_0
invokevirtual jdk.internal.misc.Unsafe.setMemory:(JJB)V
6: StackMap locals: long
StackMap stack:
lload 6
lload 2
invokestatic jdk.internal.foreign.Utils.alignUp:(JJ)J
lstore 8
start local 8 7: aconst_null
lload 6
invokedynamic run(J)Ljava/lang/Runnable;
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:
()V
jdk/internal/foreign/NativeMemorySegmentImpl.lambda$0(J)V (6)
()V
invokestatic jdk.internal.foreign.MemoryScope.create:(Ljava/lang/Object;Ljava/lang/Runnable;)Ljdk/internal/foreign/MemoryScope;
astore 10
start local 10 8: new jdk.internal.foreign.NativeMemorySegmentImpl
dup
lload 6
lload 4
9: lload 4
invokestatic jdk.internal.foreign.NativeMemorySegmentImpl.defaultAccessModes:(J)I
aload 10
10: invokespecial jdk.internal.foreign.NativeMemorySegmentImpl.<init>:(JJILjdk/internal/foreign/MemoryScope;)V
astore 11
start local 11 11: lload 4
lload 0
lcmp
ifeq 14
12: lload 8
lload 6
lsub
lstore 12
start local 12 13: aload 11
lload 12
lload 0
invokeinterface jdk.incubator.foreign.MemorySegment.asSlice:(JJ)Ljdk/incubator/foreign/MemorySegment;
astore 11
end local 12 14: StackMap locals: long jdk.internal.foreign.MemoryScope jdk.incubator.foreign.MemorySegment
StackMap stack:
aload 11
areturn
end local 11 end local 10 end local 8 end local 6 end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 bytesSize J
0 15 2 alignmentBytes J
1 15 4 alignedSize J
4 15 6 buf J
7 15 8 alignedBuf J
8 15 10 scope Ljdk/internal/foreign/MemoryScope;
11 15 11 segment Ljdk/incubator/foreign/MemorySegment;
13 14 12 delta J
MethodParameters:
Name Flags
bytesSize
alignmentBytes
public static jdk.incubator.foreign.MemorySegment makeNativeSegmentUnchecked(jdk.incubator.foreign.MemoryAddress, long, java.lang.Thread, java.lang.Runnable, java.lang.Object);
descriptor: (Ljdk/incubator/foreign/MemoryAddress;JLjava/lang/Thread;Ljava/lang/Runnable;Ljava/lang/Object;)Ljdk/incubator/foreign/MemorySegment;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=7, args_size=5
start local 0 start local 1 start local 3 start local 4 start local 5 0: aload 3
aload 5
aload 4
invokestatic jdk.internal.foreign.MemoryScope.createUnchecked:(Ljava/lang/Thread;Ljava/lang/Object;Ljava/lang/Runnable;)Ljdk/internal/foreign/MemoryScope;
astore 6
start local 6 1: new jdk.internal.foreign.NativeMemorySegmentImpl
dup
aload 0
invokeinterface jdk.incubator.foreign.MemoryAddress.toRawLongValue:()J
lload 1
lload 1
invokestatic jdk.internal.foreign.NativeMemorySegmentImpl.defaultAccessModes:(J)I
aload 6
invokespecial jdk.internal.foreign.NativeMemorySegmentImpl.<init>:(JJILjdk/internal/foreign/MemoryScope;)V
areturn
end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 min Ljdk/incubator/foreign/MemoryAddress;
0 2 1 bytesSize J
0 2 3 owner Ljava/lang/Thread;
0 2 4 cleanup Ljava/lang/Runnable;
0 2 5 attachment Ljava/lang/Object;
1 2 6 scope Ljdk/internal/foreign/MemoryScope;
MethodParameters:
Name Flags
min
bytesSize
owner
cleanup
attachment
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.NativeMemorySegmentImpl.dup:(JJILjdk/internal/foreign/MemoryScope;)Ljdk/internal/foreign/NativeMemorySegmentImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
private static void lambda$0(long);
descriptor: (J)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=2, args_size=1
0: getstatic jdk.internal.foreign.NativeMemorySegmentImpl.unsafe:Ljdk/internal/misc/Unsafe;
lload 0
invokevirtual jdk.internal.misc.Unsafe.freeMemory:(J)V
return
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "NativeMemorySegmentImpl.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles