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 45
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 46
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 47
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 51
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 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 56
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 60
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 64
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 68
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 72
ldc "/"
iload 2 /* seed */
invokestatic jdk.internal.jimage.ImageStringsReader.unmaskedHashCode:(Ljava/lang/String;I)I
istore 2 /* seed */
1: .line 73
aload 0 /* module */
iload 2 /* seed */
invokestatic jdk.internal.jimage.ImageStringsReader.unmaskedHashCode:(Ljava/lang/String;I)I
istore 2 /* seed */
2: .line 74
ldc "/"
iload 2 /* seed */
invokestatic jdk.internal.jimage.ImageStringsReader.unmaskedHashCode:(Ljava/lang/String;I)I
istore 2 /* seed */
3: .line 75
aload 1 /* name */
iload 2 /* seed */
invokestatic jdk.internal.jimage.ImageStringsReader.unmaskedHashCode:(Ljava/lang/String;I)I
istore 2 /* seed */
4: .line 76
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=9, args_size=2
start local 0 // java.lang.String s
start local 1 // int seed
0: .line 80
aload 0 /* s */
invokevirtual java.lang.String.length:()I
istore 2 /* slen */
start local 2 // int slen
1: .line 81
aconst_null
astore 3 /* buffer */
start local 3 // byte[] buffer
2: .line 83
iconst_0
istore 4 /* i */
start local 4 // int i
3: goto 26
4: .line 84
StackMap locals: int byte[] int
StackMap stack:
aload 0 /* s */
iload 4 /* i */
invokevirtual java.lang.String.charAt:(I)C
istore 5 /* ch */
start local 5 // char ch
5: .line 85
iload 5 /* ch */
ldc 65535
iand
istore 6 /* uch */
start local 6 // int uch
6: .line 87
iload 6 /* uch */
bipush -128
iand
ifeq 20
7: .line 88
aload 3 /* buffer */
ifnonnull 9
8: .line 89
bipush 8
newarray 8
astore 3 /* buffer */
9: .line 91
StackMap locals: int int
StackMap stack:
bipush -64
istore 7 /* mask */
start local 7 // int mask
10: .line 92
iconst_0
istore 8 /* n */
start local 8 // int n
11: .line 95
StackMap locals: int int
StackMap stack:
aload 3 /* buffer */
iload 8 /* n */
iinc 8 /* n */ 1
sipush 128
iload 6 /* uch */
bipush 63
iand
ior
i2b
bastore
12: .line 96
iload 6 /* uch */
bipush 6
ishr
istore 6 /* uch */
13: .line 97
iload 7 /* mask */
iconst_1
ishr
istore 7 /* mask */
14: .line 98
iload 6 /* uch */
iload 7 /* mask */
iand
ifne 11
15: .line 100
aload 3 /* buffer */
iload 8 /* n */
iload 7 /* mask */
iconst_1
ishl
iload 6 /* uch */
ior
i2b
bastore
16: .line 103
StackMap locals:
StackMap stack:
iload 1 /* seed */
ldc 16777619
imul
aload 3 /* buffer */
iload 8 /* n */
iinc 8 /* n */ -1
baload
sipush 255
iand
ixor
istore 1 /* seed */
17: .line 104
iload 8 /* n */
18: .line 102
ifge 16
end local 8 // int n
end local 7 // int mask
19: .line 105
goto 25
StackMap locals:
StackMap stack:
20: iload 6 /* uch */
ifne 24
21: .line 106
iload 1 /* seed */
ldc 16777619
imul
sipush 192
ixor
istore 1 /* seed */
22: .line 107
iload 1 /* seed */
ldc 16777619
imul
sipush 128
ixor
istore 1 /* seed */
23: .line 108
goto 25
24: .line 109
StackMap locals:
StackMap stack:
iload 1 /* seed */
ldc 16777619
imul
iload 6 /* uch */
ixor
istore 1 /* seed */
end local 6 // int uch
end local 5 // char ch
25: .line 83
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
26: iload 4 /* i */
iload 2 /* slen */
if_icmplt 4
end local 4 // int i
27: .line 112
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 28 0 s Ljava/lang/String;
0 28 1 seed I
1 28 2 slen I
2 28 3 buffer [B
3 27 4 i I
5 25 5 ch C
6 25 6 uch I
10 19 7 mask I
11 19 8 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 116
iconst_0
istore 3 /* length */
start local 3 // int length
1: .line 118
iload 1 /* offset */
istore 4 /* i */
start local 4 // int i
2: goto 9
3: .line 119
StackMap locals: int int
StackMap stack:
aload 0 /* bytes */
iload 4 /* i */
baload
istore 5 /* ch */
start local 5 // byte ch
4: .line 121
iload 5 /* ch */
ifne 6
5: .line 122
goto 10
6: .line 125
StackMap locals: int
StackMap stack:
iload 5 /* ch */
sipush 192
iand
sipush 128
if_icmpeq 8
7: .line 126
iinc 3 /* length */ 1
end local 5 // byte ch
8: .line 118
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 130
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 134
iconst_0
istore 4 /* j */
start local 4 // int j
1: .line 136
iload 2 /* offset */
istore 5 /* i */
start local 5 // int i
2: goto 23
3: .line 137
StackMap locals: int int
StackMap stack:
aload 1 /* bytes */
iload 5 /* i */
baload
istore 6 /* ch */
start local 6 // byte ch
4: .line 139
iload 6 /* ch */
ifne 6
5: .line 140
goto 24
6: .line 143
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 144
iload 6 /* ch */
bipush 127
iand
istore 8 /* uch */
start local 8 // int uch
10: .line 146
iload 7 /* is_unicode */
ifeq 21
11: .line 147
bipush 64
istore 9 /* mask */
start local 9 // int mask
12: .line 149
goto 18
13: .line 150
StackMap locals: int int int
StackMap stack:
aload 1 /* bytes */
iinc 5 /* i */ 1
iload 5 /* i */
baload
istore 6 /* ch */
14: .line 152
iload 6 /* ch */
sipush 192
iand
sipush 128
if_icmpeq 16
15: .line 153
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 156
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 157
iload 9 /* mask */
iconst_5
ishl
istore 9 /* mask */
18: .line 149
StackMap locals:
StackMap stack:
iload 8 /* uch */
iload 9 /* mask */
iand
ifne 13
19: .line 160
iload 8 /* uch */
ldc 65535
iand
iload 8 /* uch */
if_icmpeq 21
20: .line 161
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 165
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 136
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 167
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 170
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 171
iload 3 /* length */
newarray 5
astore 4 /* chars */
start local 4 // char[] chars
2: .line 174
aload 4 /* chars */
aload 0 /* bytes */
iload 1 /* offset */
iload 2 /* count */
invokestatic jdk.internal.jimage.ImageStringsReader.charsFromMUTF8:([C[BII)V
3: .line 175
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 176
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 179
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 183
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
static int charsFromByteBufferLength(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 // java.nio.ByteBuffer buffer
0: .line 187
iconst_0
istore 1 /* length */
start local 1 // int length
1: .line 189
goto 7
2: .line 190
StackMap locals: int
StackMap stack:
aload 0 /* buffer */
invokevirtual java.nio.ByteBuffer.get:()B
istore 2 /* ch */
start local 2 // byte ch
3: .line 192
iload 2 /* ch */
ifne 5
4: .line 193
iload 1 /* length */
ireturn
5: .line 196
StackMap locals: int
StackMap stack:
iload 2 /* ch */
sipush 192
iand
sipush 128
if_icmpeq 7
6: .line 197
iinc 1 /* length */ 1
end local 2 // byte ch
7: .line 189
StackMap locals:
StackMap stack:
aload 0 /* buffer */
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 2
8: .line 201
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 1 // int length
end local 0 // java.nio.ByteBuffer buffer
LocalVariableTable:
Start End Slot Name Signature
0 9 0 buffer Ljava/nio/ByteBuffer;
1 9 1 length I
3 7 2 ch B
MethodParameters:
Name Flags
buffer
static void charsFromByteBuffer(char[], java.nio.ByteBuffer);
descriptor: ([CLjava/nio/ByteBuffer;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=7, args_size=2
start local 0 // char[] chars
start local 1 // java.nio.ByteBuffer buffer
0: .line 205
iconst_0
istore 2 /* j */
start local 2 // int j
1: .line 207
goto 25
2: .line 208
StackMap locals: int
StackMap stack:
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.get:()B
istore 3 /* ch */
start local 3 // byte ch
3: .line 210
iload 3 /* ch */
ifne 5
4: .line 211
return
5: .line 214
StackMap locals: int
StackMap stack:
iload 3 /* ch */
sipush 128
iand
ifeq 6
iconst_1
goto 7
StackMap locals:
StackMap stack:
6: iconst_0
StackMap locals:
StackMap stack: int
7: istore 4 /* is_unicode */
start local 4 // boolean is_unicode
8: .line 215
iload 3 /* ch */
bipush 127
iand
istore 5 /* uch */
start local 5 // int uch
9: .line 217
iload 4 /* is_unicode */
ifeq 20
10: .line 218
bipush 64
istore 6 /* mask */
start local 6 // int mask
11: .line 220
goto 19
12: .line 221
StackMap locals: int int int
StackMap stack:
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.get:()B
istore 3 /* ch */
13: .line 223
iload 3 /* ch */
sipush 192
iand
sipush 128
if_icmpeq 17
14: .line 224
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
15: .line 225
iload 3 /* ch */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: .line 224
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
17: .line 228
StackMap locals:
StackMap stack:
iload 5 /* uch */
iload 6 /* mask */
iconst_m1
ixor
iand
bipush 6
ishl
iload 3 /* ch */
bipush 63
iand
ior
istore 5 /* uch */
18: .line 229
iload 6 /* mask */
iconst_5
ishl
istore 6 /* mask */
19: .line 220
StackMap locals:
StackMap stack:
iload 5 /* uch */
iload 6 /* mask */
iand
ifne 12
end local 6 // int mask
20: .line 233
StackMap locals:
StackMap stack:
iload 5 /* uch */
ldc 65535
iand
iload 5 /* uch */
if_icmpeq 24
21: .line 234
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
22: .line 235
iload 5 /* uch */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
23: .line 234
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
24: .line 238
StackMap locals:
StackMap stack:
aload 0 /* chars */
iload 2 /* j */
iinc 2 /* j */ 1
iload 5 /* uch */
i2c
castore
end local 5 // int uch
end local 4 // boolean is_unicode
end local 3 // byte ch
25: .line 207
StackMap locals:
StackMap stack:
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 2
26: .line 241
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 2 // int j
end local 1 // java.nio.ByteBuffer buffer
end local 0 // char[] chars
LocalVariableTable:
Start End Slot Name Signature
0 27 0 chars [C
0 27 1 buffer Ljava/nio/ByteBuffer;
1 27 2 j I
3 25 3 ch B
8 25 4 is_unicode Z
9 25 5 uch I
11 20 6 mask I
MethodParameters:
Name Flags
chars
buffer
public static java.lang.String stringFromByteBuffer(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=1
start local 0 // java.nio.ByteBuffer buffer
0: .line 245
aload 0 /* buffer */
invokestatic jdk.internal.jimage.ImageStringsReader.charsFromByteBufferLength:(Ljava/nio/ByteBuffer;)I
istore 1 /* length */
start local 1 // int length
1: .line 246
aload 0 /* buffer */
invokevirtual java.nio.ByteBuffer.rewind:()Ljava/nio/ByteBuffer;
pop
2: .line 247
iload 1 /* length */
newarray 5
astore 2 /* chars */
start local 2 // char[] chars
3: .line 248
aload 2 /* chars */
aload 0 /* buffer */
invokestatic jdk.internal.jimage.ImageStringsReader.charsFromByteBuffer:([CLjava/nio/ByteBuffer;)V
4: .line 250
new java.lang.String
dup
aload 2 /* chars */
invokespecial java.lang.String.<init>:([C)V
areturn
end local 2 // char[] chars
end local 1 // int length
end local 0 // java.nio.ByteBuffer buffer
LocalVariableTable:
Start End Slot Name Signature
0 5 0 buffer Ljava/nio/ByteBuffer;
1 5 1 length I
3 5 2 chars [C
MethodParameters:
Name Flags
buffer
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 254
iconst_0
istore 1 /* length */
start local 1 // int length
1: .line 255
aload 0 /* s */
invokevirtual java.lang.String.length:()I
istore 2 /* slen */
start local 2 // int slen
2: .line 257
iconst_0
istore 3 /* i */
start local 3 // int i
3: goto 20
4: .line 258
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 259
iload 4 /* ch */
ldc 65535
iand
istore 5 /* uch */
start local 5 // int uch
6: .line 261
iload 5 /* uch */
bipush -128
iand
ifeq 15
7: .line 262
bipush -64
istore 6 /* mask */
start local 6 // int mask
8: .line 263
iconst_0
istore 7 /* n */
start local 7 // int n
9: .line 266
StackMap locals: java.lang.String int int int int int int int
StackMap stack:
iinc 7 /* n */ 1
10: .line 267
iload 5 /* uch */
bipush 6
ishr
istore 5 /* uch */
11: .line 268
iload 6 /* mask */
iconst_1
ishr
istore 6 /* mask */
12: .line 269
iload 5 /* uch */
iload 6 /* mask */
iand
ifne 9
13: .line 271
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 272
goto 19
StackMap locals:
StackMap stack:
15: iload 5 /* uch */
ifne 18
16: .line 273
iinc 1 /* length */ 2
17: .line 274
goto 19
18: .line 275
StackMap locals:
StackMap stack:
iinc 1 /* length */ 1
end local 5 // int uch
end local 4 // char ch
19: .line 257
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 279
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 283
iload 1 /* offset */
istore 3 /* j */
start local 3 // int j
1: .line 284
aconst_null
astore 4 /* buffer */
start local 4 // byte[] buffer
2: .line 285
aload 2 /* s */
invokevirtual java.lang.String.length:()I
istore 5 /* slen */
start local 5 // int slen
3: .line 287
iconst_0
istore 6 /* i */
start local 6 // int i
4: goto 27
5: .line 288
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 289
iload 7 /* ch */
ldc 65535
iand
istore 8 /* uch */
start local 8 // int uch
7: .line 291
iload 8 /* uch */
bipush -128
iand
ifeq 21
8: .line 292
aload 4 /* buffer */
ifnonnull 10
9: .line 293
bipush 8
newarray 8
astore 4 /* buffer */
10: .line 295
StackMap locals: int int
StackMap stack:
bipush -64
istore 9 /* mask */
start local 9 // int mask
11: .line 296
iconst_0
istore 10 /* n */
start local 10 // int n
12: .line 299
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 300
iload 8 /* uch */
bipush 6
ishr
istore 8 /* uch */
14: .line 301
iload 9 /* mask */
iconst_1
ishr
istore 9 /* mask */
15: .line 302
iload 8 /* uch */
iload 9 /* mask */
iand
ifne 12
16: .line 304
aload 4 /* buffer */
iload 10 /* n */
iload 9 /* mask */
iconst_1
ishl
iload 8 /* uch */
ior
i2b
bastore
17: .line 307
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 308
iload 10 /* n */
19: .line 306
ifge 17
end local 10 // int n
end local 9 // int mask
20: .line 309
goto 26
StackMap locals:
StackMap stack:
21: iload 8 /* uch */
ifne 25
22: .line 310
aload 0 /* bytes */
iload 3 /* j */
iinc 3 /* j */ 1
bipush -64
bastore
23: .line 311
aload 0 /* bytes */
iload 3 /* j */
iinc 3 /* j */ 1
bipush -128
bastore
24: .line 312
goto 26
25: .line 313
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 287
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 316
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 319
aload 0 /* string */
invokestatic jdk.internal.jimage.ImageStringsReader.mutf8FromStringLength:(Ljava/lang/String;)I
istore 1 /* length */
start local 1 // int length
1: .line 320
iload 1 /* length */
newarray 8
astore 2 /* bytes */
start local 2 // byte[] bytes
2: .line 321
aload 2 /* bytes */
iconst_0
aload 0 /* string */
invokestatic jdk.internal.jimage.ImageStringsReader.mutf8FromString:([BILjava/lang/String;)V
3: .line 323
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"