final class com.google.protobuf.Utf8$SafeProcessor extends com.google.protobuf.Utf8$Processor
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.google.protobuf.Utf8$SafeProcessor
super_class: com.google.protobuf.Utf8$Processor
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // com.google.protobuf.Utf8$SafeProcessor this
0: .line 860
aload 0 /* this */
invokespecial com.google.protobuf.Utf8$Processor.<init>:()V
return
end local 0 // com.google.protobuf.Utf8$SafeProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/protobuf/Utf8$SafeProcessor;
int partialIsValidUtf8(int, byte[], int, int);
descriptor: (I[BII)I
flags: (0x0000)
Code:
stack=3, locals=8, args_size=5
start local 0 // com.google.protobuf.Utf8$SafeProcessor this
start local 1 // int state
start local 2 // byte[] bytes
start local 3 // int index
start local 4 // int limit
0: .line 863
iload 1 /* state */
ifeq 35
1: .line 871
iload 3 /* index */
iload 4 /* limit */
if_icmplt 3
2: .line 872
iload 1 /* state */
ireturn
3: .line 874
StackMap locals:
StackMap stack:
iload 1 /* state */
i2b
istore 5 /* byte1 */
start local 5 // int byte1
4: .line 876
iload 5 /* byte1 */
bipush -32
if_icmpge 8
5: .line 881
iload 5 /* byte1 */
bipush -62
if_icmplt 7
6: .line 883
aload 2 /* bytes */
iload 3 /* index */
iinc 3 /* index */ 1
baload
bipush -65
if_icmple 35
7: .line 884
StackMap locals: int
StackMap stack:
iconst_m1
ireturn
8: .line 886
StackMap locals:
StackMap stack:
iload 5 /* byte1 */
bipush -16
if_icmpge 19
9: .line 890
iload 1 /* state */
bipush 8
ishr
iconst_m1
ixor
i2b
istore 6 /* byte2 */
start local 6 // int byte2
10: .line 891
iload 6 /* byte2 */
ifne 14
11: .line 892
aload 2 /* bytes */
iload 3 /* index */
iinc 3 /* index */ 1
baload
istore 6 /* byte2 */
12: .line 893
iload 3 /* index */
iload 4 /* limit */
if_icmplt 14
13: .line 894
iload 5 /* byte1 */
iload 6 /* byte2 */
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
ireturn
14: .line 897
StackMap locals: int
StackMap stack:
iload 6 /* byte2 */
bipush -65
if_icmpgt 18
15: .line 899
iload 5 /* byte1 */
bipush -32
if_icmpne 16
iload 6 /* byte2 */
bipush -96
if_icmplt 18
16: .line 901
StackMap locals:
StackMap stack:
iload 5 /* byte1 */
bipush -19
if_icmpne 17
iload 6 /* byte2 */
bipush -96
if_icmpge 18
17: .line 903
StackMap locals:
StackMap stack:
aload 2 /* bytes */
iload 3 /* index */
iinc 3 /* index */ 1
baload
bipush -65
if_icmple 35
18: .line 904
StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 6 // int byte2
19: .line 910
StackMap locals:
StackMap stack:
iload 1 /* state */
bipush 8
ishr
iconst_m1
ixor
i2b
istore 6 /* byte2 */
start local 6 // int byte2
20: .line 911
iconst_0
istore 7 /* byte3 */
start local 7 // int byte3
21: .line 912
iload 6 /* byte2 */
ifne 25
22: .line 913
aload 2 /* bytes */
iload 3 /* index */
iinc 3 /* index */ 1
baload
istore 6 /* byte2 */
23: .line 914
iload 3 /* index */
iload 4 /* limit */
if_icmplt 26
24: .line 915
iload 5 /* byte1 */
iload 6 /* byte2 */
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
ireturn
25: .line 918
StackMap locals: int int
StackMap stack:
iload 1 /* state */
bipush 16
ishr
i2b
istore 7 /* byte3 */
26: .line 920
StackMap locals:
StackMap stack:
iload 7 /* byte3 */
ifne 30
27: .line 921
aload 2 /* bytes */
iload 3 /* index */
iinc 3 /* index */ 1
baload
istore 7 /* byte3 */
28: .line 922
iload 3 /* index */
iload 4 /* limit */
if_icmplt 30
29: .line 923
iload 5 /* byte1 */
iload 6 /* byte2 */
iload 7 /* byte3 */
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(III)I
ireturn
30: .line 931
StackMap locals:
StackMap stack:
iload 6 /* byte2 */
bipush -65
if_icmpgt 34
31: .line 936
iload 5 /* byte1 */
bipush 28
ishl
iload 6 /* byte2 */
bipush -112
isub
iadd
bipush 30
ishr
ifne 34
32: .line 938
iload 7 /* byte3 */
bipush -65
if_icmpgt 34
33: .line 940
aload 2 /* bytes */
iload 3 /* index */
iinc 3 /* index */ 1
baload
bipush -65
if_icmple 35
34: .line 941
StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 7 // int byte3
end local 6 // int byte2
end local 5 // int byte1
35: .line 946
StackMap locals:
StackMap stack:
aload 2 /* bytes */
iload 3 /* index */
iload 4 /* limit */
invokestatic com.google.protobuf.Utf8$SafeProcessor.partialIsValidUtf8:([BII)I
ireturn
end local 4 // int limit
end local 3 // int index
end local 2 // byte[] bytes
end local 1 // int state
end local 0 // com.google.protobuf.Utf8$SafeProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lcom/google/protobuf/Utf8$SafeProcessor;
0 36 1 state I
0 36 2 bytes [B
0 36 3 index I
0 36 4 limit I
4 35 5 byte1 I
10 19 6 byte2 I
20 35 6 byte2 I
21 35 7 byte3 I
MethodParameters:
Name Flags
state
bytes
index
limit
int partialIsValidUtf8Direct(int, java.nio.ByteBuffer, int, int);
descriptor: (ILjava/nio/ByteBuffer;II)I
flags: (0x0000)
Code:
stack=5, locals=5, args_size=5
start local 0 // com.google.protobuf.Utf8$SafeProcessor this
start local 1 // int state
start local 2 // java.nio.ByteBuffer buffer
start local 3 // int index
start local 4 // int limit
0: .line 952
aload 0 /* this */
iload 1 /* state */
aload 2 /* buffer */
iload 3 /* index */
iload 4 /* limit */
invokevirtual com.google.protobuf.Utf8$SafeProcessor.partialIsValidUtf8Default:(ILjava/nio/ByteBuffer;II)I
ireturn
end local 4 // int limit
end local 3 // int index
end local 2 // java.nio.ByteBuffer buffer
end local 1 // int state
end local 0 // com.google.protobuf.Utf8$SafeProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/protobuf/Utf8$SafeProcessor;
0 1 1 state I
0 1 2 buffer Ljava/nio/ByteBuffer;
0 1 3 index I
0 1 4 limit I
MethodParameters:
Name Flags
state
buffer
index
limit
java.lang.String decodeUtf8(byte[], int, int);
descriptor: ([BII)Ljava/lang/String;
flags: (0x0000)
Code:
stack=7, locals=10, args_size=4
start local 0 // com.google.protobuf.Utf8$SafeProcessor this
start local 1 // byte[] bytes
start local 2 // int index
start local 3 // int size
0: .line 958
iload 2 /* index */
iload 3 /* size */
ior
aload 1 /* bytes */
arraylength
iload 2 /* index */
isub
iload 3 /* size */
isub
ior
ifge 4
1: .line 959
new java.lang.ArrayIndexOutOfBoundsException
dup
2: .line 960
ldc "buffer length=%d, index=%d, size=%d"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 1 /* bytes */
arraylength
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 2 /* index */
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iload 3 /* size */
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
3: .line 959
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
4: .line 963
StackMap locals:
StackMap stack:
iload 2 /* index */
istore 4 /* offset */
start local 4 // int offset
5: .line 964
iload 4 /* offset */
iload 3 /* size */
iadd
istore 5 /* limit */
start local 5 // int limit
6: .line 968
iload 3 /* size */
newarray 5
astore 6 /* resultArr */
start local 6 // char[] resultArr
7: .line 969
iconst_0
istore 7 /* resultPos */
start local 7 // int resultPos
8: .line 973
goto 14
9: .line 974
StackMap locals: com.google.protobuf.Utf8$SafeProcessor byte[] int int int int char[] int
StackMap stack:
aload 1 /* bytes */
iload 4 /* offset */
baload
istore 8 /* b */
start local 8 // byte b
10: .line 975
iload 8 /* b */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
ifne 12
11: .line 976
goto 52
12: .line 978
StackMap locals: int
StackMap stack:
iinc 4 /* offset */ 1
13: .line 979
iload 8 /* b */
aload 6 /* resultArr */
iload 7 /* resultPos */
iinc 7 /* resultPos */ 1
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleOneByte:(B[CI)V
end local 8 // byte b
14: .line 973
StackMap locals:
StackMap stack:
iload 4 /* offset */
iload 5 /* limit */
if_icmplt 9
15: .line 982
goto 52
16: .line 983
StackMap locals:
StackMap stack:
aload 1 /* bytes */
iload 4 /* offset */
iinc 4 /* offset */ 1
baload
istore 8 /* byte1 */
start local 8 // byte byte1
17: .line 984
iload 8 /* byte1 */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
ifeq 27
18: .line 985
iload 8 /* byte1 */
aload 6 /* resultArr */
iload 7 /* resultPos */
iinc 7 /* resultPos */ 1
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleOneByte:(B[CI)V
19: .line 988
goto 25
20: .line 989
StackMap locals: int
StackMap stack:
aload 1 /* bytes */
iload 4 /* offset */
baload
istore 9 /* b */
start local 9 // byte b
21: .line 990
iload 9 /* b */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
ifne 23
22: .line 991
goto 52
23: .line 993
StackMap locals: int
StackMap stack:
iinc 4 /* offset */ 1
24: .line 994
iload 9 /* b */
aload 6 /* resultArr */
iload 7 /* resultPos */
iinc 7 /* resultPos */ 1
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleOneByte:(B[CI)V
end local 9 // byte b
25: .line 988
StackMap locals:
StackMap stack:
iload 4 /* offset */
iload 5 /* limit */
if_icmplt 20
26: .line 996
goto 52
StackMap locals:
StackMap stack:
27: iload 8 /* byte1 */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isTwoBytes:(B)Z
ifeq 32
28: .line 997
iload 4 /* offset */
iload 5 /* limit */
if_icmplt 30
29: .line 998
invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
athrow
30: .line 1000
StackMap locals:
StackMap stack:
iload 8 /* byte1 */
aload 1 /* bytes */
iload 4 /* offset */
iinc 4 /* offset */ 1
baload
aload 6 /* resultArr */
iload 7 /* resultPos */
iinc 7 /* resultPos */ 1
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleTwoBytes:(BB[CI)V
31: .line 1001
goto 52
StackMap locals:
StackMap stack:
32: iload 8 /* byte1 */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isThreeBytes:(B)Z
ifeq 42
33: .line 1002
iload 4 /* offset */
iload 5 /* limit */
iconst_1
isub
if_icmplt 35
34: .line 1003
invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
athrow
35: .line 1006
StackMap locals:
StackMap stack:
iload 8 /* byte1 */
36: .line 1007
aload 1 /* bytes */
iload 4 /* offset */
iinc 4 /* offset */ 1
baload
37: .line 1008
aload 1 /* bytes */
iload 4 /* offset */
iinc 4 /* offset */ 1
baload
38: .line 1009
aload 6 /* resultArr */
39: .line 1010
iload 7 /* resultPos */
iinc 7 /* resultPos */ 1
40: .line 1005
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleThreeBytes:(BBB[CI)V
41: .line 1011
goto 52
42: .line 1012
StackMap locals:
StackMap stack:
iload 4 /* offset */
iload 5 /* limit */
iconst_2
isub
if_icmplt 44
43: .line 1013
invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
athrow
44: .line 1016
StackMap locals:
StackMap stack:
iload 8 /* byte1 */
45: .line 1017
aload 1 /* bytes */
iload 4 /* offset */
iinc 4 /* offset */ 1
baload
46: .line 1018
aload 1 /* bytes */
iload 4 /* offset */
iinc 4 /* offset */ 1
baload
47: .line 1019
aload 1 /* bytes */
iload 4 /* offset */
iinc 4 /* offset */ 1
baload
48: .line 1020
aload 6 /* resultArr */
49: .line 1021
iload 7 /* resultPos */
iinc 7 /* resultPos */ 1
50: .line 1015
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleFourBytes:(BBBB[CI)V
51: .line 1023
iinc 7 /* resultPos */ 1
end local 8 // byte byte1
52: .line 982
StackMap locals:
StackMap stack:
iload 4 /* offset */
iload 5 /* limit */
if_icmplt 16
53: .line 1027
new java.lang.String
dup
aload 6 /* resultArr */
iconst_0
iload 7 /* resultPos */
invokespecial java.lang.String.<init>:([CII)V
areturn
end local 7 // int resultPos
end local 6 // char[] resultArr
end local 5 // int limit
end local 4 // int offset
end local 3 // int size
end local 2 // int index
end local 1 // byte[] bytes
end local 0 // com.google.protobuf.Utf8$SafeProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 54 0 this Lcom/google/protobuf/Utf8$SafeProcessor;
0 54 1 bytes [B
0 54 2 index I
0 54 3 size I
5 54 4 offset I
6 54 5 limit I
7 54 6 resultArr [C
8 54 7 resultPos I
10 14 8 b B
17 52 8 byte1 B
21 25 9 b B
Exceptions:
throws com.google.protobuf.InvalidProtocolBufferException
MethodParameters:
Name Flags
bytes
index
size
java.lang.String decodeUtf8Direct(java.nio.ByteBuffer, int, int);
descriptor: (Ljava/nio/ByteBuffer;II)Ljava/lang/String;
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 // com.google.protobuf.Utf8$SafeProcessor this
start local 1 // java.nio.ByteBuffer buffer
start local 2 // int index
start local 3 // int size
0: .line 1034
aload 0 /* this */
aload 1 /* buffer */
iload 2 /* index */
iload 3 /* size */
invokevirtual com.google.protobuf.Utf8$SafeProcessor.decodeUtf8Default:(Ljava/nio/ByteBuffer;II)Ljava/lang/String;
areturn
end local 3 // int size
end local 2 // int index
end local 1 // java.nio.ByteBuffer buffer
end local 0 // com.google.protobuf.Utf8$SafeProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/protobuf/Utf8$SafeProcessor;
0 1 1 buffer Ljava/nio/ByteBuffer;
0 1 2 index I
0 1 3 size I
Exceptions:
throws com.google.protobuf.InvalidProtocolBufferException
MethodParameters:
Name Flags
buffer
index
size
int encodeUtf8(java.lang.CharSequence, byte[], int, int);
descriptor: (Ljava/lang/CharSequence;[BII)I
flags: (0x0000)
Code:
stack=6, locals=12, args_size=5
start local 0 // com.google.protobuf.Utf8$SafeProcessor this
start local 1 // java.lang.CharSequence in
start local 2 // byte[] out
start local 3 // int offset
start local 4 // int length
0: .line 1039
aload 1 /* in */
invokeinterface java.lang.CharSequence.length:()I
istore 5 /* utf16Length */
start local 5 // int utf16Length
1: .line 1040
iload 3 /* offset */
istore 6 /* j */
start local 6 // int j
2: .line 1041
iconst_0
istore 7 /* i */
start local 7 // int i
3: .line 1042
iload 3 /* offset */
iload 4 /* length */
iadd
istore 8 /* limit */
start local 8 // int limit
4: .line 1045
goto 7
start local 9 // char c
5: .line 1046
StackMap locals: com.google.protobuf.Utf8$SafeProcessor java.lang.CharSequence byte[] int int int int int int int
StackMap stack:
aload 2 /* out */
iload 6 /* j */
iload 7 /* i */
iadd
iload 9 /* c */
i2b
bastore
6: .line 1045
iinc 7 /* i */ 1
end local 9 // char c
StackMap locals:
StackMap stack:
7: iload 7 /* i */
iload 5 /* utf16Length */
if_icmpge 9
iload 7 /* i */
iload 6 /* j */
iadd
iload 8 /* limit */
if_icmpge 9
aload 1 /* in */
iload 7 /* i */
invokeinterface java.lang.CharSequence.charAt:(I)C
dup
istore 9 /* c */
start local 9 // char c
8: sipush 128
if_icmplt 5
end local 9 // char c
9: .line 1048
StackMap locals:
StackMap stack:
iload 7 /* i */
iload 5 /* utf16Length */
if_icmpne 11
10: .line 1049
iload 6 /* j */
iload 5 /* utf16Length */
iadd
ireturn
11: .line 1051
StackMap locals:
StackMap stack:
iload 6 /* j */
iload 7 /* i */
iadd
istore 6 /* j */
12: .line 1052
goto 42
13: .line 1053
StackMap locals:
StackMap stack:
aload 1 /* in */
iload 7 /* i */
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 9 /* c */
start local 9 // char c
14: .line 1054
iload 9 /* c */
sipush 128
if_icmpge 17
iload 6 /* j */
iload 8 /* limit */
if_icmpge 17
15: .line 1055
aload 2 /* out */
iload 6 /* j */
iinc 6 /* j */ 1
iload 9 /* c */
i2b
bastore
16: .line 1056
goto 41
StackMap locals: int
StackMap stack:
17: iload 9 /* c */
sipush 2048
if_icmpge 21
iload 6 /* j */
iload 8 /* limit */
iconst_2
isub
if_icmpgt 21
18: .line 1057
aload 2 /* out */
iload 6 /* j */
iinc 6 /* j */ 1
sipush 960
iload 9 /* c */
bipush 6
iushr
ior
i2b
bastore
19: .line 1058
aload 2 /* out */
iload 6 /* j */
iinc 6 /* j */ 1
sipush 128
bipush 63
iload 9 /* c */
iand
ior
i2b
bastore
20: .line 1059
goto 41
StackMap locals:
StackMap stack:
21: iload 9 /* c */
ldc 55296
if_icmplt 22
ldc 57343
iload 9 /* c */
if_icmpge 27
StackMap locals:
StackMap stack:
22: iload 6 /* j */
iload 8 /* limit */
iconst_3
isub
if_icmpgt 27
23: .line 1061
aload 2 /* out */
iload 6 /* j */
iinc 6 /* j */ 1
sipush 480
iload 9 /* c */
bipush 12
iushr
ior
i2b
bastore
24: .line 1062
aload 2 /* out */
iload 6 /* j */
iinc 6 /* j */ 1
sipush 128
bipush 63
iload 9 /* c */
bipush 6
iushr
iand
ior
i2b
bastore
25: .line 1063
aload 2 /* out */
iload 6 /* j */
iinc 6 /* j */ 1
sipush 128
bipush 63
iload 9 /* c */
iand
ior
i2b
bastore
26: .line 1064
goto 41
StackMap locals:
StackMap stack:
27: iload 6 /* j */
iload 8 /* limit */
iconst_4
isub
if_icmpgt 37
28: .line 1068
iload 7 /* i */
iconst_1
iadd
aload 1 /* in */
invokeinterface java.lang.CharSequence.length:()I
if_icmpeq 30
iload 9 /* c */
aload 1 /* in */
iinc 7 /* i */ 1
iload 7 /* i */
invokeinterface java.lang.CharSequence.charAt:(I)C
dup
istore 10 /* low */
start local 10 // char low
29: invokestatic java.lang.Character.isSurrogatePair:(CC)Z
ifne 31
end local 10 // char low
30: .line 1069
StackMap locals:
StackMap stack:
new com.google.protobuf.Utf8$UnpairedSurrogateException
dup
iload 7 /* i */
iconst_1
isub
iload 5 /* utf16Length */
invokespecial com.google.protobuf.Utf8$UnpairedSurrogateException.<init>:(II)V
athrow
start local 10 // char low
31: .line 1071
StackMap locals: int
StackMap stack:
iload 9 /* c */
iload 10 /* low */
invokestatic java.lang.Character.toCodePoint:(CC)I
istore 11 /* codePoint */
start local 11 // int codePoint
32: .line 1072
aload 2 /* out */
iload 6 /* j */
iinc 6 /* j */ 1
sipush 240
iload 11 /* codePoint */
bipush 18
iushr
ior
i2b
bastore
33: .line 1073
aload 2 /* out */
iload 6 /* j */
iinc 6 /* j */ 1
sipush 128
bipush 63
iload 11 /* codePoint */
bipush 12
iushr
iand
ior
i2b
bastore
34: .line 1074
aload 2 /* out */
iload 6 /* j */
iinc 6 /* j */ 1
sipush 128
bipush 63
iload 11 /* codePoint */
bipush 6
iushr
iand
ior
i2b
bastore
35: .line 1075
aload 2 /* out */
iload 6 /* j */
iinc 6 /* j */ 1
sipush 128
bipush 63
iload 11 /* codePoint */
iand
ior
i2b
bastore
end local 11 // int codePoint
end local 10 // char low
36: .line 1076
goto 41
37: .line 1079
StackMap locals:
StackMap stack:
ldc 55296
iload 9 /* c */
if_icmpgt 40
iload 9 /* c */
ldc 57343
if_icmpgt 40
38: .line 1080
iload 7 /* i */
iconst_1
iadd
aload 1 /* in */
invokeinterface java.lang.CharSequence.length:()I
if_icmpeq 39
iload 9 /* c */
aload 1 /* in */
iload 7 /* i */
iconst_1
iadd
invokeinterface java.lang.CharSequence.charAt:(I)C
invokestatic java.lang.Character.isSurrogatePair:(CC)Z
ifne 40
39: .line 1081
StackMap locals:
StackMap stack:
new com.google.protobuf.Utf8$UnpairedSurrogateException
dup
iload 7 /* i */
iload 5 /* utf16Length */
invokespecial com.google.protobuf.Utf8$UnpairedSurrogateException.<init>:(II)V
athrow
40: .line 1083
StackMap locals:
StackMap stack:
new java.lang.ArrayIndexOutOfBoundsException
dup
new java.lang.StringBuilder
dup
ldc "Failed writing "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 9 /* c */
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc " at index "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 6 /* j */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
41: .line 1052
StackMap locals:
StackMap stack:
iinc 7 /* i */ 1
end local 9 // char c
StackMap locals:
StackMap stack:
42: iload 7 /* i */
iload 5 /* utf16Length */
if_icmplt 13
43: .line 1086
iload 6 /* j */
ireturn
end local 8 // int limit
end local 7 // int i
end local 6 // int j
end local 5 // int utf16Length
end local 4 // int length
end local 3 // int offset
end local 2 // byte[] out
end local 1 // java.lang.CharSequence in
end local 0 // com.google.protobuf.Utf8$SafeProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lcom/google/protobuf/Utf8$SafeProcessor;
0 44 1 in Ljava/lang/CharSequence;
0 44 2 out [B
0 44 3 offset I
0 44 4 length I
1 44 5 utf16Length I
2 44 6 j I
3 44 7 i I
4 44 8 limit I
5 7 9 c C
8 9 9 c C
14 42 9 c C
29 30 10 low C
31 36 10 low C
32 36 11 codePoint I
MethodParameters:
Name Flags
in
out
offset
length
void encodeUtf8Direct(java.lang.CharSequence, java.nio.ByteBuffer);
descriptor: (Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 // com.google.protobuf.Utf8$SafeProcessor this
start local 1 // java.lang.CharSequence in
start local 2 // java.nio.ByteBuffer out
0: .line 1092
aload 0 /* this */
aload 1 /* in */
aload 2 /* out */
invokevirtual com.google.protobuf.Utf8$SafeProcessor.encodeUtf8Default:(Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
1: .line 1093
return
end local 2 // java.nio.ByteBuffer out
end local 1 // java.lang.CharSequence in
end local 0 // com.google.protobuf.Utf8$SafeProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/protobuf/Utf8$SafeProcessor;
0 2 1 in Ljava/lang/CharSequence;
0 2 2 out Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
in
out
private static int partialIsValidUtf8(byte[], int, int);
descriptor: ([BII)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 // byte[] bytes
start local 1 // int index
start local 2 // int limit
0: .line 1098
goto 2
1: .line 1099
StackMap locals:
StackMap stack:
iinc 1 /* index */ 1
2: .line 1098
StackMap locals:
StackMap stack:
iload 1 /* index */
iload 2 /* limit */
if_icmpge 3
aload 0 /* bytes */
iload 1 /* index */
baload
ifge 1
3: .line 1102
StackMap locals:
StackMap stack:
iload 1 /* index */
iload 2 /* limit */
if_icmplt 4
iconst_0
goto 5
StackMap locals:
StackMap stack:
4: aload 0 /* bytes */
iload 1 /* index */
iload 2 /* limit */
invokestatic com.google.protobuf.Utf8$SafeProcessor.partialIsValidUtf8NonAscii:([BII)I
StackMap locals:
StackMap stack: int
5: ireturn
end local 2 // int limit
end local 1 // int index
end local 0 // byte[] bytes
LocalVariableTable:
Start End Slot Name Signature
0 6 0 bytes [B
0 6 1 index I
0 6 2 limit I
MethodParameters:
Name Flags
bytes
index
limit
private static int partialIsValidUtf8NonAscii(byte[], int, int);
descriptor: ([BII)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=3
start local 0 // byte[] bytes
start local 1 // int index
start local 2 // int limit
0: .line 1112
StackMap locals:
StackMap stack:
iload 1 /* index */
iload 2 /* limit */
if_icmplt 2
1: .line 1113
iconst_0
ireturn
2: .line 1115
StackMap locals:
StackMap stack:
aload 0 /* bytes */
iload 1 /* index */
iinc 1 /* index */ 1
baload
dup
istore 3 /* byte1 */
start local 3 // int byte1
3: .line 1111
ifge 0
4: .line 1117
iload 3 /* byte1 */
bipush -32
if_icmpge 9
5: .line 1120
iload 1 /* index */
iload 2 /* limit */
if_icmplt 7
6: .line 1122
iload 3 /* byte1 */
ireturn
7: .line 1127
StackMap locals: int
StackMap stack:
iload 3 /* byte1 */
bipush -62
if_icmplt 8
aload 0 /* bytes */
iload 1 /* index */
iinc 1 /* index */ 1
baload
bipush -65
if_icmple 0
8: .line 1128
StackMap locals:
StackMap stack:
iconst_m1
ireturn
9: .line 1130
StackMap locals:
StackMap stack:
iload 3 /* byte1 */
bipush -16
if_icmpge 18
10: .line 1133
iload 1 /* index */
iload 2 /* limit */
iconst_1
isub
if_icmplt 12
11: .line 1134
aload 0 /* bytes */
iload 1 /* index */
iload 2 /* limit */
invokestatic com.google.protobuf.Utf8.incompleteStateFor:([BII)I
ireturn
12: .line 1136
StackMap locals:
StackMap stack:
aload 0 /* bytes */
iload 1 /* index */
iinc 1 /* index */ 1
baload
dup
istore 4 /* byte2 */
start local 4 // int byte2
13: bipush -65
if_icmpgt 17
14: .line 1138
iload 3 /* byte1 */
bipush -32
if_icmpne 15
iload 4 /* byte2 */
bipush -96
if_icmplt 17
15: .line 1140
StackMap locals: int
StackMap stack:
iload 3 /* byte1 */
bipush -19
if_icmpne 16
iload 4 /* byte2 */
bipush -96
if_icmpge 17
16: .line 1142
StackMap locals:
StackMap stack:
aload 0 /* bytes */
iload 1 /* index */
iinc 1 /* index */ 1
baload
bipush -65
if_icmple 0
17: .line 1143
StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 4 // int byte2
18: .line 1148
StackMap locals:
StackMap stack:
iload 1 /* index */
iload 2 /* limit */
iconst_2
isub
if_icmplt 20
19: .line 1149
aload 0 /* bytes */
iload 1 /* index */
iload 2 /* limit */
invokestatic com.google.protobuf.Utf8.incompleteStateFor:([BII)I
ireturn
20: .line 1151
StackMap locals:
StackMap stack:
aload 0 /* bytes */
iload 1 /* index */
iinc 1 /* index */ 1
baload
dup
istore 4 /* byte2 */
start local 4 // int byte2
21: bipush -65
if_icmpgt 25
22: .line 1156
iload 3 /* byte1 */
bipush 28
ishl
iload 4 /* byte2 */
bipush -112
isub
iadd
bipush 30
ishr
ifne 25
23: .line 1158
aload 0 /* bytes */
iload 1 /* index */
iinc 1 /* index */ 1
baload
bipush -65
if_icmpgt 25
24: .line 1160
aload 0 /* bytes */
iload 1 /* index */
iinc 1 /* index */ 1
baload
bipush -65
if_icmple 0
25: .line 1161
StackMap locals: int
StackMap stack:
iconst_m1
ireturn
end local 4 // int byte2
end local 3 // int byte1
end local 2 // int limit
end local 1 // int index
end local 0 // byte[] bytes
LocalVariableTable:
Start End Slot Name Signature
0 26 0 bytes [B
0 26 1 index I
0 26 2 limit I
3 26 3 byte1 I
13 18 4 byte2 I
21 26 4 byte2 I
MethodParameters:
Name Flags
bytes
index
limit
}
SourceFile: "Utf8.java"
NestHost: com.google.protobuf.Utf8
InnerClasses:
private DecodeUtil = com.google.protobuf.Utf8$DecodeUtil of com.google.protobuf.Utf8
abstract Processor = com.google.protobuf.Utf8$Processor of com.google.protobuf.Utf8
final SafeProcessor = com.google.protobuf.Utf8$SafeProcessor of com.google.protobuf.Utf8
UnpairedSurrogateException = com.google.protobuf.Utf8$UnpairedSurrogateException of com.google.protobuf.Utf8