public final class com.google.common.base.Utf8
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.google.common.base.Utf8
super_class: java.lang.Object
{
public static int encodedLength(java.lang.CharSequence);
descriptor: (Ljava/lang/CharSequence;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=7, locals=5, args_size=1
start local 0 // java.lang.CharSequence sequence
0: .line 52
aload 0 /* sequence */
invokeinterface java.lang.CharSequence.length:()I
istore 1 /* utf16Length */
start local 1 // int utf16Length
1: .line 53
iload 1 /* utf16Length */
istore 2 /* utf8Length */
start local 2 // int utf8Length
2: .line 54
iconst_0
istore 3 /* i */
start local 3 // int i
3: .line 57
goto 5
4: .line 58
StackMap locals: int int int
StackMap stack:
iinc 3 /* i */ 1
5: .line 57
StackMap locals:
StackMap stack:
iload 3 /* i */
iload 1 /* utf16Length */
if_icmpge 14
aload 0 /* sequence */
iload 3 /* i */
invokeinterface java.lang.CharSequence.charAt:(I)C
sipush 128
if_icmplt 4
6: .line 62
goto 14
7: .line 63
StackMap locals:
StackMap stack:
aload 0 /* sequence */
iload 3 /* i */
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 4 /* c */
start local 4 // char c
8: .line 64
iload 4 /* c */
sipush 2048
if_icmpge 11
9: .line 65
iload 2 /* utf8Length */
bipush 127
iload 4 /* c */
isub
bipush 31
iushr
iadd
istore 2 /* utf8Length */
10: .line 66
goto 13
11: .line 67
StackMap locals: int
StackMap stack:
iload 2 /* utf8Length */
aload 0 /* sequence */
iload 3 /* i */
invokestatic com.google.common.base.Utf8.encodedLengthGeneral:(Ljava/lang/CharSequence;I)I
iadd
istore 2 /* utf8Length */
12: .line 68
goto 15
end local 4 // char c
13: .line 62
StackMap locals:
StackMap stack:
iinc 3 /* i */ 1
StackMap locals:
StackMap stack:
14: iload 3 /* i */
iload 1 /* utf16Length */
if_icmplt 7
15: .line 72
StackMap locals:
StackMap stack:
iload 2 /* utf8Length */
iload 1 /* utf16Length */
if_icmpge 19
16: .line 74
new java.lang.IllegalArgumentException
dup
17: .line 75
new java.lang.StringBuilder
dup
ldc "UTF-8 length does not fit in int: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2 /* utf8Length */
i2l
ldc 4294967296
ladd
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
18: .line 74
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
19: .line 77
StackMap locals:
StackMap stack:
iload 2 /* utf8Length */
ireturn
end local 3 // int i
end local 2 // int utf8Length
end local 1 // int utf16Length
end local 0 // java.lang.CharSequence sequence
LocalVariableTable:
Start End Slot Name Signature
0 20 0 sequence Ljava/lang/CharSequence;
1 20 1 utf16Length I
2 20 2 utf8Length I
3 20 3 i I
8 13 4 c C
MethodParameters:
Name Flags
sequence
private static int encodedLengthGeneral(java.lang.CharSequence, int);
descriptor: (Ljava/lang/CharSequence;I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 // java.lang.CharSequence sequence
start local 1 // int start
0: .line 81
aload 0 /* sequence */
invokeinterface java.lang.CharSequence.length:()I
istore 2 /* utf16Length */
start local 2 // int utf16Length
1: .line 82
iconst_0
istore 3 /* utf8Length */
start local 3 // int utf8Length
2: .line 83
iload 1 /* start */
istore 4 /* i */
start local 4 // int i
3: goto 14
4: .line 84
StackMap locals: int int int
StackMap stack:
aload 0 /* sequence */
iload 4 /* i */
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 5 /* c */
start local 5 // char c
5: .line 85
iload 5 /* c */
sipush 2048
if_icmpge 8
6: .line 86
iload 3 /* utf8Length */
bipush 127
iload 5 /* c */
isub
bipush 31
iushr
iadd
istore 3 /* utf8Length */
7: .line 87
goto 13
8: .line 88
StackMap locals: int
StackMap stack:
iinc 3 /* utf8Length */ 2
9: .line 90
ldc 55296
iload 5 /* c */
if_icmpgt 13
iload 5 /* c */
ldc 57343
if_icmpgt 13
10: .line 92
aload 0 /* sequence */
iload 4 /* i */
invokestatic java.lang.Character.codePointAt:(Ljava/lang/CharSequence;I)I
iload 5 /* c */
if_icmpne 12
11: .line 93
new java.lang.IllegalArgumentException
dup
iload 4 /* i */
invokestatic com.google.common.base.Utf8.unpairedSurrogateMsg:(I)Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
12: .line 95
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
end local 5 // char c
13: .line 83
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
14: iload 4 /* i */
iload 2 /* utf16Length */
if_icmplt 4
end local 4 // int i
15: .line 99
iload 3 /* utf8Length */
ireturn
end local 3 // int utf8Length
end local 2 // int utf16Length
end local 1 // int start
end local 0 // java.lang.CharSequence sequence
LocalVariableTable:
Start End Slot Name Signature
0 16 0 sequence Ljava/lang/CharSequence;
0 16 1 start I
1 16 2 utf16Length I
2 16 3 utf8Length I
3 15 4 i I
5 13 5 c C
MethodParameters:
Name Flags
sequence
start
public static boolean isWellFormed(byte[]);
descriptor: ([B)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 // byte[] bytes
0: .line 113
aload 0 /* bytes */
iconst_0
aload 0 /* bytes */
arraylength
invokestatic com.google.common.base.Utf8.isWellFormed:([BII)Z
ireturn
end local 0 // byte[] bytes
LocalVariableTable:
Start End Slot Name Signature
0 1 0 bytes [B
MethodParameters:
Name Flags
bytes
public static boolean isWellFormed(byte[], int, int);
descriptor: ([BII)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=3
start local 0 // byte[] bytes
start local 1 // int off
start local 2 // int len
0: .line 126
iload 1 /* off */
iload 2 /* len */
iadd
istore 3 /* end */
start local 3 // int end
1: .line 127
iload 1 /* off */
iload 3 /* end */
aload 0 /* bytes */
arraylength
invokestatic com.google.common.base.Preconditions.checkPositionIndexes:(III)V
2: .line 129
iload 1 /* off */
istore 4 /* i */
start local 4 // int i
3: goto 7
4: .line 130
StackMap locals: int int
StackMap stack:
aload 0 /* bytes */
iload 4 /* i */
baload
ifge 6
5: .line 131
aload 0 /* bytes */
iload 4 /* i */
iload 3 /* end */
invokestatic com.google.common.base.Utf8.isWellFormedSlowPath:([BII)Z
ireturn
6: .line 129
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 4 /* i */
iload 3 /* end */
if_icmplt 4
end local 4 // int i
8: .line 134
iconst_1
ireturn
end local 3 // int end
end local 2 // int len
end local 1 // int off
end local 0 // byte[] bytes
LocalVariableTable:
Start End Slot Name Signature
0 9 0 bytes [B
0 9 1 off I
0 9 2 len I
1 9 3 end I
3 8 4 i I
MethodParameters:
Name Flags
bytes
off
len
private static boolean isWellFormedSlowPath(byte[], int, int);
descriptor: ([BII)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=3
start local 0 // byte[] bytes
start local 1 // int off
start local 2 // int end
0: .line 138
iload 1 /* off */
istore 3 /* index */
start local 3 // int index
1: .line 144
StackMap locals: int
StackMap stack:
iload 3 /* index */
iload 2 /* end */
if_icmplt 3
2: .line 145
iconst_1
ireturn
3: .line 147
StackMap locals:
StackMap stack:
aload 0 /* bytes */
iload 3 /* index */
iinc 3 /* index */ 1
baload
dup
istore 4 /* byte1 */
start local 4 // int byte1
4: .line 143
ifge 1
5: .line 149
iload 4 /* byte1 */
bipush -32
if_icmpge 10
6: .line 151
iload 3 /* index */
iload 2 /* end */
if_icmpne 8
7: .line 152
iconst_0
ireturn
8: .line 156
StackMap locals: int
StackMap stack:
iload 4 /* byte1 */
bipush -62
if_icmplt 9
aload 0 /* bytes */
iload 3 /* index */
iinc 3 /* index */ 1
baload
bipush -65
if_icmple 1
9: .line 157
StackMap locals:
StackMap stack:
iconst_0
ireturn
10: .line 159
StackMap locals:
StackMap stack:
iload 4 /* byte1 */
bipush -16
if_icmpge 19
11: .line 161
iload 3 /* index */
iconst_1
iadd
iload 2 /* end */
if_icmplt 13
12: .line 162
iconst_0
ireturn
13: .line 164
StackMap locals:
StackMap stack:
aload 0 /* bytes */
iload 3 /* index */
iinc 3 /* index */ 1
baload
istore 5 /* byte2 */
start local 5 // int byte2
14: .line 165
iload 5 /* byte2 */
bipush -65
if_icmpgt 18
15: .line 167
iload 4 /* byte1 */
bipush -32
if_icmpne 16
iload 5 /* byte2 */
bipush -96
if_icmplt 18
16: .line 169
StackMap locals: int
StackMap stack:
iload 4 /* byte1 */
bipush -19
if_icmpne 17
bipush -96
iload 5 /* byte2 */
if_icmple 18
17: .line 171
StackMap locals:
StackMap stack:
aload 0 /* bytes */
iload 3 /* index */
iinc 3 /* index */ 1
baload
bipush -65
if_icmple 1
18: .line 172
StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 5 // int byte2
19: .line 176
StackMap locals:
StackMap stack:
iload 3 /* index */
iconst_2
iadd
iload 2 /* end */
if_icmplt 21
20: .line 177
iconst_0
ireturn
21: .line 179
StackMap locals:
StackMap stack:
aload 0 /* bytes */
iload 3 /* index */
iinc 3 /* index */ 1
baload
istore 5 /* byte2 */
start local 5 // int byte2
22: .line 180
iload 5 /* byte2 */
bipush -65
if_icmpgt 26
23: .line 185
iload 4 /* byte1 */
bipush 28
ishl
iload 5 /* byte2 */
bipush -112
isub
iadd
bipush 30
ishr
ifne 26
24: .line 187
aload 0 /* bytes */
iload 3 /* index */
iinc 3 /* index */ 1
baload
bipush -65
if_icmpgt 26
25: .line 189
aload 0 /* bytes */
iload 3 /* index */
iinc 3 /* index */ 1
baload
bipush -65
if_icmple 1
26: .line 190
StackMap locals: int
StackMap stack:
iconst_0
ireturn
end local 5 // int byte2
end local 4 // int byte1
end local 3 // int index
end local 2 // int end
end local 1 // int off
end local 0 // byte[] bytes
LocalVariableTable:
Start End Slot Name Signature
0 27 0 bytes [B
0 27 1 off I
0 27 2 end I
1 27 3 index I
4 27 4 byte1 I
14 19 5 byte2 I
22 27 5 byte2 I
MethodParameters:
Name Flags
bytes
off
end
private static java.lang.String unpairedSurrogateMsg(int);
descriptor: (I)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 // int i
0: .line 197
new java.lang.StringBuilder
dup
ldc "Unpaired surrogate at index "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0 /* i */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 // int i
LocalVariableTable:
Start End Slot Name Signature
0 1 0 i I
MethodParameters:
Name Flags
i
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 // com.google.common.base.Utf8 this
0: .line 200
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.google.common.base.Utf8 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/common/base/Utf8;
}
SourceFile: "Utf8.java"
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()
com.google.common.annotations.GwtCompatible(emulated = true)