class sun.reflect.UTF8
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.reflect.UTF8
super_class: java.lang.Object
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // sun.reflect.UTF8 this
0: .line 32
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // sun.reflect.UTF8 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/reflect/UTF8;
static byte[] encode(java.lang.String);
descriptor: (Ljava/lang/String;)[B
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=6, args_size=1
start local 0 // java.lang.String str
0: .line 35
aload 0 /* str */
invokevirtual java.lang.String.length:()I
istore 1 /* len */
start local 1 // int len
1: .line 36
aload 0 /* str */
invokestatic sun.reflect.UTF8.utf8Length:(Ljava/lang/String;)I
newarray 8
astore 2 /* res */
start local 2 // byte[] res
2: .line 37
iconst_0
istore 3 /* utf8Idx */
start local 3 // int utf8Idx
3: .line 39
iconst_0
istore 4 /* i */
start local 4 // int i
4: goto 18
5: .line 40
StackMap locals: java.lang.String int byte[] int int
StackMap stack:
aload 0 /* str */
iload 4 /* i */
invokevirtual java.lang.String.charAt:(I)C
ldc 65535
iand
istore 5 /* c */
start local 5 // int c
6: .line 41
iload 5 /* c */
iconst_1
if_icmplt 9
iload 5 /* c */
bipush 127
if_icmpgt 9
7: .line 42
aload 2 /* res */
iload 3 /* utf8Idx */
iinc 3 /* utf8Idx */ 1
iload 5 /* c */
i2b
bastore
8: .line 43
goto 17
StackMap locals: int
StackMap stack:
9: iload 5 /* c */
ifeq 11
10: .line 44
iload 5 /* c */
sipush 128
if_icmplt 14
iload 5 /* c */
sipush 2047
if_icmpgt 14
11: .line 45
StackMap locals:
StackMap stack:
aload 2 /* res */
iload 3 /* utf8Idx */
iinc 3 /* utf8Idx */ 1
sipush 192
iload 5 /* c */
bipush 6
ishr
iadd
i2b
bastore
12: .line 46
aload 2 /* res */
iload 3 /* utf8Idx */
iinc 3 /* utf8Idx */ 1
sipush 128
iload 5 /* c */
bipush 63
iand
iadd
i2b
bastore
13: .line 47
goto 17
14: .line 48
StackMap locals:
StackMap stack:
aload 2 /* res */
iload 3 /* utf8Idx */
iinc 3 /* utf8Idx */ 1
sipush 224
iload 5 /* c */
bipush 12
ishr
iadd
i2b
bastore
15: .line 49
aload 2 /* res */
iload 3 /* utf8Idx */
iinc 3 /* utf8Idx */ 1
sipush 128
iload 5 /* c */
bipush 6
ishr
bipush 63
iand
iadd
i2b
bastore
16: .line 50
aload 2 /* res */
iload 3 /* utf8Idx */
iinc 3 /* utf8Idx */ 1
sipush 128
iload 5 /* c */
bipush 63
iand
iadd
i2b
bastore
end local 5 // int c
17: .line 39
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
18: iload 4 /* i */
iload 1 /* len */
if_icmplt 5
end local 4 // int i
19: .line 53
goto 24
StackMap locals: java.lang.String int byte[] int
StackMap stack: java.lang.ArrayIndexOutOfBoundsException
20: pop
21: .line 54
new java.lang.InternalError
dup
22: .line 55
ldc "Bug in sun.reflect bootstrap UTF-8 encoder"
23: .line 54
invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
athrow
24: .line 57
StackMap locals:
StackMap stack:
aload 2 /* res */
areturn
end local 3 // int utf8Idx
end local 2 // byte[] res
end local 1 // int len
end local 0 // java.lang.String str
LocalVariableTable:
Start End Slot Name Signature
0 25 0 str Ljava/lang/String;
1 25 1 len I
2 25 2 res [B
3 25 3 utf8Idx I
4 19 4 i I
6 17 5 c I
Exception table:
from to target type
3 19 20 Class java.lang.ArrayIndexOutOfBoundsException
MethodParameters:
Name Flags
str
private static int utf8Length(java.lang.String);
descriptor: (Ljava/lang/String;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=1
start local 0 // java.lang.String str
0: .line 61
aload 0 /* str */
invokevirtual java.lang.String.length:()I
istore 1 /* len */
start local 1 // int len
1: .line 62
iconst_0
istore 2 /* utf8Len */
start local 2 // int utf8Len
2: .line 63
iconst_0
istore 3 /* i */
start local 3 // int i
3: goto 14
4: .line 64
StackMap locals: int int int
StackMap stack:
aload 0 /* str */
iload 3 /* i */
invokevirtual java.lang.String.charAt:(I)C
ldc 65535
iand
istore 4 /* c */
start local 4 // int c
5: .line 65
iload 4 /* c */
iconst_1
if_icmplt 8
iload 4 /* c */
bipush 127
if_icmpgt 8
6: .line 66
iinc 2 /* utf8Len */ 1
7: .line 67
goto 13
StackMap locals: int
StackMap stack:
8: iload 4 /* c */
ifeq 10
9: .line 68
iload 4 /* c */
sipush 128
if_icmplt 12
iload 4 /* c */
sipush 2047
if_icmpgt 12
10: .line 69
StackMap locals:
StackMap stack:
iinc 2 /* utf8Len */ 2
11: .line 70
goto 13
12: .line 71
StackMap locals:
StackMap stack:
iinc 2 /* utf8Len */ 3
end local 4 // int c
13: .line 63
StackMap locals:
StackMap stack:
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
14: iload 3 /* i */
iload 1 /* len */
if_icmplt 4
end local 3 // int i
15: .line 74
iload 2 /* utf8Len */
ireturn
end local 2 // int utf8Len
end local 1 // int len
end local 0 // java.lang.String str
LocalVariableTable:
Start End Slot Name Signature
0 16 0 str Ljava/lang/String;
1 16 1 len I
2 16 2 utf8Len I
3 15 3 i I
5 13 4 c I
MethodParameters:
Name Flags
str
}
SourceFile: "UTF8.java"