public final class com.oracle.objectfile.io.Utf8
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.oracle.objectfile.io.Utf8
super_class: java.lang.Object
{
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // com.oracle.objectfile.io.Utf8 this
0: .line 36
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 37
return
end local 0 // com.oracle.objectfile.io.Utf8 this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/objectfile/io/Utf8;
public static int utf8Length(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 // java.lang.String string
0: .line 43
aload 0 /* string */
iconst_0
aload 0 /* string */
invokevirtual java.lang.String.length:()I
invokestatic com.oracle.objectfile.io.Utf8.utf8Length:(Ljava/lang/String;II)I
ireturn
end local 0 // java.lang.String string
LocalVariableTable:
Start End Slot Name Signature
0 1 0 string Ljava/lang/String;
MethodParameters:
Name Flags
string
public static int utf8Length(java.lang.String, int, int);
descriptor: (Ljava/lang/String;II)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=6, args_size=3
start local 0 // java.lang.String s
start local 1 // int beginIndex
start local 2 // int endIndex
0: .line 52
iload 1 /* beginIndex */
iflt 1
iload 2 /* endIndex */
aload 0 /* s */
invokevirtual java.lang.String.length:()I
if_icmpgt 1
iload 1 /* beginIndex */
iload 2 /* endIndex */
if_icmple 2
1: .line 53
StackMap locals:
StackMap stack:
new java.lang.StringIndexOutOfBoundsException
dup
invokespecial java.lang.StringIndexOutOfBoundsException.<init>:()V
athrow
2: .line 55
StackMap locals:
StackMap stack:
iconst_0
istore 3 /* length */
start local 3 // int length
3: .line 56
iload 1 /* beginIndex */
istore 4 /* i */
start local 4 // int i
4: goto 14
5: .line 57
StackMap locals: int int
StackMap stack:
aload 0 /* s */
iload 4 /* i */
invokevirtual java.lang.String.charAt:(I)C
istore 5 /* c */
start local 5 // int c
6: .line 58
iload 5 /* c */
iconst_1
if_icmplt 9
iload 5 /* c */
bipush 127
if_icmpgt 9
7: .line 59
iinc 3 /* length */ 1
8: .line 60
goto 13
StackMap locals: int
StackMap stack:
9: iload 5 /* c */
sipush 2047
if_icmple 12
10: .line 61
iinc 3 /* length */ 3
11: .line 62
goto 13
12: .line 63
StackMap locals:
StackMap stack:
iinc 3 /* length */ 2
end local 5 // int c
13: .line 56
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
14: iload 4 /* i */
iload 2 /* endIndex */
if_icmplt 5
end local 4 // int i
15: .line 66
iload 3 /* length */
ireturn
end local 3 // int length
end local 2 // int endIndex
end local 1 // int beginIndex
end local 0 // java.lang.String s
LocalVariableTable:
Start End Slot Name Signature
0 16 0 s Ljava/lang/String;
0 16 1 beginIndex I
0 16 2 endIndex I
3 16 3 length I
4 15 4 i I
6 13 5 c I
MethodParameters:
Name Flags
s
beginIndex
endIndex
public static void substringToUtf8(java.nio.ByteBuffer, java.lang.String, int, int, boolean);
descriptor: (Ljava/nio/ByteBuffer;Ljava/lang/String;IIZ)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=5
start local 0 // java.nio.ByteBuffer dest
start local 1 // java.lang.String source
start local 2 // int beginIndex
start local 3 // int endIndex
start local 4 // boolean zeroTerminate
0: .line 79
iload 2 /* beginIndex */
iflt 1
iload 3 /* endIndex */
aload 1 /* source */
invokevirtual java.lang.String.length:()I
if_icmpgt 1
iload 2 /* beginIndex */
iload 3 /* endIndex */
if_icmple 2
1: .line 80
StackMap locals:
StackMap stack:
new java.lang.StringIndexOutOfBoundsException
dup
invokespecial java.lang.StringIndexOutOfBoundsException.<init>:()V
athrow
2: .line 82
StackMap locals:
StackMap stack:
iload 2 /* beginIndex */
istore 5 /* i */
start local 5 // int i
3: goto 16
4: .line 83
StackMap locals: int
StackMap stack:
aload 1 /* source */
iload 5 /* i */
invokevirtual java.lang.String.charAt:(I)C
istore 6 /* c */
start local 6 // char c
5: .line 84
iload 6 /* c */
iconst_1
if_icmplt 8
iload 6 /* c */
bipush 127
if_icmpgt 8
6: .line 85
aload 0 /* dest */
iload 6 /* c */
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
7: .line 86
goto 15
StackMap locals: int
StackMap stack:
8: iload 6 /* c */
sipush 2047
if_icmple 13
9: .line 87
aload 0 /* dest */
sipush 224
iload 6 /* c */
bipush 12
ishr
i2b
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
10: .line 88
aload 0 /* dest */
sipush 128
iload 6 /* c */
sipush 4032
iand
bipush 6
ishr
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
11: .line 89
aload 0 /* dest */
sipush 128
iload 6 /* c */
bipush 63
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
12: .line 90
goto 15
13: .line 91
StackMap locals:
StackMap stack:
aload 0 /* dest */
sipush 192
iload 6 /* c */
bipush 6
ishr
i2b
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
14: .line 92
aload 0 /* dest */
sipush 128
iload 6 /* c */
bipush 63
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
end local 6 // char c
15: .line 82
StackMap locals:
StackMap stack:
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
16: iload 5 /* i */
iload 3 /* endIndex */
if_icmplt 4
end local 5 // int i
17: .line 95
iload 4 /* zeroTerminate */
ifeq 19
18: .line 96
aload 0 /* dest */
iconst_0
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
19: .line 98
StackMap locals:
StackMap stack:
return
end local 4 // boolean zeroTerminate
end local 3 // int endIndex
end local 2 // int beginIndex
end local 1 // java.lang.String source
end local 0 // java.nio.ByteBuffer dest
LocalVariableTable:
Start End Slot Name Signature
0 20 0 dest Ljava/nio/ByteBuffer;
0 20 1 source Ljava/lang/String;
0 20 2 beginIndex I
0 20 3 endIndex I
0 20 4 zeroTerminate Z
3 17 5 i I
5 15 6 c C
MethodParameters:
Name Flags
dest
source
beginIndex
endIndex
zeroTerminate
public static java.lang.String utf8ToString(boolean, java.nio.ByteBuffer);
descriptor: (ZLjava/nio/ByteBuffer;)Ljava/lang/String;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=6, args_size=2
start local 0 // boolean zeroTerminated
start local 1 // java.nio.ByteBuffer source
0: .line 111
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2 /* sb */
start local 2 // java.lang.StringBuilder sb
1: .line 112
goto 20
2: .line 113
StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 1 /* source */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
istore 3 /* c0 */
start local 3 // int c0
3: .line 114
iload 0 /* zeroTerminated */
ifeq 5
iload 3 /* c0 */
ifne 5
4: .line 115
goto 21
5: .line 117
StackMap locals: int
StackMap stack:
iload 3 /* c0 */
iconst_4
ishr
tableswitch { // 0 - 14
0: 6
1: 6
2: 6
3: 6
4: 6
5: 6
6: 6
7: 6
8: 19
9: 19
10: 19
11: 19
12: 8
13: 8
14: 13
default: 19
}
6: .line 127
StackMap locals:
StackMap stack:
aload 2 /* sb */
iload 3 /* c0 */
i2c
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
7: .line 128
goto 20
8: .line 133
StackMap locals:
StackMap stack:
aload 1 /* source */
invokevirtual java.nio.ByteBuffer.get:()B
istore 4 /* c1 */
start local 4 // int c1
9: .line 134
iload 4 /* c1 */
sipush 192
iand
sipush 128
if_icmpeq 11
10: .line 135
new java.io.CharConversionException
dup
invokespecial java.io.CharConversionException.<init>:()V
athrow
11: .line 137
StackMap locals: int
StackMap stack:
aload 2 /* sb */
iload 3 /* c0 */
bipush 31
iand
bipush 6
ishl
iload 4 /* c1 */
bipush 63
iand
ior
i2c
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
12: .line 138
goto 20
end local 4 // int c1
13: .line 142
StackMap locals:
StackMap stack:
aload 1 /* source */
invokevirtual java.nio.ByteBuffer.get:()B
istore 4 /* c1 */
start local 4 // int c1
14: .line 143
aload 1 /* source */
invokevirtual java.nio.ByteBuffer.get:()B
istore 5 /* c2 */
start local 5 // int c2
15: .line 144
iload 4 /* c1 */
sipush 192
iand
sipush 128
if_icmpne 16
iload 5 /* c2 */
sipush 192
iand
sipush 128
if_icmpeq 17
16: .line 145
StackMap locals: int int
StackMap stack:
new java.io.CharConversionException
dup
invokespecial java.io.CharConversionException.<init>:()V
athrow
17: .line 147
StackMap locals:
StackMap stack:
aload 2 /* sb */
iload 3 /* c0 */
bipush 15
iand
bipush 12
ishl
iload 4 /* c1 */
bipush 63
iand
bipush 6
ishl
ior
iload 5 /* c2 */
bipush 63
iand
ior
i2c
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
18: .line 148
goto 20
end local 5 // int c2
end local 4 // int c1
19: .line 152
StackMap locals:
StackMap stack:
new java.io.CharConversionException
dup
invokespecial java.io.CharConversionException.<init>:()V
athrow
end local 3 // int c0
20: .line 112
StackMap locals:
StackMap stack:
aload 1 /* source */
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 2
21: .line 156
StackMap locals:
StackMap stack:
aload 2 /* sb */
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 // java.lang.StringBuilder sb
end local 1 // java.nio.ByteBuffer source
end local 0 // boolean zeroTerminated
LocalVariableTable:
Start End Slot Name Signature
0 22 0 zeroTerminated Z
0 22 1 source Ljava/nio/ByteBuffer;
1 22 2 sb Ljava/lang/StringBuilder;
3 20 3 c0 I
9 13 4 c1 I
14 19 4 c1 I
15 19 5 c2 I
Exceptions:
throws java.io.CharConversionException
MethodParameters:
Name Flags
zeroTerminated
source
}
SourceFile: "Utf8.java"