public class jdk.internal.jimage.ImageStringsReader implements jdk.internal.jimage.ImageStrings
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: jdk.internal.jimage.ImageStringsReader
super_class: java.lang.Object
{
public static final int HASH_MULTIPLIER;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 16777619
public static final int POSITIVE_MASK;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2147483647
private final jdk.internal.jimage.BasicImageReader reader;
descriptor: Ljdk/internal/jimage/BasicImageReader;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(jdk.internal.jimage.BasicImageReader);
descriptor: (Ljdk/internal/jimage/BasicImageReader;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // jdk.internal.jimage.ImageStringsReader this
start local 1 // jdk.internal.jimage.BasicImageReader reader
0: .line 46
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 47
aload 0 /* this */
aload 1 /* reader */
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast jdk.internal.jimage.BasicImageReader
putfield jdk.internal.jimage.ImageStringsReader.reader:Ljdk/internal/jimage/BasicImageReader;
2: .line 48
return
end local 1 // jdk.internal.jimage.BasicImageReader reader
end local 0 // jdk.internal.jimage.ImageStringsReader this
LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/internal/jimage/ImageStringsReader;
0 3 1 reader Ljdk/internal/jimage/BasicImageReader;
MethodParameters:
Name Flags
reader
public java.lang.String get(int);
descriptor: (I)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 // jdk.internal.jimage.ImageStringsReader this
start local 1 // int offset
0: .line 52
aload 0 /* this */
getfield jdk.internal.jimage.ImageStringsReader.reader:Ljdk/internal/jimage/BasicImageReader;
iload 1 /* offset */
invokevirtual jdk.internal.jimage.BasicImageReader.getString:(I)Ljava/lang/String;
areturn
end local 1 // int offset
end local 0 // jdk.internal.jimage.ImageStringsReader this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/jimage/ImageStringsReader;
0 1 1 offset I
MethodParameters:
Name Flags
offset
public int match(int, java.lang.String, int);
descriptor: (ILjava/lang/String;I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 // jdk.internal.jimage.ImageStringsReader this
start local 1 // int offset
start local 2 // java.lang.String string
start local 3 // int stringOffset
0: .line 57
aload 0 /* this */
getfield jdk.internal.jimage.ImageStringsReader.reader:Ljdk/internal/jimage/BasicImageReader;
iload 1 /* offset */
aload 2 /* string */
iload 3 /* stringOffset */
invokevirtual jdk.internal.jimage.BasicImageReader.match:(ILjava/lang/String;I)I
ireturn
end local 3 // int stringOffset
end local 2 // java.lang.String string
end local 1 // int offset
end local 0 // jdk.internal.jimage.ImageStringsReader this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/jimage/ImageStringsReader;
0 1 1 offset I
0 1 2 string Ljava/lang/String;
0 1 3 stringOffset I
MethodParameters:
Name Flags
offset
string
stringOffset
public int add(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 // jdk.internal.jimage.ImageStringsReader this
start local 1 // java.lang.String string
0: .line 62
new java.lang.InternalError
dup
ldc "Can not add strings at runtime"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 1 // java.lang.String string
end local 0 // jdk.internal.jimage.ImageStringsReader this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljdk/internal/jimage/ImageStringsReader;
0 1 1 string Ljava/lang/String;
MethodParameters:
Name Flags
string final
public static int hashCode(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 // java.lang.String s
0: .line 66
aload 0 /* s */
ldc 16777619
invokestatic jdk.internal.jimage.ImageStringsReader.hashCode:(Ljava/lang/String;I)I
ireturn
end local 0 // java.lang.String s
LocalVariableTable:
Start End Slot Name Signature
0 1 0 s Ljava/lang/String;
MethodParameters:
Name Flags
s
public static int hashCode(java.lang.String, int);
descriptor: (Ljava/lang/String;I)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 // java.lang.String s
start local 1 // int seed
0: .line 70
aload 0 /* s */
iload 1 /* seed */
invokestatic jdk.internal.jimage.ImageStringsReader.unmaskedHashCode:(Ljava/lang/String;I)I
ldc 2147483647
iand
ireturn
end local 1 // int seed
end local 0 // java.lang.String s
LocalVariableTable:
Start End Slot Name Signature
0 1 0 s Ljava/lang/String;
0 1 1 seed I
MethodParameters:
Name Flags
s
seed
public static int hashCode(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 // java.lang.String module
start local 1 // java.lang.String name
0: .line 74
aload 0 /* module */
aload 1 /* name */
ldc 16777619
invokestatic jdk.internal.jimage.ImageStringsReader.hashCode:(Ljava/lang/String;Ljava/lang/String;I)I
ireturn
end local 1 // java.lang.String name
end local 0 // java.lang.String module
LocalVariableTable:
Start End Slot Name Signature
0 1 0 module Ljava/lang/String;
0 1 1 name Ljava/lang/String;
MethodParameters:
Name Flags
module
name
public static int hashCode(java.lang.String, java.lang.String, int);
descriptor: (Ljava/lang/String;Ljava/lang/String;I)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=3
start local 0 // java.lang.String module
start local 1 // java.lang.String name
start local 2 // int seed
0: .line 78
iload 2 /* seed */
ldc 16777619
imul
bipush 47
ixor
istore 2 /* seed */
1: .line 79
aload 0 /* module */
iload 2 /* seed */
invokestatic jdk.internal.jimage.ImageStringsReader.unmaskedHashCode:(Ljava/lang/String;I)I
istore 2 /* seed */
2: .line 80
iload 2 /* seed */
ldc 16777619
imul
bipush 47
ixor
istore 2 /* seed */
3: .line 81
aload 1 /* name */
iload 2 /* seed */
invokestatic jdk.internal.jimage.ImageStringsReader.unmaskedHashCode:(Ljava/lang/String;I)I
istore 2 /* seed */
4: .line 82
iload 2 /* seed */
ldc 2147483647
iand
ireturn
end local 2 // int seed
end local 1 // java.lang.String name
end local 0 // java.lang.String module
LocalVariableTable:
Start End Slot Name Signature
0 5 0 module Ljava/lang/String;
0 5 1 name Ljava/lang/String;
0 5 2 seed I
MethodParameters:
Name Flags
module
name
seed
public static int unmaskedHashCode(java.lang.String, int);
descriptor: (Ljava/lang/String;I)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=8, args_size=2
start local 0 // java.lang.String s
start local 1 // int seed
0: .line 86
aload 0 /* s */
invokevirtual java.lang.String.length:()I
istore 2 /* slen */
start local 2 // int slen
1: .line 87
aconst_null
astore 3 /* buffer */
start local 3 // byte[] buffer
2: .line 89
iconst_0
istore 4 /* i */
start local 4 // int i
3: goto 25
4: .line 90
StackMap locals: int byte[] int
StackMap stack:
aload 0 /* s */
iload 4 /* i */
invokevirtual java.lang.String.charAt:(I)C
istore 5 /* uch */
start local 5 // int uch
5: .line 92
iload 5 /* uch */
bipush -128
iand
ifeq 19
6: .line 93
aload 3 /* buffer */
ifnonnull 8
7: .line 94
bipush 8
newarray 8
astore 3 /* buffer */
8: .line 96
StackMap locals: int
StackMap stack:
bipush -64
istore 6 /* mask */
start local 6 // int mask
9: .line 97
iconst_0
istore 7 /* n */
start local 7 // int n
10: .line 100
StackMap locals: int int
StackMap stack:
aload 3 /* buffer */
iload 7 /* n */
iinc 7 /* n */ 1
sipush 128
iload 5 /* uch */
bipush 63
iand
ior
i2b
bastore
11: .line 101
iload 5 /* uch */
bipush 6
ishr
istore 5 /* uch */
12: .line 102
iload 6 /* mask */
iconst_1
ishr
istore 6 /* mask */
13: .line 103
iload 5 /* uch */
iload 6 /* mask */
iand
ifne 10
14: .line 105
aload 3 /* buffer */
iload 7 /* n */
iload 6 /* mask */
iconst_1
ishl
iload 5 /* uch */
ior
i2b
bastore
15: .line 108
StackMap locals:
StackMap stack:
iload 1 /* seed */
ldc 16777619
imul
aload 3 /* buffer */
iload 7 /* n */
iinc 7 /* n */ -1
baload
sipush 255
iand
ixor
istore 1 /* seed */
16: .line 109
iload 7 /* n */
17: .line 107
ifge 15
end local 7 // int n
end local 6 // int mask
18: .line 110
goto 24
StackMap locals:
StackMap stack:
19: iload 5 /* uch */
ifne 23
20: .line 111
iload 1 /* seed */
ldc 16777619
imul
sipush 192
ixor
istore 1 /* seed */
21: .line 112
iload 1 /* seed */
ldc 16777619
imul
sipush 128
ixor
istore 1 /* seed */
22: .line 113
goto 24
23: .line 114
StackMap locals:
StackMap stack:
iload 1 /* seed */
ldc 16777619
imul
iload 5 /* uch */
ixor
istore 1 /* seed */
end local 5 // int uch
24: .line 89
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
25: iload 4 /* i */
iload 2 /* slen */
if_icmplt 4
end local 4 // int i
26: .line 117
iload 1 /* seed */
ireturn
end local 3 // byte[] buffer
end local 2 // int slen
end local 1 // int seed
end local 0 // java.lang.String s
LocalVariableTable:
Start End Slot Name Signature
0 27 0 s Ljava/lang/String;
0 27 1 seed I
1 27 2 slen I
2 27 3 buffer [B
3 26 4 i I
5 24 5 uch I
9 18 6 mask I
10 18 7 n I
MethodParameters:
Name Flags
s
seed
static int charsFromMUTF8Length(byte[], int, int);
descriptor: ([BII)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=6, args_size=3
start local 0 // byte[] bytes
start local 1 // int offset
start local 2 // int count
0: .line 121
iconst_0
istore 3 /* length */
start local 3 // int length
1: .line 123
iload 1 /* offset */
istore 4 /* i */
start local 4 // int i
2: goto 9
3: .line 124
StackMap locals: int int
StackMap stack:
aload 0 /* bytes */
iload 4 /* i */
baload
istore 5 /* ch */
start local 5 // byte ch
4: .line 126
iload 5 /* ch */
ifne 6
5: .line 127
goto 10
6: .line 130
StackMap locals: int
StackMap stack:
iload 5 /* ch */
sipush 192
iand
sipush 128
if_icmpeq 8
7: .line 131
iinc 3 /* length */ 1
end local 5 // byte ch
8: .line 123
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 4 /* i */
iload 1 /* offset */
iload 2 /* count */
iadd
if_icmplt 3
end local 4 // int i
10: .line 135
StackMap locals:
StackMap stack:
iload 3 /* length */
ireturn
end local 3 // int length
end local 2 // int count
end local 1 // int offset
end local 0 // byte[] bytes
LocalVariableTable:
Start End Slot Name Signature
0 11 0 bytes [B
0 11 1 offset I
0 11 2 count I
1 11 3 length I
2 10 4 i I
4 8 5 ch B
MethodParameters:
Name Flags
bytes
offset
count
static void charsFromMUTF8(char[], byte[], int, int);
descriptor: ([C[BII)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=10, args_size=4
start local 0 // char[] chars
start local 1 // byte[] bytes
start local 2 // int offset
start local 3 // int count
0: .line 139
iconst_0
istore 4 /* j */
start local 4 // int j
1: .line 141
iload 2 /* offset */
istore 5 /* i */
start local 5 // int i
2: goto 23
3: .line 142
StackMap locals: int int
StackMap stack:
aload 1 /* bytes */
iload 5 /* i */
baload
istore 6 /* ch */
start local 6 // byte ch
4: .line 144
iload 6 /* ch */
ifne 6
5: .line 145
goto 24
6: .line 148
StackMap locals: int
StackMap stack:
iload 6 /* ch */
sipush 128
iand
ifeq 7
iconst_1
goto 8
StackMap locals:
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 7 /* is_unicode */
start local 7 // boolean is_unicode
9: .line 149
iload 6 /* ch */
bipush 127
iand
istore 8 /* uch */
start local 8 // int uch
10: .line 151
iload 7 /* is_unicode */
ifeq 21
11: .line 152
bipush 64
istore 9 /* mask */
start local 9 // int mask
12: .line 154
goto 18
13: .line 155
StackMap locals: int int int
StackMap stack:
aload 1 /* bytes */
iinc 5 /* i */ 1
iload 5 /* i */
baload
istore 6 /* ch */
14: .line 157
iload 6 /* ch */
sipush 192
iand
sipush 128
if_icmpeq 16
15: .line 158
new java.io.UTFDataFormatException
dup
new java.lang.StringBuilder
dup
ldc "bad continuation 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6 /* ch */
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.UTFDataFormatException.<init>:(Ljava/lang/String;)V
athrow
16: .line 161
StackMap locals:
StackMap stack:
iload 8 /* uch */
iload 9 /* mask */
iconst_m1
ixor
iand
bipush 6
ishl
iload 6 /* ch */
bipush 63
iand
ior
istore 8 /* uch */
17: .line 162
iload 9 /* mask */
iconst_5
ishl
istore 9 /* mask */
18: .line 154
StackMap locals:
StackMap stack:
iload 8 /* uch */
iload 9 /* mask */
iand
ifne 13
19: .line 165
iload 8 /* uch */
ldc 65535
iand
iload 8 /* uch */
if_icmpeq 21
20: .line 166
new java.io.UTFDataFormatException
dup
new java.lang.StringBuilder
dup
ldc "character out of range \\u"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8 /* uch */
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.UTFDataFormatException.<init>:(Ljava/lang/String;)V
athrow
end local 9 // int mask
21: .line 170
StackMap locals:
StackMap stack:
aload 0 /* chars */
iload 4 /* j */
iinc 4 /* j */ 1
iload 8 /* uch */
i2c
castore
end local 8 // int uch
end local 7 // boolean is_unicode
end local 6 // byte ch
22: .line 141
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
23: iload 5 /* i */
iload 2 /* offset */
iload 3 /* count */
iadd
if_icmplt 3
end local 5 // int i
24: .line 172
StackMap locals:
StackMap stack:
return
end local 4 // int j
end local 3 // int count
end local 2 // int offset
end local 1 // byte[] bytes
end local 0 // char[] chars
LocalVariableTable:
Start End Slot Name Signature
0 25 0 chars [C
0 25 1 bytes [B
0 25 2 offset I
0 25 3 count I
1 25 4 j I
2 24 5 i I
4 22 6 ch B
9 22 7 is_unicode Z
10 22 8 uch I
12 21 9 mask I
Exceptions:
throws java.io.UTFDataFormatException
MethodParameters:
Name Flags
chars
bytes
offset
count
public static java.lang.String stringFromMUTF8(byte[], int, int);
descriptor: ([BII)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=6, args_size=3
start local 0 // byte[] bytes
start local 1 // int offset
start local 2 // int count
0: .line 175
aload 0 /* bytes */
iload 1 /* offset */
iload 2 /* count */
invokestatic jdk.internal.jimage.ImageStringsReader.charsFromMUTF8Length:([BII)I
istore 3 /* length */
start local 3 // int length
1: .line 176
iload 3 /* length */
newarray 5
astore 4 /* chars */
start local 4 // char[] chars
2: .line 179
aload 4 /* chars */
aload 0 /* bytes */
iload 1 /* offset */
iload 2 /* count */
invokestatic jdk.internal.jimage.ImageStringsReader.charsFromMUTF8:([C[BII)V
3: .line 180
goto 6
StackMap locals: byte[] int int int char[]
StackMap stack: java.io.UTFDataFormatException
4: astore 5 /* ex */
start local 5 // java.io.UTFDataFormatException ex
5: .line 181
new java.lang.InternalError
dup
ldc "Attempt to convert non modified UTF-8 byte sequence"
aload 5 /* ex */
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 5 // java.io.UTFDataFormatException ex
6: .line 184
StackMap locals:
StackMap stack:
new java.lang.String
dup
aload 4 /* chars */
invokespecial java.lang.String.<init>:([C)V
areturn
end local 4 // char[] chars
end local 3 // int length
end local 2 // int count
end local 1 // int offset
end local 0 // byte[] bytes
LocalVariableTable:
Start End Slot Name Signature
0 7 0 bytes [B
0 7 1 offset I
0 7 2 count I
1 7 3 length I
2 7 4 chars [C
5 6 5 ex Ljava/io/UTFDataFormatException;
Exception table:
from to target type
2 3 4 Class java.io.UTFDataFormatException
MethodParameters:
Name Flags
bytes
offset
count
public static java.lang.String stringFromMUTF8(byte[]);
descriptor: ([B)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 // byte[] bytes
0: .line 188
aload 0 /* bytes */
iconst_0
aload 0 /* bytes */
arraylength
invokestatic jdk.internal.jimage.ImageStringsReader.stringFromMUTF8:([BII)Ljava/lang/String;
areturn
end local 0 // byte[] bytes
LocalVariableTable:
Start End Slot Name Signature
0 1 0 bytes [B
MethodParameters:
Name Flags
bytes
private static int charsFromByteBufferLength(java.nio.ByteBuffer, int);
descriptor: (Ljava/nio/ByteBuffer;I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 // java.nio.ByteBuffer buffer
start local 1 // int offset
0: .line 197
iconst_0
istore 2 /* length */
start local 2 // int length
1: .line 199
aload 0 /* buffer */
invokevirtual java.nio.ByteBuffer.limit:()I
istore 3 /* limit */
start local 3 // int limit
2: .line 200
iconst_1
istore 4 /* asciiOnly */
start local 4 // boolean asciiOnly
3: .line 201
goto 14
4: .line 202
StackMap locals: int int int
StackMap stack:
aload 0 /* buffer */
iload 1 /* offset */
iinc 1 /* offset */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 5 /* ch */
start local 5 // byte ch
5: .line 204
iload 5 /* ch */
ifge 8
6: .line 205
iconst_0
istore 4 /* asciiOnly */
7: .line 206
goto 12
StackMap locals: int
StackMap stack:
8: iload 5 /* ch */
ifne 12
9: .line 207
iload 4 /* asciiOnly */
ifeq 10
iload 2 /* length */
goto 11
StackMap locals:
StackMap stack:
10: iload 2 /* length */
ineg
StackMap locals:
StackMap stack: int
11: ireturn
12: .line 210
StackMap locals:
StackMap stack:
iload 5 /* ch */
sipush 192
iand
sipush 128
if_icmpeq 14
13: .line 211
iinc 2 /* length */ 1
end local 5 // byte ch
14: .line 201
StackMap locals:
StackMap stack:
iload 1 /* offset */
iload 3 /* limit */
if_icmplt 4
15: .line 214
new java.lang.InternalError
dup
ldc "No terminating zero byte for modified UTF-8 byte sequence"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 4 // boolean asciiOnly
end local 3 // int limit
end local 2 // int length
end local 1 // int offset
end local 0 // java.nio.ByteBuffer buffer
LocalVariableTable:
Start End Slot Name Signature
0 16 0 buffer Ljava/nio/ByteBuffer;
0 16 1 offset I
1 16 2 length I
2 16 3 limit I
3 16 4 asciiOnly Z
5 14 5 ch B
MethodParameters:
Name Flags
buffer
offset
private static void charsFromByteBuffer(char[], java.nio.ByteBuffer, int);
descriptor: ([CLjava/nio/ByteBuffer;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=9, args_size=3
start local 0 // char[] chars
start local 1 // java.nio.ByteBuffer buffer
start local 2 // int offset
0: .line 218
iconst_0
istore 3 /* j */
start local 3 // int j
1: .line 220
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.limit:()I
istore 4 /* limit */
start local 4 // int limit
2: .line 221
goto 26
3: .line 222
StackMap locals: int int
StackMap stack:
aload 1 /* buffer */
iload 2 /* offset */
iinc 2 /* offset */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 5 /* ch */
start local 5 // byte ch
4: .line 224
iload 5 /* ch */
ifne 6
5: .line 225
return
6: .line 228
StackMap locals: int
StackMap stack:
iload 5 /* ch */
sipush 128
iand
ifeq 7
iconst_1
goto 8
StackMap locals:
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 6 /* is_unicode */
start local 6 // boolean is_unicode
9: .line 229
iload 5 /* ch */
bipush 127
iand
istore 7 /* uch */
start local 7 // int uch
10: .line 231
iload 6 /* is_unicode */
ifeq 21
11: .line 232
bipush 64
istore 8 /* mask */
start local 8 // int mask
12: .line 234
goto 20
13: .line 235
StackMap locals: int int int
StackMap stack:
aload 1 /* buffer */
iload 2 /* offset */
iinc 2 /* offset */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 5 /* ch */
14: .line 237
iload 5 /* ch */
sipush 192
iand
sipush 128
if_icmpeq 18
15: .line 238
new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "Bad continuation in modified UTF-8 byte sequence: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
16: .line 239
iload 5 /* ch */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
17: .line 238
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
18: .line 242
StackMap locals:
StackMap stack:
iload 7 /* uch */
iload 8 /* mask */
iconst_m1
ixor
iand
bipush 6
ishl
iload 5 /* ch */
bipush 63
iand
ior
istore 7 /* uch */
19: .line 243
iload 8 /* mask */
iconst_5
ishl
istore 8 /* mask */
20: .line 234
StackMap locals:
StackMap stack:
iload 7 /* uch */
iload 8 /* mask */
iand
ifne 13
end local 8 // int mask
21: .line 247
StackMap locals:
StackMap stack:
iload 7 /* uch */
ldc 65535
iand
iload 7 /* uch */
if_icmpeq 25
22: .line 248
new java.lang.InternalError
dup
new java.lang.StringBuilder
dup
ldc "UTF-32 char in modified UTF-8 byte sequence: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
23: .line 249
iload 7 /* uch */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
24: .line 248
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
25: .line 252
StackMap locals:
StackMap stack:
aload 0 /* chars */
iload 3 /* j */
iinc 3 /* j */ 1
iload 7 /* uch */
i2c
castore
end local 7 // int uch
end local 6 // boolean is_unicode
end local 5 // byte ch
26: .line 221
StackMap locals:
StackMap stack:
iload 2 /* offset */
iload 4 /* limit */
if_icmplt 3
27: .line 255
new java.lang.InternalError
dup
ldc "No terminating zero byte for modified UTF-8 byte sequence"
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
end local 4 // int limit
end local 3 // int j
end local 2 // int offset
end local 1 // java.nio.ByteBuffer buffer
end local 0 // char[] chars
LocalVariableTable:
Start End Slot Name Signature
0 28 0 chars [C
0 28 1 buffer Ljava/nio/ByteBuffer;
0 28 2 offset I
1 28 3 j I
2 28 4 limit I
4 26 5 ch B
9 26 6 is_unicode Z
10 26 7 uch I
12 21 8 mask I
MethodParameters:
Name Flags
chars
buffer
offset
public static java.lang.String stringFromByteBuffer(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 // java.nio.ByteBuffer buffer
0: .line 259
aload 0 /* buffer */
iconst_0
invokestatic jdk.internal.jimage.ImageStringsReader.stringFromByteBuffer:(Ljava/nio/ByteBuffer;I)Ljava/lang/String;
areturn
end local 0 // java.nio.ByteBuffer buffer
LocalVariableTable:
Start End Slot Name Signature
0 1 0 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
buffer
static java.lang.String stringFromByteBuffer(java.nio.ByteBuffer, int);
descriptor: (Ljava/nio/ByteBuffer;I)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 // java.nio.ByteBuffer buffer
start local 1 // int offset
0: .line 264
aload 0 /* buffer */
iload 1 /* offset */
invokestatic jdk.internal.jimage.ImageStringsReader.charsFromByteBufferLength:(Ljava/nio/ByteBuffer;I)I
istore 2 /* length */
start local 2 // int length
1: .line 265
iload 2 /* length */
ifle 9
2: .line 266
iload 2 /* length */
newarray 8
astore 3 /* asciiBytes */
start local 3 // byte[] asciiBytes
3: .line 269
iconst_0
istore 4 /* i */
start local 4 // int i
4: goto 7
5: .line 270
StackMap locals: int byte[] int
StackMap stack:
aload 3 /* asciiBytes */
iload 4 /* i */
aload 0 /* buffer */
iload 1 /* offset */
iinc 1 /* offset */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
bastore
6: .line 269
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 4 /* i */
iload 2 /* length */
if_icmplt 5
end local 4 // int i
8: .line 272
new java.lang.String
dup
aload 3 /* asciiBytes */
getstatic java.nio.charset.StandardCharsets.US_ASCII:Ljava/nio/charset/Charset;
invokespecial java.lang.String.<init>:([BLjava/nio/charset/Charset;)V
areturn
end local 3 // byte[] asciiBytes
9: .line 274
StackMap locals:
StackMap stack:
iload 2 /* length */
ineg
newarray 5
astore 3 /* chars */
start local 3 // char[] chars
10: .line 275
aload 3 /* chars */
aload 0 /* buffer */
iload 1 /* offset */
invokestatic jdk.internal.jimage.ImageStringsReader.charsFromByteBuffer:([CLjava/nio/ByteBuffer;I)V
11: .line 276
new java.lang.String
dup
aload 3 /* chars */
invokespecial java.lang.String.<init>:([C)V
areturn
end local 3 // char[] chars
end local 2 // int length
end local 1 // int offset
end local 0 // java.nio.ByteBuffer buffer
LocalVariableTable:
Start End Slot Name Signature
0 12 0 buffer Ljava/nio/ByteBuffer;
0 12 1 offset I
1 12 2 length I
3 9 3 asciiBytes [B
4 8 4 i I
10 12 3 chars [C
MethodParameters:
Name Flags
buffer
offset
static int stringFromByteBufferMatches(java.nio.ByteBuffer, int, java.lang.String, int);
descriptor: (Ljava/nio/ByteBuffer;ILjava/lang/String;I)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=10, args_size=4
start local 0 // java.nio.ByteBuffer buffer
start local 1 // int offset
start local 2 // java.lang.String string
start local 3 // int stringOffset
0: .line 282
aload 0 /* buffer */
invokevirtual java.nio.ByteBuffer.limit:()I
istore 4 /* limit */
start local 4 // int limit
1: .line 283
iload 1 /* offset */
istore 5 /* current */
start local 5 // int current
2: .line 284
aload 2 /* string */
invokevirtual java.lang.String.length:()I
istore 6 /* slen */
start local 6 // int slen
3: .line 285
goto 12
4: .line 286
StackMap locals: int int int
StackMap stack:
aload 0 /* buffer */
iload 5 /* current */
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 7 /* ch */
start local 7 // byte ch
5: .line 287
iload 7 /* ch */
ifgt 8
6: .line 288
iload 7 /* ch */
ifne 13
7: .line 290
iload 5 /* current */
iload 1 /* offset */
isub
ireturn
8: .line 295
StackMap locals: int
StackMap stack:
iload 6 /* slen */
iload 3 /* stringOffset */
if_icmple 9
aload 2 /* string */
iload 3 /* stringOffset */
invokevirtual java.lang.String.charAt:(I)C
iload 7 /* ch */
i2c
if_icmpeq 10
9: .line 297
StackMap locals:
StackMap stack:
iconst_m1
ireturn
10: .line 299
StackMap locals:
StackMap stack:
iinc 3 /* stringOffset */ 1
11: .line 300
iinc 5 /* current */ 1
end local 7 // byte ch
12: .line 285
StackMap locals:
StackMap stack:
iload 5 /* current */
iload 4 /* limit */
if_icmplt 4
13: .line 304
StackMap locals:
StackMap stack:
aload 0 /* buffer */
iload 5 /* current */
invokestatic jdk.internal.jimage.ImageStringsReader.charsFromByteBufferLength:(Ljava/nio/ByteBuffer;I)I
ineg
istore 7 /* length */
start local 7 // int length
14: .line 305
iload 7 /* length */
newarray 5
astore 8 /* chars */
start local 8 // char[] chars
15: .line 306
aload 8 /* chars */
aload 0 /* buffer */
iload 5 /* current */
invokestatic jdk.internal.jimage.ImageStringsReader.charsFromByteBuffer:([CLjava/nio/ByteBuffer;I)V
16: .line 307
iconst_0
istore 9 /* i */
start local 9 // int i
17: goto 21
18: .line 308
StackMap locals: int char[] int
StackMap stack:
aload 2 /* string */
iload 3 /* stringOffset */
iinc 3 /* stringOffset */ 1
invokevirtual java.lang.String.charAt:(I)C
aload 8 /* chars */
iload 9 /* i */
caload
if_icmpeq 20
19: .line 309
iconst_m1
ireturn
20: .line 307
StackMap locals:
StackMap stack:
iinc 9 /* i */ 1
StackMap locals:
StackMap stack:
21: iload 9 /* i */
iload 7 /* length */
if_icmplt 18
end local 9 // int i
22: .line 312
iload 7 /* length */
ireturn
end local 8 // char[] chars
end local 7 // int length
end local 6 // int slen
end local 5 // int current
end local 4 // int limit
end local 3 // int stringOffset
end local 2 // java.lang.String string
end local 1 // int offset
end local 0 // java.nio.ByteBuffer buffer
LocalVariableTable:
Start End Slot Name Signature
0 23 0 buffer Ljava/nio/ByteBuffer;
0 23 1 offset I
0 23 2 string Ljava/lang/String;
0 23 3 stringOffset I
1 23 4 limit I
2 23 5 current I
3 23 6 slen I
5 12 7 ch B
14 23 7 length I
15 23 8 chars [C
17 22 9 i I
MethodParameters:
Name Flags
buffer
offset
string
stringOffset
static int mutf8FromStringLength(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=8, args_size=1
start local 0 // java.lang.String s
0: .line 316
iconst_0
istore 1 /* length */
start local 1 // int length
1: .line 317
aload 0 /* s */
invokevirtual java.lang.String.length:()I
istore 2 /* slen */
start local 2 // int slen
2: .line 319
iconst_0
istore 3 /* i */
start local 3 // int i
3: goto 20
4: .line 320
StackMap locals: int int int
StackMap stack:
aload 0 /* s */
iload 3 /* i */
invokevirtual java.lang.String.charAt:(I)C
istore 4 /* ch */
start local 4 // char ch
5: .line 321
iload 4 /* ch */
ldc 65535
iand
istore 5 /* uch */
start local 5 // int uch
6: .line 323
iload 5 /* uch */
bipush -128
iand
ifeq 15
7: .line 324
bipush -64
istore 6 /* mask */
start local 6 // int mask
8: .line 325
iconst_0
istore 7 /* n */
start local 7 // int n
9: .line 328
StackMap locals: java.lang.String int int int int int int int
StackMap stack:
iinc 7 /* n */ 1
10: .line 329
iload 5 /* uch */
bipush 6
ishr
istore 5 /* uch */
11: .line 330
iload 6 /* mask */
iconst_1
ishr
istore 6 /* mask */
12: .line 331
iload 5 /* uch */
iload 6 /* mask */
iand
ifne 9
13: .line 333
iload 1 /* length */
iload 7 /* n */
iconst_1
iadd
iadd
istore 1 /* length */
end local 7 // int n
end local 6 // int mask
14: .line 334
goto 19
StackMap locals:
StackMap stack:
15: iload 5 /* uch */
ifne 18
16: .line 335
iinc 1 /* length */ 2
17: .line 336
goto 19
18: .line 337
StackMap locals:
StackMap stack:
iinc 1 /* length */ 1
end local 5 // int uch
end local 4 // char ch
19: .line 319
StackMap locals:
StackMap stack:
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
20: iload 3 /* i */
iload 2 /* slen */
if_icmplt 4
end local 3 // int i
21: .line 341
iload 1 /* length */
ireturn
end local 2 // int slen
end local 1 // int length
end local 0 // java.lang.String s
LocalVariableTable:
Start End Slot Name Signature
0 22 0 s Ljava/lang/String;
1 22 1 length I
2 22 2 slen I
3 21 3 i I
5 19 4 ch C
6 19 5 uch I
8 14 6 mask I
9 14 7 n I
MethodParameters:
Name Flags
s
static void mutf8FromString(byte[], int, java.lang.String);
descriptor: ([BILjava/lang/String;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=11, args_size=3
start local 0 // byte[] bytes
start local 1 // int offset
start local 2 // java.lang.String s
0: .line 345
iload 1 /* offset */
istore 3 /* j */
start local 3 // int j
1: .line 346
aconst_null
astore 4 /* buffer */
start local 4 // byte[] buffer
2: .line 347
aload 2 /* s */
invokevirtual java.lang.String.length:()I
istore 5 /* slen */
start local 5 // int slen
3: .line 349
iconst_0
istore 6 /* i */
start local 6 // int i
4: goto 27
5: .line 350
StackMap locals: byte[] int java.lang.String int byte[] int int
StackMap stack:
aload 2 /* s */
iload 6 /* i */
invokevirtual java.lang.String.charAt:(I)C
istore 7 /* ch */
start local 7 // char ch
6: .line 351
iload 7 /* ch */
ldc 65535
iand
istore 8 /* uch */
start local 8 // int uch
7: .line 353
iload 8 /* uch */
bipush -128
iand
ifeq 21
8: .line 354
aload 4 /* buffer */
ifnonnull 10
9: .line 355
bipush 8
newarray 8
astore 4 /* buffer */
10: .line 357
StackMap locals: int int
StackMap stack:
bipush -64
istore 9 /* mask */
start local 9 // int mask
11: .line 358
iconst_0
istore 10 /* n */
start local 10 // int n
12: .line 361
StackMap locals: int int
StackMap stack:
aload 4 /* buffer */
iload 10 /* n */
iinc 10 /* n */ 1
sipush 128
iload 8 /* uch */
bipush 63
iand
ior
i2b
bastore
13: .line 362
iload 8 /* uch */
bipush 6
ishr
istore 8 /* uch */
14: .line 363
iload 9 /* mask */
iconst_1
ishr
istore 9 /* mask */
15: .line 364
iload 8 /* uch */
iload 9 /* mask */
iand
ifne 12
16: .line 366
aload 4 /* buffer */
iload 10 /* n */
iload 9 /* mask */
iconst_1
ishl
iload 8 /* uch */
ior
i2b
bastore
17: .line 369
StackMap locals:
StackMap stack:
aload 0 /* bytes */
iload 3 /* j */
iinc 3 /* j */ 1
aload 4 /* buffer */
iload 10 /* n */
iinc 10 /* n */ -1
baload
bastore
18: .line 370
iload 10 /* n */
19: .line 368
ifge 17
end local 10 // int n
end local 9 // int mask
20: .line 371
goto 26
StackMap locals:
StackMap stack:
21: iload 8 /* uch */
ifne 25
22: .line 372
aload 0 /* bytes */
iload 3 /* j */
iinc 3 /* j */ 1
bipush -64
bastore
23: .line 373
aload 0 /* bytes */
iload 3 /* j */
iinc 3 /* j */ 1
bipush -128
bastore
24: .line 374
goto 26
25: .line 375
StackMap locals:
StackMap stack:
aload 0 /* bytes */
iload 3 /* j */
iinc 3 /* j */ 1
iload 8 /* uch */
i2b
bastore
end local 8 // int uch
end local 7 // char ch
26: .line 349
StackMap locals:
StackMap stack:
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
27: iload 6 /* i */
iload 5 /* slen */
if_icmplt 5
end local 6 // int i
28: .line 378
return
end local 5 // int slen
end local 4 // byte[] buffer
end local 3 // int j
end local 2 // java.lang.String s
end local 1 // int offset
end local 0 // byte[] bytes
LocalVariableTable:
Start End Slot Name Signature
0 29 0 bytes [B
0 29 1 offset I
0 29 2 s Ljava/lang/String;
1 29 3 j I
2 29 4 buffer [B
3 29 5 slen I
4 28 6 i I
6 26 7 ch C
7 26 8 uch I
11 20 9 mask I
12 20 10 n I
MethodParameters:
Name Flags
bytes
offset
s
public static byte[] mutf8FromString(java.lang.String);
descriptor: (Ljava/lang/String;)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 // java.lang.String string
0: .line 381
aload 0 /* string */
invokestatic jdk.internal.jimage.ImageStringsReader.mutf8FromStringLength:(Ljava/lang/String;)I
istore 1 /* length */
start local 1 // int length
1: .line 382
iload 1 /* length */
newarray 8
astore 2 /* bytes */
start local 2 // byte[] bytes
2: .line 383
aload 2 /* bytes */
iconst_0
aload 0 /* string */
invokestatic jdk.internal.jimage.ImageStringsReader.mutf8FromString:([BILjava/lang/String;)V
3: .line 385
aload 2 /* bytes */
areturn
end local 2 // byte[] bytes
end local 1 // int length
end local 0 // java.lang.String string
LocalVariableTable:
Start End Slot Name Signature
0 4 0 string Ljava/lang/String;
1 4 1 length I
2 4 2 bytes [B
MethodParameters:
Name Flags
string
}
SourceFile: "ImageStringsReader.java"