public class jdk.internal.foreign.MappedMemorySegmentImpl extends jdk.internal.foreign.NativeMemorySegmentImpl implements jdk.incubator.foreign.MappedMemorySegment
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.internal.foreign.MappedMemorySegmentImpl
super_class: jdk.internal.foreign.NativeMemorySegmentImpl
{
private final jdk.internal.access.foreign.UnmapperProxy unmapper;
descriptor: Ljdk/internal/access/foreign/UnmapperProxy;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(long, jdk.internal.access.foreign.UnmapperProxy, long, int, jdk.internal.foreign.MemoryScope);
descriptor: (JLjdk/internal/access/foreign/UnmapperProxy;JILjdk/internal/foreign/MemoryScope;)V
flags: (0x0000)
Code:
stack=7, 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 1
lload 4
iload 6
aload 7
invokespecial jdk.internal.foreign.NativeMemorySegmentImpl.<init>:(JJILjdk/internal/foreign/MemoryScope;)V
1: aload 0
aload 3
putfield jdk.internal.foreign.MappedMemorySegmentImpl.unmapper:Ljdk/internal/access/foreign/UnmapperProxy;
2: 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 3 0 this Ljdk/internal/foreign/MappedMemorySegmentImpl;
0 3 1 min J
0 3 3 unmapper Ljdk/internal/access/foreign/UnmapperProxy;
0 3 4 length J
0 3 6 mask I
0 3 7 scope Ljdk/internal/foreign/MemoryScope;
MethodParameters:
Name Flags
min
unmapper
length
mask
scope
java.nio.ByteBuffer makeByteBuffer();
descriptor: ()Ljava/nio/ByteBuffer;
flags: (0x0000)
Code:
stack=7, 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
getfield jdk.internal.foreign.MappedMemorySegmentImpl.unmapper:Ljdk/internal/access/foreign/UnmapperProxy;
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.min:J
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.length:J
l2i
aconst_null
aload 0
invokeinterface jdk.internal.access.JavaNioAccess.newMappedByteBuffer:(Ljdk/internal/access/foreign/UnmapperProxy;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/MappedMemorySegmentImpl;
1 2 1 nioAccess Ljdk/internal/access/JavaNioAccess;
jdk.internal.foreign.MappedMemorySegmentImpl dup(long, long, int, jdk.internal.foreign.MemoryScope);
descriptor: (JJILjdk/internal/foreign/MemoryScope;)Ljdk/internal/foreign/MappedMemorySegmentImpl;
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.MappedMemorySegmentImpl
dup
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.min:J
lload 1
ladd
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.unmapper:Ljdk/internal/access/foreign/UnmapperProxy;
lload 3
iload 5
aload 6
invokespecial jdk.internal.foreign.MappedMemorySegmentImpl.<init>:(JLjdk/internal/access/foreign/UnmapperProxy;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/MappedMemorySegmentImpl;
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
public jdk.internal.foreign.MappedMemorySegmentImpl asSlice(long, long);
descriptor: (JJ)Ljdk/internal/foreign/MappedMemorySegmentImpl;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
lload 3
invokespecial jdk.internal.foreign.NativeMemorySegmentImpl.asSlice:(JJ)Ljdk/internal/foreign/AbstractMemorySegmentImpl;
checkcast jdk.internal.foreign.MappedMemorySegmentImpl
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/foreign/MappedMemorySegmentImpl;
0 1 1 offset J
0 1 3 newSize J
MethodParameters:
Name Flags
offset
newSize
public jdk.internal.foreign.MappedMemorySegmentImpl withAccessModes(int);
descriptor: (I)Ljdk/internal/foreign/MappedMemorySegmentImpl;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokespecial jdk.internal.foreign.NativeMemorySegmentImpl.withAccessModes:(I)Ljdk/internal/foreign/AbstractMemorySegmentImpl;
checkcast jdk.internal.foreign.MappedMemorySegmentImpl
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/foreign/MappedMemorySegmentImpl;
0 1 1 accessModes I
MethodParameters:
Name Flags
accessModes
public void load();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: getstatic jdk.internal.foreign.MappedMemorySegmentImpl.nioAccess:Ljdk/internal/access/JavaNioAccess;
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.min:J
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.unmapper:Ljdk/internal/access/foreign/UnmapperProxy;
invokeinterface jdk.internal.access.foreign.UnmapperProxy.isSync:()Z
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.length:J
invokeinterface jdk.internal.access.JavaNioAccess.load:(JZJ)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/foreign/MappedMemorySegmentImpl;
public void unload();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: getstatic jdk.internal.foreign.MappedMemorySegmentImpl.nioAccess:Ljdk/internal/access/JavaNioAccess;
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.min:J
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.unmapper:Ljdk/internal/access/foreign/UnmapperProxy;
invokeinterface jdk.internal.access.foreign.UnmapperProxy.isSync:()Z
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.length:J
invokeinterface jdk.internal.access.JavaNioAccess.unload:(JZJ)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/foreign/MappedMemorySegmentImpl;
public boolean isLoaded();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: getstatic jdk.internal.foreign.MappedMemorySegmentImpl.nioAccess:Ljdk/internal/access/JavaNioAccess;
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.min:J
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.unmapper:Ljdk/internal/access/foreign/UnmapperProxy;
invokeinterface jdk.internal.access.foreign.UnmapperProxy.isSync:()Z
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.length:J
invokeinterface jdk.internal.access.JavaNioAccess.isLoaded:(JZJ)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/foreign/MappedMemorySegmentImpl;
public void force();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=1, args_size=1
start local 0 0: getstatic jdk.internal.foreign.MappedMemorySegmentImpl.nioAccess:Ljdk/internal/access/JavaNioAccess;
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.unmapper:Ljdk/internal/access/foreign/UnmapperProxy;
invokeinterface jdk.internal.access.foreign.UnmapperProxy.fileDescriptor:()Ljava/io/FileDescriptor;
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.min:J
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.unmapper:Ljdk/internal/access/foreign/UnmapperProxy;
invokeinterface jdk.internal.access.foreign.UnmapperProxy.isSync:()Z
lconst_0
aload 0
getfield jdk.internal.foreign.MappedMemorySegmentImpl.length:J
invokeinterface jdk.internal.access.JavaNioAccess.force:(Ljava/io/FileDescriptor;JZJJ)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/foreign/MappedMemorySegmentImpl;
public static jdk.incubator.foreign.MappedMemorySegment makeMappedSegment(java.nio.file.Path, long, long, java.nio.channels.FileChannel$MapMode);
descriptor: (Ljava/nio/file/Path;JJLjava/nio/channels/FileChannel$MapMode;)Ljdk/incubator/foreign/MappedMemorySegment;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=13, args_size=4
start local 0 start local 1 start local 3 start local 5 0: lload 3
lconst_0
lcmp
ifge 1
new java.lang.IllegalArgumentException
dup
ldc "Requested bytes size must be >= 0."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
1: StackMap locals:
StackMap stack:
lload 1
lconst_0
lcmp
ifge 2
new java.lang.IllegalArgumentException
dup
ldc "Requested bytes offset must be >= 0."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aconst_null
astore 6
aconst_null
astore 7
3: aload 0
aload 5
invokestatic jdk.internal.foreign.MappedMemorySegmentImpl.openOptions:(Ljava/nio/channels/FileChannel$MapMode;)[Ljava/nio/file/OpenOption;
invokestatic java.nio.channels.FileChannel.open:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
checkcast sun.nio.ch.FileChannelImpl
astore 8
start local 8 4: aload 8
aload 5
lload 1
lload 3
invokevirtual sun.nio.ch.FileChannelImpl.mapInternal:(Ljava/nio/channels/FileChannel$MapMode;JJ)Lsun/nio/ch/FileChannelImpl$Unmapper;
astore 9
start local 9 5: aconst_null
aload 9
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic run(Ljdk/internal/access/foreign/UnmapperProxy;)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/access/foreign/UnmapperProxy.unmap()V (9 itf)
()V
invokestatic jdk.internal.foreign.MemoryScope.create:(Ljava/lang/Object;Ljava/lang/Runnable;)Ljdk/internal/foreign/MemoryScope;
astore 10
start local 10 6: lload 3
invokestatic jdk.internal.foreign.MappedMemorySegmentImpl.defaultAccessModes:(J)I
istore 12
start local 12 7: aload 5
getstatic java.nio.channels.FileChannel$MapMode.READ_ONLY:Ljava/nio/channels/FileChannel$MapMode;
if_acmpne 9
8: iload 12
bipush -3
iand
istore 12
9: StackMap locals: java.nio.file.Path long long java.nio.channels.FileChannel$MapMode java.lang.Throwable java.lang.Throwable sun.nio.ch.FileChannelImpl jdk.internal.access.foreign.UnmapperProxy jdk.internal.foreign.MemoryScope top int
StackMap stack:
new jdk.internal.foreign.MappedMemorySegmentImpl
dup
aload 9
invokeinterface jdk.internal.access.foreign.UnmapperProxy.address:()J
aload 9
lload 3
10: iload 12
aload 10
11: invokespecial jdk.internal.foreign.MappedMemorySegmentImpl.<init>:(JLjdk/internal/access/foreign/UnmapperProxy;JILjdk/internal/foreign/MemoryScope;)V
12: aload 8
ifnull 13
aload 8
invokevirtual sun.nio.ch.FileChannelImpl.close:()V
13: StackMap locals:
StackMap stack: jdk.internal.foreign.MappedMemorySegmentImpl
areturn
end local 12 end local 10 end local 9 StackMap locals: java.nio.file.Path long long java.nio.channels.FileChannel$MapMode java.lang.Throwable java.lang.Throwable sun.nio.ch.FileChannelImpl
StackMap stack: java.lang.Throwable
14: astore 6
15: aload 8
ifnull 16
aload 8
invokevirtual sun.nio.ch.FileChannelImpl.close:()V
end local 8 StackMap locals:
StackMap stack:
16: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
17: astore 7
aload 6
ifnonnull 18
aload 7
astore 6
goto 19
StackMap locals:
StackMap stack:
18: aload 6
aload 7
if_acmpeq 19
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
19: aload 6
athrow
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 path Ljava/nio/file/Path;
0 20 1 bytesOffset J
0 20 3 bytesSize J
0 20 5 mapMode Ljava/nio/channels/FileChannel$MapMode;
4 16 8 channelImpl Lsun/nio/ch/FileChannelImpl;
5 14 9 unmapperProxy Ljdk/internal/access/foreign/UnmapperProxy;
6 14 10 scope Ljdk/internal/foreign/MemoryScope;
7 14 12 modes I
Exception table:
from to target type
4 12 14 any
3 13 17 any
14 17 17 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
path
bytesOffset
bytesSize
mapMode
private static java.nio.file.OpenOption[] openOptions(java.nio.channels.FileChannel$MapMode);
descriptor: (Ljava/nio/channels/FileChannel$MapMode;)[Ljava/nio/file/OpenOption;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getstatic java.nio.channels.FileChannel$MapMode.READ_ONLY:Ljava/nio/channels/FileChannel$MapMode;
if_acmpne 2
1: iconst_1
anewarray java.nio.file.OpenOption
dup
iconst_0
getstatic java.nio.file.StandardOpenOption.READ:Ljava/nio/file/StandardOpenOption;
aastore
areturn
2: StackMap locals:
StackMap stack:
aload 0
getstatic java.nio.channels.FileChannel$MapMode.READ_WRITE:Ljava/nio/channels/FileChannel$MapMode;
if_acmpeq 3
aload 0
getstatic java.nio.channels.FileChannel$MapMode.PRIVATE:Ljava/nio/channels/FileChannel$MapMode;
if_acmpne 4
3: StackMap locals:
StackMap stack:
iconst_2
anewarray java.nio.file.OpenOption
dup
iconst_0
getstatic java.nio.file.StandardOpenOption.READ:Ljava/nio/file/StandardOpenOption;
aastore
dup
iconst_1
getstatic java.nio.file.StandardOpenOption.WRITE:Ljava/nio/file/StandardOpenOption;
aastore
areturn
4: StackMap locals:
StackMap stack:
new java.lang.UnsupportedOperationException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported map mode: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 mapMode Ljava/nio/channels/FileChannel$MapMode;
MethodParameters:
Name Flags
mapMode
public jdk.incubator.foreign.MappedMemorySegment withAccessModes(int);
descriptor: (I)Ljdk/incubator/foreign/MappedMemorySegment;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
iload 1
invokevirtual jdk.internal.foreign.MappedMemorySegmentImpl.withAccessModes:(I)Ljdk/internal/foreign/MappedMemorySegmentImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public jdk.internal.foreign.AbstractMemorySegmentImpl withAccessModes(int);
descriptor: (I)Ljdk/internal/foreign/AbstractMemorySegmentImpl;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
iload 1
invokevirtual jdk.internal.foreign.MappedMemorySegmentImpl.withAccessModes:(I)Ljdk/internal/foreign/MappedMemorySegmentImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public jdk.incubator.foreign.MemorySegment withAccessModes(int);
descriptor: (I)Ljdk/incubator/foreign/MemorySegment;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
0: aload 0
iload 1
invokevirtual jdk.internal.foreign.MappedMemorySegmentImpl.withAccessModes:(I)Ljdk/internal/foreign/MappedMemorySegmentImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
jdk.internal.foreign.NativeMemorySegmentImpl dup(long, long, int, jdk.internal.foreign.MemoryScope);
descriptor: (JJILjdk/internal/foreign/MemoryScope;)Ljdk/internal/foreign/NativeMemorySegmentImpl;
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.MappedMemorySegmentImpl.dup:(JJILjdk/internal/foreign/MemoryScope;)Ljdk/internal/foreign/MappedMemorySegmentImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
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.MappedMemorySegmentImpl.dup:(JJILjdk/internal/foreign/MemoryScope;)Ljdk/internal/foreign/MappedMemorySegmentImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public jdk.incubator.foreign.MappedMemorySegment asSlice(long, long);
descriptor: (JJ)Ljdk/incubator/foreign/MappedMemorySegment;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=5, locals=5, args_size=3
0: aload 0
lload 1
lload 3
invokevirtual jdk.internal.foreign.MappedMemorySegmentImpl.asSlice:(JJ)Ljdk/internal/foreign/MappedMemorySegmentImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public jdk.internal.foreign.AbstractMemorySegmentImpl asSlice(long, long);
descriptor: (JJ)Ljdk/internal/foreign/AbstractMemorySegmentImpl;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=5, locals=5, args_size=3
0: aload 0
lload 1
lload 3
invokevirtual jdk.internal.foreign.MappedMemorySegmentImpl.asSlice:(JJ)Ljdk/internal/foreign/MappedMemorySegmentImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
public jdk.incubator.foreign.MemorySegment asSlice(long, long);
descriptor: (JJ)Ljdk/incubator/foreign/MemorySegment;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=5, locals=5, args_size=3
0: aload 0
lload 1
lload 3
invokevirtual jdk.internal.foreign.MappedMemorySegmentImpl.asSlice:(JJ)Ljdk/internal/foreign/MappedMemorySegmentImpl;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "MappedMemorySegmentImpl.java"
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public MapMode = java.nio.channels.FileChannel$MapMode of java.nio.channels.FileChannel
private abstract Unmapper = sun.nio.ch.FileChannelImpl$Unmapper of sun.nio.ch.FileChannelImpl