public class jdk.internal.jimage.BasicImageReader implements java.lang.AutoCloseable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.internal.jimage.BasicImageReader
super_class: java.lang.Object
{
private static final boolean IS_64_BIT;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean USE_JVM_MAP;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean MAP_ALL;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final java.nio.file.Path imagePath;
descriptor: Ljava/nio/file/Path;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.nio.ByteOrder byteOrder;
descriptor: Ljava/nio/ByteOrder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.nio.ByteBuffer memoryMap;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.nio.channels.FileChannel channel;
descriptor: Ljava/nio/channels/FileChannel;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.internal.jimage.ImageHeader ;
descriptor: Ljdk/internal/jimage/ImageHeader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long indexSize;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.nio.IntBuffer redirect;
descriptor: Ljava/nio/IntBuffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.nio.IntBuffer offsets;
descriptor: Ljava/nio/IntBuffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.nio.ByteBuffer locations;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.nio.ByteBuffer strings;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.internal.jimage.ImageStringsReader stringsReader;
descriptor: Ljdk/internal/jimage/ImageStringsReader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.internal.jimage.decompressor.Decompressor decompressor;
descriptor: Ljdk/internal/jimage/decompressor/Decompressor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc "sun.arch.data.model"
ldc "64"
ldc "32"
invokestatic jdk.internal.jimage.BasicImageReader.isSystemProperty:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
1: putstatic jdk.internal.jimage.BasicImageReader.IS_64_BIT:Z
2: ldc "jdk.image.use.jvm.map"
ldc "true"
ldc "true"
invokestatic jdk.internal.jimage.BasicImageReader.isSystemProperty:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
3: putstatic jdk.internal.jimage.BasicImageReader.USE_JVM_MAP:Z
4: ldc "jdk.image.map.all"
ldc "true"
getstatic jdk.internal.jimage.BasicImageReader.IS_64_BIT:Z
ifeq 5
ldc "true"
goto 6
StackMap locals:
StackMap stack: java.lang.String java.lang.String
5: ldc "false"
StackMap locals:
StackMap stack: java.lang.String java.lang.String java.lang.String
6: invokestatic jdk.internal.jimage.BasicImageReader.isSystemProperty:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
7: putstatic jdk.internal.jimage.BasicImageReader.MAP_ALL:Z
8: return
LocalVariableTable:
Start End Slot Name Signature
private static boolean isSystemProperty(java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new jdk.internal.jimage.BasicImageReader$1
dup
aload 1
aload 0
aload 2
invokespecial jdk.internal.jimage.BasicImageReader$1.<init>:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
1: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 key Ljava/lang/String;
0 2 1 value Ljava/lang/String;
0 2 2 def Ljava/lang/String;
MethodParameters:
Name Flags
key
value
def
protected void <init>(java.nio.file.Path, java.nio.ByteOrder);
descriptor: (Ljava/nio/file/Path;Ljava/nio/ByteOrder;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.nio.file.Path
putfield jdk.internal.jimage.BasicImageReader.imagePath:Ljava/nio/file/Path;
2: aload 0
aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.nio.ByteOrder
putfield jdk.internal.jimage.BasicImageReader.byteOrder:Ljava/nio/ByteOrder;
3: aload 0
aload 0
getfield jdk.internal.jimage.BasicImageReader.imagePath:Ljava/nio/file/Path;
invokeinterface java.nio.file.Path.toString:()Ljava/lang/String;
putfield jdk.internal.jimage.BasicImageReader.name:Ljava/lang/String;
4: getstatic jdk.internal.jimage.BasicImageReader.USE_JVM_MAP:Z
ifeq 7
ldc Ljdk/internal/jimage/BasicImageReader;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
ifnonnull 7
5: aload 0
getfield jdk.internal.jimage.BasicImageReader.name:Ljava/lang/String;
invokestatic jdk.internal.jimage.NativeImageBuffer.getNativeMap:(Ljava/lang/String;)Ljava/nio/ByteBuffer;
astore 3
start local 3 6: goto 8
end local 3 7: StackMap locals: jdk.internal.jimage.BasicImageReader java.nio.file.Path java.nio.ByteOrder
StackMap stack:
aconst_null
astore 3
start local 3 8: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 3
ifnull 11
getstatic jdk.internal.jimage.BasicImageReader.MAP_ALL:Z
ifeq 11
9: aload 0
aconst_null
putfield jdk.internal.jimage.BasicImageReader.channel:Ljava/nio/channels/FileChannel;
10: goto 13
11: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.internal.jimage.BasicImageReader.imagePath:Ljava/nio/file/Path;
iconst_1
anewarray java.nio.file.OpenOption
dup
iconst_0
getstatic java.nio.file.StandardOpenOption.READ:Ljava/nio/file/StandardOpenOption;
aastore
invokestatic java.nio.channels.FileChannel.open:(Ljava/nio/file/Path;[Ljava/nio/file/OpenOption;)Ljava/nio/channels/FileChannel;
putfield jdk.internal.jimage.BasicImageReader.channel:Ljava/nio/channels/FileChannel;
12: new jdk.internal.jimage.BasicImageReader$2
dup
aload 0
invokespecial jdk.internal.jimage.BasicImageReader$2.<init>:(Ljdk/internal/jimage/BasicImageReader;)V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
13: StackMap locals:
StackMap stack:
getstatic jdk.internal.jimage.BasicImageReader.MAP_ALL:Z
ifeq 15
aload 3
ifnonnull 15
14: aload 0
getfield jdk.internal.jimage.BasicImageReader.channel:Ljava/nio/channels/FileChannel;
getstatic java.nio.channels.FileChannel$MapMode.READ_ONLY:Ljava/nio/channels/FileChannel$MapMode;
lconst_0
aload 0
getfield jdk.internal.jimage.BasicImageReader.channel:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.size:()J
invokevirtual java.nio.channels.FileChannel.map:(Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer;
astore 3
15: StackMap locals:
StackMap stack:
aload 3
astore 4
start local 4 16: invokestatic jdk.internal.jimage.ImageHeader.getHeaderSize:()I
istore 5
start local 5 17: aload 4
ifnonnull 23
18: iload 5
invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
astore 4
19: aload 0
getfield jdk.internal.jimage.BasicImageReader.channel:Ljava/nio/channels/FileChannel;
aload 4
lconst_0
invokevirtual java.nio.channels.FileChannel.read:(Ljava/nio/ByteBuffer;J)I
iload 5
if_icmpne 22
20: aload 4
invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/ByteBuffer;
pop
21: goto 25
22: StackMap locals: java.nio.ByteBuffer int
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "\""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.jimage.BasicImageReader.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\" is not an image file"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
23: StackMap locals:
StackMap stack:
aload 4
invokevirtual java.nio.ByteBuffer.capacity:()I
iload 5
if_icmpge 25
24: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "\""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.jimage.BasicImageReader.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\" is not an image file"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
25: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 0
aload 4
iconst_0
iload 5
invokevirtual jdk.internal.jimage.BasicImageReader.intBuffer:(Ljava/nio/ByteBuffer;II)Ljava/nio/IntBuffer;
invokevirtual jdk.internal.jimage.BasicImageReader.readHeader:(Ljava/nio/IntBuffer;)Ljdk/internal/jimage/ImageHeader;
putfield jdk.internal.jimage.BasicImageReader.header:Ljdk/internal/jimage/ImageHeader;
26: aload 0
aload 0
getfield jdk.internal.jimage.BasicImageReader.header:Ljdk/internal/jimage/ImageHeader;
invokevirtual jdk.internal.jimage.ImageHeader.getIndexSize:()I
i2l
putfield jdk.internal.jimage.BasicImageReader.indexSize:J
27: aload 3
ifnonnull 29
28: aload 0
getfield jdk.internal.jimage.BasicImageReader.channel:Ljava/nio/channels/FileChannel;
getstatic java.nio.channels.FileChannel$MapMode.READ_ONLY:Ljava/nio/channels/FileChannel$MapMode;
lconst_0
aload 0
getfield jdk.internal.jimage.BasicImageReader.indexSize:J
invokevirtual java.nio.channels.FileChannel.map:(Ljava/nio/channels/FileChannel$MapMode;JJ)Ljava/nio/MappedByteBuffer;
astore 3
29: StackMap locals:
StackMap stack:
aload 0
aload 3
invokevirtual java.nio.ByteBuffer.asReadOnlyBuffer:()Ljava/nio/ByteBuffer;
putfield jdk.internal.jimage.BasicImageReader.memoryMap:Ljava/nio/ByteBuffer;
30: aload 0
getfield jdk.internal.jimage.BasicImageReader.memoryMap:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
i2l
aload 0
getfield jdk.internal.jimage.BasicImageReader.indexSize:J
lcmp
ifge 32
31: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "The image file \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.jimage.BasicImageReader.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\" is corrupted"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
32: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 0
getfield jdk.internal.jimage.BasicImageReader.memoryMap:Ljava/nio/ByteBuffer;
aload 0
getfield jdk.internal.jimage.BasicImageReader.header:Ljdk/internal/jimage/ImageHeader;
invokevirtual jdk.internal.jimage.ImageHeader.getRedirectOffset:()I
aload 0
getfield jdk.internal.jimage.BasicImageReader.header:Ljdk/internal/jimage/ImageHeader;
invokevirtual jdk.internal.jimage.ImageHeader.getRedirectSize:()I
invokevirtual jdk.internal.jimage.BasicImageReader.intBuffer:(Ljava/nio/ByteBuffer;II)Ljava/nio/IntBuffer;
putfield jdk.internal.jimage.BasicImageReader.redirect:Ljava/nio/IntBuffer;
33: aload 0
aload 0
aload 0
getfield jdk.internal.jimage.BasicImageReader.memoryMap:Ljava/nio/ByteBuffer;
aload 0
getfield jdk.internal.jimage.BasicImageReader.header:Ljdk/internal/jimage/ImageHeader;
invokevirtual jdk.internal.jimage.ImageHeader.getOffsetsOffset:()I
aload 0
getfield jdk.internal.jimage.BasicImageReader.header:Ljdk/internal/jimage/ImageHeader;
invokevirtual jdk.internal.jimage.ImageHeader.getOffsetsSize:()I
invokevirtual jdk.internal.jimage.BasicImageReader.intBuffer:(Ljava/nio/ByteBuffer;II)Ljava/nio/IntBuffer;
putfield jdk.internal.jimage.BasicImageReader.offsets:Ljava/nio/IntBuffer;
34: aload 0
aload 0
getfield jdk.internal.jimage.BasicImageReader.memoryMap:Ljava/nio/ByteBuffer;
aload 0
getfield jdk.internal.jimage.BasicImageReader.header:Ljdk/internal/jimage/ImageHeader;
invokevirtual jdk.internal.jimage.ImageHeader.getLocationsOffset:()I
aload 0
getfield jdk.internal.jimage.BasicImageReader.header:Ljdk/internal/jimage/ImageHeader;
invokevirtual jdk.internal.jimage.ImageHeader.getLocationsSize:()I
invokestatic jdk.internal.jimage.BasicImageReader.slice:(Ljava/nio/ByteBuffer;II)Ljava/nio/ByteBuffer;
putfield jdk.internal.jimage.BasicImageReader.locations:Ljava/nio/ByteBuffer;
35: aload 0
aload 0
getfield jdk.internal.jimage.BasicImageReader.memoryMap:Ljava/nio/ByteBuffer;
aload 0
getfield jdk.internal.jimage.BasicImageReader.header:Ljdk/internal/jimage/ImageHeader;
invokevirtual jdk.internal.jimage.ImageHeader.getStringsOffset:()I
aload 0
getfield jdk.internal.jimage.BasicImageReader.header:Ljdk/internal/jimage/ImageHeader;
invokevirtual jdk.internal.jimage.ImageHeader.getStringsSize:()I
invokestatic jdk.internal.jimage.BasicImageReader.slice:(Ljava/nio/ByteBuffer;II)Ljava/nio/ByteBuffer;
putfield jdk.internal.jimage.BasicImageReader.strings:Ljava/nio/ByteBuffer;
36: aload 0
new jdk.internal.jimage.ImageStringsReader
dup
aload 0
invokespecial jdk.internal.jimage.ImageStringsReader.<init>:(Ljdk/internal/jimage/BasicImageReader;)V
putfield jdk.internal.jimage.BasicImageReader.stringsReader:Ljdk/internal/jimage/ImageStringsReader;
37: aload 0
new jdk.internal.jimage.decompressor.Decompressor
dup
invokespecial jdk.internal.jimage.decompressor.Decompressor.<init>:()V
putfield jdk.internal.jimage.BasicImageReader.decompressor:Ljdk/internal/jimage/decompressor/Decompressor;
38: return
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 39 0 this Ljdk/internal/jimage/BasicImageReader;
0 39 1 path Ljava/nio/file/Path;
0 39 2 byteOrder Ljava/nio/ByteOrder;
6 7 3 map Ljava/nio/ByteBuffer;
8 39 3 map Ljava/nio/ByteBuffer;
16 39 4 headerBuffer Ljava/nio/ByteBuffer;
17 39 5 headerSize I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
path
byteOrder
protected void <init>(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
invokespecial jdk.internal.jimage.BasicImageReader.<init>:(Ljava/nio/file/Path;Ljava/nio/ByteOrder;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Ljdk/internal/jimage/BasicImageReader;
0 2 1 imagePath Ljava/nio/file/Path;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
imagePath
public static jdk.internal.jimage.BasicImageReader open(java.nio.file.Path);
descriptor: (Ljava/nio/file/Path;)Ljdk/internal/jimage/BasicImageReader;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new jdk.internal.jimage.BasicImageReader
dup
aload 0
invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
invokespecial jdk.internal.jimage.BasicImageReader.<init>:(Ljava/nio/file/Path;Ljava/nio/ByteOrder;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 imagePath Ljava/nio/file/Path;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
imagePath
public jdk.internal.jimage.ImageHeader ();
descriptor: ()Ljdk/internal/jimage/ImageHeader;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.jimage.BasicImageReader.header:Ljdk/internal/jimage/ImageHeader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/jimage/BasicImageReader;
private jdk.internal.jimage.ImageHeader (java.nio.IntBuffer);
descriptor: (Ljava/nio/IntBuffer;)Ljdk/internal/jimage/ImageHeader;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic jdk.internal.jimage.ImageHeader.readFrom:(Ljava/nio/IntBuffer;)Ljdk/internal/jimage/ImageHeader;
astore 2
start local 2 1: aload 2
invokevirtual jdk.internal.jimage.ImageHeader.getMagic:()I
ldc -889267494
if_icmpeq 3
2: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "\""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.jimage.BasicImageReader.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\" is not an image file"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: jdk.internal.jimage.ImageHeader
StackMap stack:
aload 2
invokevirtual jdk.internal.jimage.ImageHeader.getMajorVersion:()I
iconst_1
if_icmpne 5
4: aload 2
invokevirtual jdk.internal.jimage.ImageHeader.getMinorVersion:()I
ifeq 9
5: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "The image file \""
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield jdk.internal.jimage.BasicImageReader.name:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "\" is not "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
6: ldc "the correct version. Major: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual jdk.internal.jimage.ImageHeader.getMajorVersion:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
7: ldc ". Minor: "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual jdk.internal.jimage.ImageHeader.getMinorVersion:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
8: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Ljdk/internal/jimage/BasicImageReader;
0 10 1 buffer Ljava/nio/IntBuffer;
1 10 2 result Ljdk/internal/jimage/ImageHeader;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buffer
private static java.nio.ByteBuffer slice(java.nio.ByteBuffer, int, int);
descriptor: (Ljava/nio/ByteBuffer;II)Ljava/nio/ByteBuffer;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
dup
astore 3
monitorenter
1: aload 0
iload 1
iload 2
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/ByteBuffer;
pop
2: aload 0
iload 1
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/ByteBuffer;
pop
3: aload 0
invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
aload 3
monitorexit
4: areturn
5: StackMap locals: java.nio.ByteBuffer int int java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
aload 3
monitorexit
6: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 buffer Ljava/nio/ByteBuffer;
0 7 1 position I
0 7 2 capacity I
Exception table:
from to target type
1 4 5 any
5 6 5 any
MethodParameters:
Name Flags
buffer
position
capacity
private java.nio.IntBuffer intBuffer(java.nio.ByteBuffer, int, int);
descriptor: (Ljava/nio/ByteBuffer;II)Ljava/nio/IntBuffer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
iload 2
iload 3
invokestatic jdk.internal.jimage.BasicImageReader.slice:(Ljava/nio/ByteBuffer;II)Ljava/nio/ByteBuffer;
aload 0
getfield jdk.internal.jimage.BasicImageReader.byteOrder:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.asIntBuffer:()Ljava/nio/IntBuffer;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/jimage/BasicImageReader;
0 1 1 buffer Ljava/nio/ByteBuffer;
0 1 2 offset I
0 1 3 size I
MethodParameters:
Name Flags
buffer
offset
size
public static void releaseByteBuffer(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
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: getstatic jdk.internal.jimage.BasicImageReader.MAP_ALL:Z
ifne 3
2: aload 0
invokestatic jdk.internal.jimage.ImageBufferCache.releaseBuffer:(Ljava/nio/ByteBuffer;)V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
buffer
public java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.jimage.BasicImageReader.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/jimage/BasicImageReader;
public java.nio.ByteOrder getByteOrder();
descriptor: ()Ljava/nio/ByteOrder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.jimage.BasicImageReader.byteOrder:Ljava/nio/ByteOrder;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/jimage/BasicImageReader;
public java.nio.file.Path getImagePath();
descriptor: ()Ljava/nio/file/Path;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.jimage.BasicImageReader.imagePath:Ljava/nio/file/Path;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/jimage/BasicImageReader;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.jimage.BasicImageReader.channel:Ljava/nio/channels/FileChannel;
ifnull 2
1: aload 0
getfield jdk.internal.jimage.BasicImageReader.channel:Ljava/nio/channels/FileChannel;
invokevirtual java.nio.channels.FileChannel.close:()V
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/jimage/BasicImageReader;
Exceptions:
throws java.io.IOException
public jdk.internal.jimage.ImageStringsReader getStrings();
descriptor: ()Ljdk/internal/jimage/ImageStringsReader;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield jdk.internal.jimage.BasicImageReader.stringsReader:Ljdk/internal/jimage/ImageStringsReader;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/jimage/BasicImageReader;
public synchronized jdk.internal.jimage.ImageLocation findLocation(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljdk/internal/jimage/ImageLocation;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
getfield jdk.internal.jimage.BasicImageReader.header:Ljdk/internal/jimage/ImageHeader;
invokevirtual jdk.internal.jimage.ImageHeader.getTableLength:()I
istore 3
start local 3 3: aload 0
getfield jdk.internal.jimage.BasicImageReader.redirect:Ljava/nio/IntBuffer;
aload 1
aload 2
invokestatic jdk.internal.jimage.ImageStringsReader.hashCode:(Ljava/lang/String;Ljava/lang/String;)I
iload 3
irem
invokevirtual java.nio.IntBuffer.get:(I)I
istore 4
start local 4 4: iload 4
ifge 7
5: iload 4
ineg
iconst_1
isub
istore 4
6: goto 11
StackMap locals: int int
StackMap stack:
7: iload 4
ifle 10
8: aload 1
aload 2
iload 4
invokestatic jdk.internal.jimage.ImageStringsReader.hashCode:(Ljava/lang/String;Ljava/lang/String;I)I
iload 3
irem
istore 4
9: goto 11
10: StackMap locals:
StackMap stack:
aconst_null
areturn
11: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.internal.jimage.BasicImageReader.offsets:Ljava/nio/IntBuffer;
iload 4
invokevirtual java.nio.IntBuffer.get:(I)I
invokevirtual jdk.internal.jimage.BasicImageReader.getAttributes:(I)[J
astore 5
start local 5 12: aload 1
aload 2
aload 5
aload 0
getfield jdk.internal.jimage.BasicImageReader.stringsReader:Ljdk/internal/jimage/ImageStringsReader;
invokestatic jdk.internal.jimage.ImageLocation.verify:(Ljava/lang/String;Ljava/lang/String;[JLjdk/internal/jimage/ImageStrings;)Z
ifne 14
13: aconst_null
areturn
14: StackMap locals: long[]
StackMap stack:
new jdk.internal.jimage.ImageLocation
dup
aload 5
aload 0
getfield jdk.internal.jimage.BasicImageReader.stringsReader:Ljdk/internal/jimage/ImageStringsReader;
invokespecial jdk.internal.jimage.ImageLocation.<init>:([JLjdk/internal/jimage/ImageStrings;)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 15 0 this Ljdk/internal/jimage/BasicImageReader;
0 15 1 module Ljava/lang/String;
0 15 2 name Ljava/lang/String;
3 15 3 count I
4 15 4 index I
12 15 5 attributes [J
MethodParameters:
Name Flags
module
name
public synchronized jdk.internal.jimage.ImageLocation findLocation(java.lang.String);
descriptor: (Ljava/lang/String;)Ljdk/internal/jimage/ImageLocation;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield jdk.internal.jimage.BasicImageReader.header:Ljdk/internal/jimage/ImageHeader;
invokevirtual jdk.internal.jimage.ImageHeader.getTableLength:()I
istore 2
start local 2 2: aload 0
getfield jdk.internal.jimage.BasicImageReader.redirect:Ljava/nio/IntBuffer;
aload 1
invokestatic jdk.internal.jimage.ImageStringsReader.hashCode:(Ljava/lang/String;)I
iload 2
irem
invokevirtual java.nio.IntBuffer.get:(I)I
istore 3
start local 3 3: iload 3
ifge 6
4: iload 3
ineg
iconst_1
isub
istore 3
5: goto 10
StackMap locals: int int
StackMap stack:
6: iload 3
ifle 9
7: aload 1
iload 3
invokestatic jdk.internal.jimage.ImageStringsReader.hashCode:(Ljava/lang/String;I)I
iload 2
irem
istore 3
8: goto 10
9: StackMap locals:
StackMap stack:
aconst_null
areturn
10: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield jdk.internal.jimage.BasicImageReader.offsets:Ljava/nio/IntBuffer;
iload 3
invokevirtual java.nio.IntBuffer.get:(I)I
invokevirtual jdk.internal.jimage.BasicImageReader.getAttributes:(I)[J
astore 4
start local 4 11: aload 1
aload 4
aload 0
getfield jdk.internal.jimage.BasicImageReader.stringsReader:Ljdk/internal/jimage/ImageStringsReader;
invokestatic jdk.internal.jimage.ImageLocation.verify:(Ljava/lang/String;[JLjdk/internal/jimage/ImageStrings;)Z
ifne 13
12: aconst_null
areturn
13: StackMap locals: long[]
StackMap stack:
new jdk.internal.jimage.ImageLocation
dup
aload 4
aload 0
getfield jdk.internal.jimage.BasicImageReader.stringsReader:Ljdk/internal/jimage/ImageStringsReader;
invokespecial jdk.internal.jimage.ImageLocation.<init>:([JLjdk/internal/jimage/ImageStrings;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljdk/internal/jimage/BasicImageReader;
0 14 1 name Ljava/lang/String;
2 14 2 count I
3 14 3 index I
11 14 4 attributes [J
MethodParameters:
Name Flags
name
public java.lang.String[] getEntryNames();
descriptor: ()[Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.internal.jimage.BasicImageReader.offsets:Ljava/nio/IntBuffer;
invokevirtual java.nio.IntBuffer.capacity:()I
newarray 10
astore 1
start local 1 1: aload 0
getfield jdk.internal.jimage.BasicImageReader.offsets:Ljava/nio/IntBuffer;
aload 1
invokevirtual java.nio.IntBuffer.get:([I)Ljava/nio/IntBuffer;
pop
2: aload 1
invokestatic java.util.stream.IntStream.of:([I)Ljava/util/stream/IntStream;
3: invokedynamic test()Ljava/util/function/IntPredicate;
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:
(I)Z
jdk/internal/jimage/BasicImageReader.lambda$0(I)Z (6)
(I)Z
invokeinterface java.util.stream.IntStream.filter:(Ljava/util/function/IntPredicate;)Ljava/util/stream/IntStream;
4: aload 0
invokedynamic apply(Ljdk/internal/jimage/BasicImageReader;)Ljava/util/function/IntFunction;
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:
(I)Ljava/lang/Object;
jdk/internal/jimage/BasicImageReader.lambda$1(I)Ljava/lang/String; (7)
(I)Ljava/lang/String;
invokeinterface java.util.stream.IntStream.mapToObj:(Ljava/util/function/IntFunction;)Ljava/util/stream/Stream;
5: invokeinterface java.util.stream.Stream.sorted:()Ljava/util/stream/Stream;
6: invokedynamic apply()Ljava/util/function/IntFunction;
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:
(I)Ljava/lang/Object;
jdk/internal/jimage/BasicImageReader.lambda$2(I)[Ljava/lang/String; (6)
(I)[Ljava/lang/String;
invokeinterface java.util.stream.Stream.toArray:(Ljava/util/function/IntFunction;)[Ljava/lang/Object;
checkcast java.lang.String[]
7: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/internal/jimage/BasicImageReader;
1 8 1 attributeOffsets [I
jdk.internal.jimage.ImageLocation getLocation(int);
descriptor: (I)Ljdk/internal/jimage/ImageLocation;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokestatic jdk.internal.jimage.ImageLocation.readFrom:(Ljdk/internal/jimage/BasicImageReader;I)Ljdk/internal/jimage/ImageLocation;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/jimage/BasicImageReader;
0 1 1 offset I
MethodParameters:
Name Flags
offset
public long[] getAttributes(int);
descriptor: (I)[J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
iflt 1
iload 1
aload 0
getfield jdk.internal.jimage.BasicImageReader.locations:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
if_icmplt 2
1: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
ldc "offset"
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.jimage.BasicImageReader.locations:Ljava/nio/ByteBuffer;
iload 1
aload 0
getfield jdk.internal.jimage.BasicImageReader.locations:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
iload 1
isub
invokestatic jdk.internal.jimage.BasicImageReader.slice:(Ljava/nio/ByteBuffer;II)Ljava/nio/ByteBuffer;
astore 2
start local 2 3: aload 2
invokestatic jdk.internal.jimage.ImageLocation.decompress:(Ljava/nio/ByteBuffer;)[J
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/jimage/BasicImageReader;
0 4 1 offset I
3 4 2 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
offset
public java.lang.String getString(int);
descriptor: (I)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
iflt 1
iload 1
aload 0
getfield jdk.internal.jimage.BasicImageReader.strings:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
if_icmplt 2
1: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
ldc "offset"
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.jimage.BasicImageReader.strings:Ljava/nio/ByteBuffer;
iload 1
aload 0
getfield jdk.internal.jimage.BasicImageReader.strings:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
iload 1
isub
invokestatic jdk.internal.jimage.BasicImageReader.slice:(Ljava/nio/ByteBuffer;II)Ljava/nio/ByteBuffer;
astore 2
start local 2 3: aload 2
invokestatic jdk.internal.jimage.ImageStringsReader.stringFromByteBuffer:(Ljava/nio/ByteBuffer;)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/jimage/BasicImageReader;
0 4 1 offset I
3 4 2 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
offset
private byte[] getBufferBytes(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)[B
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
newarray 8
astore 2
start local 2 2: aload 1
aload 2
invokevirtual java.nio.ByteBuffer.get:([B)Ljava/nio/ByteBuffer;
pop
3: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljdk/internal/jimage/BasicImageReader;
0 4 1 buffer Ljava/nio/ByteBuffer;
2 4 2 bytes [B
MethodParameters:
Name Flags
buffer
private java.nio.ByteBuffer readBuffer(long, long);
descriptor: (JJ)Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=3
start local 0 start local 1 start local 3 0: lload 1
lconst_0
lcmp
iflt 1
ldc 2147483647
lload 1
lcmp
ifgt 2
1: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
new java.lang.StringBuilder
dup
ldc "Bad offset: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
lload 3
lconst_0
lcmp
iflt 3
ldc 2147483647
lload 3
lcmp
ifgt 4
3: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
new java.lang.StringBuilder
dup
ldc "Bad size: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 3
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
getstatic jdk.internal.jimage.BasicImageReader.MAP_ALL:Z
ifeq 8
5: aload 0
getfield jdk.internal.jimage.BasicImageReader.memoryMap:Ljava/nio/ByteBuffer;
lload 1
l2i
lload 3
l2i
invokestatic jdk.internal.jimage.BasicImageReader.slice:(Ljava/nio/ByteBuffer;II)Ljava/nio/ByteBuffer;
astore 5
start local 5 6: aload 5
getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.nio.ByteBuffer.order:(Ljava/nio/ByteOrder;)Ljava/nio/ByteBuffer;
pop
7: aload 5
areturn
end local 5 8: StackMap locals:
StackMap stack:
aload 0
getfield jdk.internal.jimage.BasicImageReader.channel:Ljava/nio/channels/FileChannel;
ifnonnull 10
9: new java.lang.InternalError
dup
ldc "Image file channel not open"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
lload 3
invokestatic jdk.internal.jimage.ImageBufferCache.getBuffer:(J)Ljava/nio/ByteBuffer;
astore 5
start local 5 11: aload 0
getfield jdk.internal.jimage.BasicImageReader.channel:Ljava/nio/channels/FileChannel;
aload 5
lload 1
invokevirtual java.nio.channels.FileChannel.read:(Ljava/nio/ByteBuffer;J)I
istore 6
start local 6 12: aload 5
invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/ByteBuffer;
pop
13: goto 17
end local 6 StackMap locals: jdk.internal.jimage.BasicImageReader long long java.nio.ByteBuffer
StackMap stack: java.io.IOException
14: astore 7
start local 7 15: aload 5
invokestatic jdk.internal.jimage.ImageBufferCache.releaseBuffer:(Ljava/nio/ByteBuffer;)V
16: new java.lang.RuntimeException
dup
aload 7
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 7 start local 6 17: StackMap locals: int
StackMap stack:
iload 6
i2l
lload 3
lcmp
ifeq 22
18: aload 5
invokestatic jdk.internal.jimage.ImageBufferCache.releaseBuffer:(Ljava/nio/ByteBuffer;)V
19: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "Short read: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
20: ldc " instead of "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 3
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " bytes"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
21: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals:
StackMap stack:
aload 5
areturn
end local 6 end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Ljdk/internal/jimage/BasicImageReader;
0 23 1 offset J
0 23 3 size J
6 8 5 buffer Ljava/nio/ByteBuffer;
11 23 5 buffer Ljava/nio/ByteBuffer;
12 14 6 read I
17 23 6 read I
15 17 7 ex Ljava/io/IOException;
Exception table:
from to target type
11 13 14 Class java.io.IOException
MethodParameters:
Name Flags
offset
size
public byte[] getResource(java.lang.String);
descriptor: (Ljava/lang/String;)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aload 1
invokevirtual jdk.internal.jimage.BasicImageReader.findLocation:(Ljava/lang/String;)Ljdk/internal/jimage/ImageLocation;
astore 2
start local 2 2: aload 2
ifnull 3
aload 0
aload 2
invokevirtual jdk.internal.jimage.BasicImageReader.getResource:(Ljdk/internal/jimage/ImageLocation;)[B
goto 4
StackMap locals: jdk.internal.jimage.ImageLocation
StackMap stack:
3: aconst_null
StackMap locals:
StackMap stack: byte[]
4: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljdk/internal/jimage/BasicImageReader;
0 5 1 name Ljava/lang/String;
2 5 2 location Ljdk/internal/jimage/ImageLocation;
MethodParameters:
Name Flags
name
public byte[] getResource(jdk.internal.jimage.ImageLocation);
descriptor: (Ljdk/internal/jimage/ImageLocation;)[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual jdk.internal.jimage.BasicImageReader.getResourceBuffer:(Ljdk/internal/jimage/ImageLocation;)Ljava/nio/ByteBuffer;
astore 2
start local 2 1: aload 2
ifnull 5
2: aload 0
aload 2
invokevirtual jdk.internal.jimage.BasicImageReader.getBufferBytes:(Ljava/nio/ByteBuffer;)[B
astore 3
start local 3 3: aload 2
invokestatic jdk.internal.jimage.ImageBufferCache.releaseBuffer:(Ljava/nio/ByteBuffer;)V
4: aload 3
areturn
end local 3 5: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aconst_null
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/internal/jimage/BasicImageReader;
0 6 1 loc Ljdk/internal/jimage/ImageLocation;
1 6 2 buffer Ljava/nio/ByteBuffer;
3 5 3 bytes [B
MethodParameters:
Name Flags
loc
public java.nio.ByteBuffer getResourceBuffer(jdk.internal.jimage.ImageLocation);
descriptor: (Ljdk/internal/jimage/ImageLocation;)Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=12, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 1
invokevirtual jdk.internal.jimage.ImageLocation.getContentOffset:()J
aload 0
getfield jdk.internal.jimage.BasicImageReader.indexSize:J
ladd
lstore 2
start local 2 2: aload 1
invokevirtual jdk.internal.jimage.ImageLocation.getCompressedSize:()J
lstore 4
start local 4 3: aload 1
invokevirtual jdk.internal.jimage.ImageLocation.getUncompressedSize:()J
lstore 6
start local 6 4: lload 4
lconst_0
lcmp
iflt 5
ldc 2147483647
lload 4
lcmp
ifge 8
5: StackMap locals: long long long
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
6: new java.lang.StringBuilder
dup
ldc "Bad compressed size: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 4
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
lload 6
lconst_0
lcmp
iflt 9
ldc 2147483647
lload 6
lcmp
ifge 12
9: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
10: new java.lang.StringBuilder
dup
ldc "Bad uncompressed size: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 6
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
12: StackMap locals:
StackMap stack:
lload 4
lconst_0
lcmp
ifne 14
13: aload 0
lload 2
lload 6
invokevirtual jdk.internal.jimage.BasicImageReader.readBuffer:(JJ)Ljava/nio/ByteBuffer;
areturn
14: StackMap locals:
StackMap stack:
aload 0
lload 2
lload 4
invokevirtual jdk.internal.jimage.BasicImageReader.readBuffer:(JJ)Ljava/nio/ByteBuffer;
astore 8
start local 8 15: aload 8
ifnull 25
16: aload 0
aload 8
invokevirtual jdk.internal.jimage.BasicImageReader.getBufferBytes:(Ljava/nio/ByteBuffer;)[B
astore 9
start local 9 17: aload 8
invokestatic jdk.internal.jimage.ImageBufferCache.releaseBuffer:(Ljava/nio/ByteBuffer;)V
18: aload 0
getfield jdk.internal.jimage.BasicImageReader.decompressor:Ljdk/internal/jimage/decompressor/Decompressor;
aload 0
getfield jdk.internal.jimage.BasicImageReader.byteOrder:Ljava/nio/ByteOrder;
19: aload 0
invokedynamic getString(Ljdk/internal/jimage/BasicImageReader;)Ljdk/internal/jimage/decompressor/ResourceDecompressor$StringsProvider;
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:
(I)Ljava/lang/String;
jdk/internal/jimage/BasicImageReader.lambda$3(I)Ljava/lang/String; (7)
(I)Ljava/lang/String;
aload 9
20: invokevirtual jdk.internal.jimage.decompressor.Decompressor.decompressResource:(Ljava/nio/ByteOrder;Ljdk/internal/jimage/decompressor/ResourceDecompressor$StringsProvider;[B)[B
astore 10
start local 10 21: goto 24
end local 10 StackMap locals: jdk.internal.jimage.BasicImageReader jdk.internal.jimage.ImageLocation long long long java.nio.ByteBuffer byte[]
StackMap stack: java.io.IOException
22: astore 11
start local 11 23: new java.lang.RuntimeException
dup
aload 11
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 11 start local 10 24: StackMap locals: byte[]
StackMap stack:
aload 10
invokestatic java.nio.ByteBuffer.wrap:([B)Ljava/nio/ByteBuffer;
areturn
end local 10 end local 9 end local 8 25: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Ljdk/internal/jimage/BasicImageReader;
0 26 1 loc Ljdk/internal/jimage/ImageLocation;
2 26 2 offset J
3 26 4 compressedSize J
4 26 6 uncompressedSize J
15 25 8 buffer Ljava/nio/ByteBuffer;
17 25 9 bytesIn [B
21 22 10 bytesOut [B
24 25 10 bytesOut [B
23 24 11 ex Ljava/io/IOException;
Exception table:
from to target type
18 21 22 Class java.io.IOException
MethodParameters:
Name Flags
loc
public java.io.InputStream getResourceStream(jdk.internal.jimage.ImageLocation);
descriptor: (Ljdk/internal/jimage/ImageLocation;)Ljava/io/InputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
aload 1
invokevirtual jdk.internal.jimage.BasicImageReader.getResource:(Ljdk/internal/jimage/ImageLocation;)[B
astore 2
start local 2 2: new java.io.ByteArrayInputStream
dup
aload 2
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/jimage/BasicImageReader;
0 3 1 loc Ljdk/internal/jimage/ImageLocation;
2 3 2 bytes [B
MethodParameters:
Name Flags
loc
private static boolean lambda$0(int);
descriptor: (I)Z
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
ifeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 o I
private java.lang.String lambda$1(int);
descriptor: (I)Ljava/lang/String;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokestatic jdk.internal.jimage.ImageLocation.readFrom:(Ljdk/internal/jimage/BasicImageReader;I)Ljdk/internal/jimage/ImageLocation;
invokevirtual jdk.internal.jimage.ImageLocation.getFullName:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/jimage/BasicImageReader;
0 1 1 o I
private static java.lang.String[] lambda$2(int);
descriptor: (I)[Ljava/lang/String;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: iload 0
anewarray java.lang.String
areturn
LocalVariableTable:
Start End Slot Name Signature
private java.lang.String lambda$3(int);
descriptor: (I)Ljava/lang/String;
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual jdk.internal.jimage.BasicImageReader.getString:(I)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/jimage/BasicImageReader;
0 1 1 strOffset I
}
SourceFile: "BasicImageReader.java"
NestMembers:
jdk.internal.jimage.BasicImageReader$1 jdk.internal.jimage.BasicImageReader$2
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
jdk.internal.jimage.BasicImageReader$1
jdk.internal.jimage.BasicImageReader$2
public abstract StringsProvider = jdk.internal.jimage.decompressor.ResourceDecompressor$StringsProvider of jdk.internal.jimage.decompressor.ResourceDecompressor