abstract class com.google.protobuf.Utf8$Processor
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: com.google.protobuf.Utf8$Processor
super_class: java.lang.Object
{
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 // com.google.protobuf.Utf8$Processor this
0: .line 380
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.google.protobuf.Utf8$Processor this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/protobuf/Utf8$Processor;
final boolean isValidUtf8(byte[], int, int);
descriptor: ([BII)Z
flags: (0x0010) ACC_FINAL
Code:
stack=5, locals=4, args_size=4
start local 0 // com.google.protobuf.Utf8$Processor this
start local 1 // byte[] bytes
start local 2 // int index
start local 3 // int limit
0: .line 390
aload 0 /* this */
iconst_0
aload 1 /* bytes */
iload 2 /* index */
iload 3 /* limit */
invokevirtual com.google.protobuf.Utf8$Processor.partialIsValidUtf8:(I[BII)I
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 3 // int limit
end local 2 // int index
end local 1 // byte[] bytes
end local 0 // com.google.protobuf.Utf8$Processor this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/protobuf/Utf8$Processor;
0 2 1 bytes [B
0 2 2 index I
0 2 3 limit I
MethodParameters:
Name Flags
bytes
index
limit
abstract int partialIsValidUtf8(int, byte[], int, int);
descriptor: (I[BII)I
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
state
bytes
index
limit
final boolean isValidUtf8(java.nio.ByteBuffer, int, int);
descriptor: (Ljava/nio/ByteBuffer;II)Z
flags: (0x0010) ACC_FINAL
Code:
stack=5, locals=4, args_size=4
start local 0 // com.google.protobuf.Utf8$Processor this
start local 1 // java.nio.ByteBuffer buffer
start local 2 // int index
start local 3 // int limit
0: .line 417
aload 0 /* this */
iconst_0
aload 1 /* buffer */
iload 2 /* index */
iload 3 /* limit */
invokevirtual com.google.protobuf.Utf8$Processor.partialIsValidUtf8:(ILjava/nio/ByteBuffer;II)I
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 3 // int limit
end local 2 // int index
end local 1 // java.nio.ByteBuffer buffer
end local 0 // com.google.protobuf.Utf8$Processor this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/google/protobuf/Utf8$Processor;
0 2 1 buffer Ljava/nio/ByteBuffer;
0 2 2 index I
0 2 3 limit I
MethodParameters:
Name Flags
buffer
index
limit
final int partialIsValidUtf8(int, java.nio.ByteBuffer, int, int);
descriptor: (ILjava/nio/ByteBuffer;II)I
flags: (0x0010) ACC_FINAL
Code:
stack=6, locals=6, args_size=5
start local 0 // com.google.protobuf.Utf8$Processor 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 428
aload 2 /* buffer */
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 3
1: .line 429
aload 2 /* buffer */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
istore 5 /* offset */
start local 5 // int offset
2: .line 430
aload 0 /* this */
iload 1 /* state */
aload 2 /* buffer */
invokevirtual java.nio.ByteBuffer.array:()[B
iload 5 /* offset */
iload 3 /* index */
iadd
iload 5 /* offset */
iload 4 /* limit */
iadd
invokevirtual com.google.protobuf.Utf8$Processor.partialIsValidUtf8:(I[BII)I
ireturn
end local 5 // int offset
3: .line 431
StackMap locals:
StackMap stack:
aload 2 /* buffer */
invokevirtual java.nio.ByteBuffer.isDirect:()Z
ifeq 5
4: .line 432
aload 0 /* this */
iload 1 /* state */
aload 2 /* buffer */
iload 3 /* index */
iload 4 /* limit */
invokevirtual com.google.protobuf.Utf8$Processor.partialIsValidUtf8Direct:(ILjava/nio/ByteBuffer;II)I
ireturn
5: .line 434
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 1 /* state */
aload 2 /* buffer */
iload 3 /* index */
iload 4 /* limit */
invokevirtual com.google.protobuf.Utf8$Processor.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$Processor this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/protobuf/Utf8$Processor;
0 6 1 state I
0 6 2 buffer Ljava/nio/ByteBuffer;
0 6 3 index I
0 6 4 limit I
2 3 5 offset I
MethodParameters:
Name Flags
state final
buffer final
index
limit final
abstract int partialIsValidUtf8Direct(int, java.nio.ByteBuffer, int, int);
descriptor: (ILjava/nio/ByteBuffer;II)I
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
state final
buffer final
index
limit final
final int partialIsValidUtf8Default(int, java.nio.ByteBuffer, int, int);
descriptor: (ILjava/nio/ByteBuffer;II)I
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=8, args_size=5
start local 0 // com.google.protobuf.Utf8$Processor 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 448
iload 1 /* state */
ifeq 35
1: .line 456
iload 3 /* index */
iload 4 /* limit */
if_icmplt 3
2: .line 457
iload 1 /* state */
ireturn
3: .line 460
StackMap locals:
StackMap stack:
iload 1 /* state */
i2b
istore 5 /* byte1 */
start local 5 // byte byte1
4: .line 462
iload 5 /* byte1 */
bipush -32
if_icmpge 8
5: .line 467
iload 5 /* byte1 */
bipush -62
if_icmplt 7
6: .line 469
aload 2 /* buffer */
iload 3 /* index */
iinc 3 /* index */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
bipush -65
if_icmple 35
7: .line 470
StackMap locals: int
StackMap stack:
iconst_m1
ireturn
8: .line 472
StackMap locals:
StackMap stack:
iload 5 /* byte1 */
bipush -16
if_icmpge 19
9: .line 476
iload 1 /* state */
bipush 8
ishr
iconst_m1
ixor
i2b
istore 6 /* byte2 */
start local 6 // byte byte2
10: .line 477
iload 6 /* byte2 */
ifne 14
11: .line 478
aload 2 /* buffer */
iload 3 /* index */
iinc 3 /* index */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 6 /* byte2 */
12: .line 479
iload 3 /* index */
iload 4 /* limit */
if_icmplt 14
13: .line 480
iload 5 /* byte1 */
iload 6 /* byte2 */
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
ireturn
14: .line 483
StackMap locals: int
StackMap stack:
iload 6 /* byte2 */
bipush -65
if_icmpgt 18
15: .line 485
iload 5 /* byte1 */
bipush -32
if_icmpne 16
iload 6 /* byte2 */
bipush -96
if_icmplt 18
16: .line 487
StackMap locals:
StackMap stack:
iload 5 /* byte1 */
bipush -19
if_icmpne 17
iload 6 /* byte2 */
bipush -96
if_icmpge 18
17: .line 489
StackMap locals:
StackMap stack:
aload 2 /* buffer */
iload 3 /* index */
iinc 3 /* index */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
bipush -65
if_icmple 35
18: .line 490
StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 6 // byte byte2
19: .line 496
StackMap locals:
StackMap stack:
iload 1 /* state */
bipush 8
ishr
iconst_m1
ixor
i2b
istore 6 /* byte2 */
start local 6 // byte byte2
20: .line 497
iconst_0
istore 7 /* byte3 */
start local 7 // byte byte3
21: .line 498
iload 6 /* byte2 */
ifne 25
22: .line 499
aload 2 /* buffer */
iload 3 /* index */
iinc 3 /* index */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 6 /* byte2 */
23: .line 500
iload 3 /* index */
iload 4 /* limit */
if_icmplt 26
24: .line 501
iload 5 /* byte1 */
iload 6 /* byte2 */
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
ireturn
25: .line 504
StackMap locals: int int
StackMap stack:
iload 1 /* state */
bipush 16
ishr
i2b
istore 7 /* byte3 */
26: .line 506
StackMap locals:
StackMap stack:
iload 7 /* byte3 */
ifne 30
27: .line 507
aload 2 /* buffer */
iload 3 /* index */
iinc 3 /* index */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 7 /* byte3 */
28: .line 508
iload 3 /* index */
iload 4 /* limit */
if_icmplt 30
29: .line 509
iload 5 /* byte1 */
iload 6 /* byte2 */
iload 7 /* byte3 */
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(III)I
ireturn
30: .line 517
StackMap locals:
StackMap stack:
iload 6 /* byte2 */
bipush -65
if_icmpgt 34
31: .line 522
iload 5 /* byte1 */
bipush 28
ishl
iload 6 /* byte2 */
bipush -112
isub
iadd
bipush 30
ishr
ifne 34
32: .line 524
iload 7 /* byte3 */
bipush -65
if_icmpgt 34
33: .line 526
aload 2 /* buffer */
iload 3 /* index */
iinc 3 /* index */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
bipush -65
if_icmple 35
34: .line 527
StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 7 // byte byte3
end local 6 // byte byte2
end local 5 // byte byte1
35: .line 533
StackMap locals:
StackMap stack:
aload 2 /* buffer */
iload 3 /* index */
iload 4 /* limit */
invokestatic com.google.protobuf.Utf8$Processor.partialIsValidUtf8:(Ljava/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$Processor this
LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lcom/google/protobuf/Utf8$Processor;
0 36 1 state I
0 36 2 buffer Ljava/nio/ByteBuffer;
0 36 3 index I
0 36 4 limit I
4 35 5 byte1 B
10 19 6 byte2 B
20 35 6 byte2 B
21 35 7 byte3 B
MethodParameters:
Name Flags
state final
buffer final
index
limit final
private static int partialIsValidUtf8(java.nio.ByteBuffer, int, int);
descriptor: (Ljava/nio/ByteBuffer;II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=3
start local 0 // java.nio.ByteBuffer buffer
start local 1 // int index
start local 2 // int limit
0: .line 541
iload 1 /* index */
aload 0 /* buffer */
iload 1 /* index */
iload 2 /* limit */
invokestatic com.google.protobuf.Utf8.estimateConsecutiveAscii:(Ljava/nio/ByteBuffer;II)I
iadd
istore 1 /* index */
1: .line 549
StackMap locals:
StackMap stack:
iload 1 /* index */
iload 2 /* limit */
if_icmplt 3
2: .line 550
iconst_0
ireturn
3: .line 552
StackMap locals:
StackMap stack:
aload 0 /* buffer */
iload 1 /* index */
iinc 1 /* index */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
dup
istore 3 /* byte1 */
start local 3 // int byte1
4: .line 548
ifge 1
5: .line 555
iload 3 /* byte1 */
bipush -32
if_icmpge 12
6: .line 557
iload 1 /* index */
iload 2 /* limit */
if_icmplt 8
7: .line 559
iload 3 /* byte1 */
ireturn
8: .line 564
StackMap locals: int
StackMap stack:
iload 3 /* byte1 */
bipush -62
if_icmplt 9
aload 0 /* buffer */
iload 1 /* index */
invokevirtual java.nio.ByteBuffer.get:(I)B
bipush -65
if_icmple 10
9: .line 565
StackMap locals:
StackMap stack:
iconst_m1
ireturn
10: .line 567
StackMap locals:
StackMap stack:
iinc 1 /* index */ 1
11: .line 568
goto 1
StackMap locals:
StackMap stack:
12: iload 3 /* byte1 */
bipush -16
if_icmpge 23
13: .line 570
iload 1 /* index */
iload 2 /* limit */
iconst_1
isub
if_icmplt 15
14: .line 572
aload 0 /* buffer */
iload 3 /* byte1 */
iload 1 /* index */
iload 2 /* limit */
iload 1 /* index */
isub
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(Ljava/nio/ByteBuffer;III)I
ireturn
15: .line 575
StackMap locals:
StackMap stack:
aload 0 /* buffer */
iload 1 /* index */
iinc 1 /* index */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 4 /* byte2 */
start local 4 // byte byte2
16: .line 576
iload 4 /* byte2 */
bipush -65
if_icmpgt 20
17: .line 578
iload 3 /* byte1 */
bipush -32
if_icmpne 18
iload 4 /* byte2 */
bipush -96
if_icmplt 20
18: .line 580
StackMap locals: int
StackMap stack:
iload 3 /* byte1 */
bipush -19
if_icmpne 19
iload 4 /* byte2 */
bipush -96
if_icmpge 20
19: .line 582
StackMap locals:
StackMap stack:
aload 0 /* buffer */
iload 1 /* index */
invokevirtual java.nio.ByteBuffer.get:(I)B
bipush -65
if_icmple 21
20: .line 583
StackMap locals:
StackMap stack:
iconst_m1
ireturn
21: .line 585
StackMap locals:
StackMap stack:
iinc 1 /* index */ 1
end local 4 // byte byte2
22: .line 586
goto 1
23: .line 588
StackMap locals:
StackMap stack:
iload 1 /* index */
iload 2 /* limit */
iconst_2
isub
if_icmplt 25
24: .line 590
aload 0 /* buffer */
iload 3 /* byte1 */
iload 1 /* index */
iload 2 /* limit */
iload 1 /* index */
isub
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(Ljava/nio/ByteBuffer;III)I
ireturn
25: .line 594
StackMap locals:
StackMap stack:
aload 0 /* buffer */
iload 1 /* index */
iinc 1 /* index */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 4 /* byte2 */
start local 4 // int byte2
26: .line 595
iload 4 /* byte2 */
bipush -65
if_icmpgt 30
27: .line 600
iload 3 /* byte1 */
bipush 28
ishl
iload 4 /* byte2 */
bipush -112
isub
iadd
bipush 30
ishr
ifne 30
28: .line 602
aload 0 /* buffer */
iload 1 /* index */
iinc 1 /* index */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
bipush -65
if_icmpgt 30
29: .line 604
aload 0 /* buffer */
iload 1 /* index */
iinc 1 /* index */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
bipush -65
if_icmple 1
30: .line 605
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 // java.nio.ByteBuffer buffer
LocalVariableTable:
Start End Slot Name Signature
0 31 0 buffer Ljava/nio/ByteBuffer;
0 31 1 index I
0 31 2 limit I
4 31 3 byte1 I
16 22 4 byte2 B
26 31 4 byte2 I
MethodParameters:
Name Flags
buffer final
index
limit final
abstract java.lang.String decodeUtf8(byte[], int, int);
descriptor: ([BII)Ljava/lang/String;
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws com.google.protobuf.InvalidProtocolBufferException
MethodParameters:
Name Flags
bytes
index
size
final java.lang.String decodeUtf8(java.nio.ByteBuffer, int, int);
descriptor: (Ljava/nio/ByteBuffer;II)Ljava/lang/String;
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=5, args_size=4
start local 0 // com.google.protobuf.Utf8$Processor this
start local 1 // java.nio.ByteBuffer buffer
start local 2 // int index
start local 3 // int size
0: .line 626
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 3
1: .line 627
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
istore 4 /* offset */
start local 4 // int offset
2: .line 628
aload 0 /* this */
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.array:()[B
iload 4 /* offset */
iload 2 /* index */
iadd
iload 3 /* size */
invokevirtual com.google.protobuf.Utf8$Processor.decodeUtf8:([BII)Ljava/lang/String;
areturn
end local 4 // int offset
3: .line 629
StackMap locals:
StackMap stack:
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.isDirect:()Z
ifeq 5
4: .line 630
aload 0 /* this */
aload 1 /* buffer */
iload 2 /* index */
iload 3 /* size */
invokevirtual com.google.protobuf.Utf8$Processor.decodeUtf8Direct:(Ljava/nio/ByteBuffer;II)Ljava/lang/String;
areturn
5: .line 632
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* buffer */
iload 2 /* index */
iload 3 /* size */
invokevirtual com.google.protobuf.Utf8$Processor.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$Processor this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/google/protobuf/Utf8$Processor;
0 6 1 buffer Ljava/nio/ByteBuffer;
0 6 2 index I
0 6 3 size I
2 3 4 offset I
Exceptions:
throws com.google.protobuf.InvalidProtocolBufferException
MethodParameters:
Name Flags
buffer
index
size
abstract java.lang.String decodeUtf8Direct(java.nio.ByteBuffer, int, int);
descriptor: (Ljava/nio/ByteBuffer;II)Ljava/lang/String;
flags: (0x0400) ACC_ABSTRACT
Exceptions:
throws com.google.protobuf.InvalidProtocolBufferException
MethodParameters:
Name Flags
buffer
index
size
final java.lang.String decodeUtf8Default(java.nio.ByteBuffer, int, int);
descriptor: (Ljava/nio/ByteBuffer;II)Ljava/lang/String;
flags: (0x0010) ACC_FINAL
Code:
stack=7, locals=10, args_size=4
start local 0 // com.google.protobuf.Utf8$Processor this
start local 1 // java.nio.ByteBuffer buffer
start local 2 // int index
start local 3 // int size
0: .line 646
iload 2 /* index */
iload 3 /* size */
ior
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.limit:()I
iload 2 /* index */
isub
iload 3 /* size */
isub
ior
ifge 4
1: .line 647
new java.lang.ArrayIndexOutOfBoundsException
dup
2: .line 648
ldc "buffer limit=%d, index=%d, limit=%d"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.limit:()I
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 647
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
4: .line 651
StackMap locals:
StackMap stack:
iload 2 /* index */
istore 4 /* offset */
start local 4 // int offset
5: .line 652
iload 4 /* offset */
iload 3 /* size */
iadd
istore 5 /* limit */
start local 5 // int limit
6: .line 656
iload 3 /* size */
newarray 5
astore 6 /* resultArr */
start local 6 // char[] resultArr
7: .line 657
iconst_0
istore 7 /* resultPos */
start local 7 // int resultPos
8: .line 661
goto 14
9: .line 662
StackMap locals: com.google.protobuf.Utf8$Processor java.nio.ByteBuffer int int int int char[] int
StackMap stack:
aload 1 /* buffer */
iload 4 /* offset */
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 8 /* b */
start local 8 // byte b
10: .line 663
iload 8 /* b */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
ifne 12
11: .line 664
goto 53
12: .line 666
StackMap locals: int
StackMap stack:
iinc 4 /* offset */ 1
13: .line 667
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 661
StackMap locals:
StackMap stack:
iload 4 /* offset */
iload 5 /* limit */
if_icmplt 9
15: .line 670
goto 53
16: .line 671
StackMap locals:
StackMap stack:
aload 1 /* buffer */
iload 4 /* offset */
iinc 4 /* offset */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 8 /* byte1 */
start local 8 // byte byte1
17: .line 672
iload 8 /* byte1 */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
ifeq 27
18: .line 673
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 676
goto 25
20: .line 677
StackMap locals: int
StackMap stack:
aload 1 /* buffer */
iload 4 /* offset */
invokevirtual java.nio.ByteBuffer.get:(I)B
istore 9 /* b */
start local 9 // byte b
21: .line 678
iload 9 /* b */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
ifne 23
22: .line 679
goto 53
23: .line 681
StackMap locals: int
StackMap stack:
iinc 4 /* offset */ 1
24: .line 682
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 676
StackMap locals:
StackMap stack:
iload 4 /* offset */
iload 5 /* limit */
if_icmplt 20
26: .line 684
goto 53
StackMap locals:
StackMap stack:
27: iload 8 /* byte1 */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isTwoBytes:(B)Z
ifeq 33
28: .line 685
iload 4 /* offset */
iload 5 /* limit */
if_icmplt 30
29: .line 686
invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
athrow
30: .line 689
StackMap locals:
StackMap stack:
iload 8 /* byte1 */
aload 1 /* buffer */
iload 4 /* offset */
iinc 4 /* offset */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
aload 6 /* resultArr */
iload 7 /* resultPos */
iinc 7 /* resultPos */ 1
31: .line 688
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleTwoBytes:(BB[CI)V
32: .line 690
goto 53
StackMap locals:
StackMap stack:
33: iload 8 /* byte1 */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isThreeBytes:(B)Z
ifeq 43
34: .line 691
iload 4 /* offset */
iload 5 /* limit */
iconst_1
isub
if_icmplt 36
35: .line 692
invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
athrow
36: .line 695
StackMap locals:
StackMap stack:
iload 8 /* byte1 */
37: .line 696
aload 1 /* buffer */
iload 4 /* offset */
iinc 4 /* offset */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
38: .line 697
aload 1 /* buffer */
iload 4 /* offset */
iinc 4 /* offset */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
39: .line 698
aload 6 /* resultArr */
40: .line 699
iload 7 /* resultPos */
iinc 7 /* resultPos */ 1
41: .line 694
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleThreeBytes:(BBB[CI)V
42: .line 700
goto 53
43: .line 701
StackMap locals:
StackMap stack:
iload 4 /* offset */
iload 5 /* limit */
iconst_2
isub
if_icmplt 45
44: .line 702
invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
athrow
45: .line 705
StackMap locals:
StackMap stack:
iload 8 /* byte1 */
46: .line 706
aload 1 /* buffer */
iload 4 /* offset */
iinc 4 /* offset */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
47: .line 707
aload 1 /* buffer */
iload 4 /* offset */
iinc 4 /* offset */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
48: .line 708
aload 1 /* buffer */
iload 4 /* offset */
iinc 4 /* offset */ 1
invokevirtual java.nio.ByteBuffer.get:(I)B
49: .line 709
aload 6 /* resultArr */
50: .line 710
iload 7 /* resultPos */
iinc 7 /* resultPos */ 1
51: .line 704
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleFourBytes:(BBBB[CI)V
52: .line 712
iinc 7 /* resultPos */ 1
end local 8 // byte byte1
53: .line 670
StackMap locals:
StackMap stack:
iload 4 /* offset */
iload 5 /* limit */
if_icmplt 16
54: .line 716
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 // java.nio.ByteBuffer buffer
end local 0 // com.google.protobuf.Utf8$Processor this
LocalVariableTable:
Start End Slot Name Signature
0 55 0 this Lcom/google/protobuf/Utf8$Processor;
0 55 1 buffer Ljava/nio/ByteBuffer;
0 55 2 index I
0 55 3 size I
5 55 4 offset I
6 55 5 limit I
7 55 6 resultArr [C
8 55 7 resultPos I
10 14 8 b B
17 53 8 byte1 B
21 25 9 b B
Exceptions:
throws com.google.protobuf.InvalidProtocolBufferException
MethodParameters:
Name Flags
buffer
index
size
abstract int encodeUtf8(java.lang.CharSequence, byte[], int, int);
descriptor: (Ljava/lang/CharSequence;[BII)I
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
in
out
offset
length
final void encodeUtf8(java.lang.CharSequence, java.nio.ByteBuffer);
descriptor: (Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=5, args_size=3
start local 0 // com.google.protobuf.Utf8$Processor this
start local 1 // java.lang.CharSequence in
start local 2 // java.nio.ByteBuffer out
0: .line 769
aload 2 /* out */
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 5
1: .line 770
aload 2 /* out */
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
istore 3 /* offset */
start local 3 // int offset
2: .line 771
aload 1 /* in */
aload 2 /* out */
invokevirtual java.nio.ByteBuffer.array:()[B
iload 3 /* offset */
aload 2 /* out */
invokevirtual java.nio.ByteBuffer.position:()I
iadd
aload 2 /* out */
invokevirtual java.nio.ByteBuffer.remaining:()I
invokestatic com.google.protobuf.Utf8.encode:(Ljava/lang/CharSequence;[BII)I
istore 4 /* endIndex */
start local 4 // int endIndex
3: .line 772
aload 2 /* out */
iload 4 /* endIndex */
iload 3 /* offset */
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
end local 4 // int endIndex
end local 3 // int offset
4: .line 773
goto 9
StackMap locals:
StackMap stack:
5: aload 2 /* out */
invokevirtual java.nio.ByteBuffer.isDirect:()Z
ifeq 8
6: .line 774
aload 0 /* this */
aload 1 /* in */
aload 2 /* out */
invokevirtual com.google.protobuf.Utf8$Processor.encodeUtf8Direct:(Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
7: .line 775
goto 9
8: .line 776
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* in */
aload 2 /* out */
invokevirtual com.google.protobuf.Utf8$Processor.encodeUtf8Default:(Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
9: .line 778
StackMap locals:
StackMap stack:
return
end local 2 // java.nio.ByteBuffer out
end local 1 // java.lang.CharSequence in
end local 0 // com.google.protobuf.Utf8$Processor this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/google/protobuf/Utf8$Processor;
0 10 1 in Ljava/lang/CharSequence;
0 10 2 out Ljava/nio/ByteBuffer;
2 4 3 offset I
3 4 4 endIndex I
MethodParameters:
Name Flags
in
out
abstract void encodeUtf8Direct(java.lang.CharSequence, java.nio.ByteBuffer);
descriptor: (Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
flags: (0x0400) ACC_ABSTRACT
MethodParameters:
Name Flags
in
out
final void encodeUtf8Default(java.lang.CharSequence, java.nio.ByteBuffer);
descriptor: (Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
flags: (0x0010) ACC_FINAL
Code:
stack=6, locals=9, args_size=3
start local 0 // com.google.protobuf.Utf8$Processor this
start local 1 // java.lang.CharSequence in
start local 2 // java.nio.ByteBuffer out
0: .line 788
aload 1 /* in */
invokeinterface java.lang.CharSequence.length:()I
istore 3 /* inLength */
start local 3 // int inLength
1: .line 789
aload 2 /* out */
invokevirtual java.nio.ByteBuffer.position:()I
istore 4 /* outIx */
start local 4 // int outIx
2: .line 790
iconst_0
istore 5 /* inIx */
start local 5 // int inIx
3: .line 798
goto 6
start local 6 // char c
4: .line 799
StackMap locals: com.google.protobuf.Utf8$Processor java.lang.CharSequence java.nio.ByteBuffer int int int int
StackMap stack:
aload 2 /* out */
iload 4 /* outIx */
iload 5 /* inIx */
iadd
iload 6 /* c */
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
5: .line 798
iinc 5 /* inIx */ 1
end local 6 // char c
StackMap locals:
StackMap stack:
6: iload 5 /* inIx */
iload 3 /* inLength */
if_icmpge 8
aload 1 /* in */
iload 5 /* inIx */
invokeinterface java.lang.CharSequence.charAt:(I)C
dup
istore 6 /* c */
start local 6 // char c
7: sipush 128
if_icmplt 4
end local 6 // char c
8: .line 801
StackMap locals:
StackMap stack:
iload 5 /* inIx */
iload 3 /* inLength */
if_icmpne 11
9: .line 803
aload 2 /* out */
iload 4 /* outIx */
iload 5 /* inIx */
iadd
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
10: .line 804
return
11: .line 807
StackMap locals:
StackMap stack:
iload 4 /* outIx */
iload 5 /* inIx */
iadd
istore 4 /* outIx */
12: .line 808
goto 35
13: .line 809
StackMap locals:
StackMap stack:
aload 1 /* in */
iload 5 /* inIx */
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 6 /* c */
start local 6 // char c
14: .line 810
iload 6 /* c */
sipush 128
if_icmpge 17
15: .line 812
aload 2 /* out */
iload 4 /* outIx */
iload 6 /* c */
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
16: .line 813
goto 34
StackMap locals: int
StackMap stack:
17: iload 6 /* c */
sipush 2048
if_icmpge 21
18: .line 817
aload 2 /* out */
iload 4 /* outIx */
iinc 4 /* outIx */ 1
sipush 192
iload 6 /* c */
bipush 6
iushr
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
19: .line 818
aload 2 /* out */
iload 4 /* outIx */
sipush 128
bipush 63
iload 6 /* c */
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
20: .line 819
goto 34
StackMap locals:
StackMap stack:
21: iload 6 /* c */
ldc 55296
if_icmplt 22
ldc 57343
iload 6 /* c */
if_icmpge 26
22: .line 824
StackMap locals:
StackMap stack:
aload 2 /* out */
iload 4 /* outIx */
iinc 4 /* outIx */ 1
sipush 224
iload 6 /* c */
bipush 12
iushr
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
23: .line 825
aload 2 /* out */
iload 4 /* outIx */
iinc 4 /* outIx */ 1
sipush 128
bipush 63
iload 6 /* c */
bipush 6
iushr
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
24: .line 826
aload 2 /* out */
iload 4 /* outIx */
sipush 128
bipush 63
iload 6 /* c */
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
25: .line 827
goto 34
26: .line 833
StackMap locals:
StackMap stack:
iload 5 /* inIx */
iconst_1
iadd
iload 3 /* inLength */
if_icmpeq 28
iload 6 /* c */
aload 1 /* in */
iinc 5 /* inIx */ 1
iload 5 /* inIx */
invokeinterface java.lang.CharSequence.charAt:(I)C
dup
istore 7 /* low */
start local 7 // char low
27: invokestatic java.lang.Character.isSurrogatePair:(CC)Z
ifne 29
end local 7 // char low
28: .line 834
StackMap locals:
StackMap stack:
new com.google.protobuf.Utf8$UnpairedSurrogateException
dup
iload 5 /* inIx */
iload 3 /* inLength */
invokespecial com.google.protobuf.Utf8$UnpairedSurrogateException.<init>:(II)V
athrow
start local 7 // char low
29: .line 837
StackMap locals: int
StackMap stack:
iload 6 /* c */
iload 7 /* low */
invokestatic java.lang.Character.toCodePoint:(CC)I
istore 8 /* codePoint */
start local 8 // int codePoint
30: .line 838
aload 2 /* out */
iload 4 /* outIx */
iinc 4 /* outIx */ 1
sipush 240
iload 8 /* codePoint */
bipush 18
iushr
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
31: .line 839
aload 2 /* out */
iload 4 /* outIx */
iinc 4 /* outIx */ 1
sipush 128
bipush 63
iload 8 /* codePoint */
bipush 12
iushr
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
32: .line 840
aload 2 /* out */
iload 4 /* outIx */
iinc 4 /* outIx */ 1
sipush 128
bipush 63
iload 8 /* codePoint */
bipush 6
iushr
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
33: .line 841
aload 2 /* out */
iload 4 /* outIx */
sipush 128
bipush 63
iload 8 /* codePoint */
iand
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
end local 8 // int codePoint
end local 7 // char low
34: .line 808
StackMap locals:
StackMap stack:
iinc 5 /* inIx */ 1
iinc 4 /* outIx */ 1
end local 6 // char c
StackMap locals:
StackMap stack:
35: iload 5 /* inIx */
iload 3 /* inLength */
if_icmplt 13
36: .line 846
aload 2 /* out */
iload 4 /* outIx */
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
37: .line 847
goto 43
StackMap locals:
StackMap stack: java.lang.IndexOutOfBoundsException
38: pop
39: .line 852
aload 2 /* out */
invokevirtual java.nio.ByteBuffer.position:()I
iload 5 /* inIx */
iload 4 /* outIx */
aload 2 /* out */
invokevirtual java.nio.ByteBuffer.position:()I
isub
iconst_1
iadd
invokestatic java.lang.Math.max:(II)I
iadd
istore 6 /* badWriteIndex */
start local 6 // int badWriteIndex
40: .line 853
new java.lang.ArrayIndexOutOfBoundsException
dup
41: .line 854
new java.lang.StringBuilder
dup
ldc "Failed writing "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1 /* in */
iload 5 /* inIx */
invokeinterface java.lang.CharSequence.charAt:(I)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 /* badWriteIndex */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
42: .line 853
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
end local 6 // int badWriteIndex
43: .line 856
StackMap locals:
StackMap stack:
return
end local 5 // int inIx
end local 4 // int outIx
end local 3 // int inLength
end local 2 // java.nio.ByteBuffer out
end local 1 // java.lang.CharSequence in
end local 0 // com.google.protobuf.Utf8$Processor this
LocalVariableTable:
Start End Slot Name Signature
0 44 0 this Lcom/google/protobuf/Utf8$Processor;
0 44 1 in Ljava/lang/CharSequence;
0 44 2 out Ljava/nio/ByteBuffer;
1 44 3 inLength I
2 44 4 outIx I
3 44 5 inIx I
4 6 6 c C
7 8 6 c C
14 35 6 c C
27 28 7 low C
29 34 7 low C
30 34 8 codePoint I
40 43 6 badWriteIndex I
Exception table:
from to target type
3 10 38 Class java.lang.IndexOutOfBoundsException
11 37 38 Class java.lang.IndexOutOfBoundsException
MethodParameters:
Name Flags
in
out
}
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
UnpairedSurrogateException = com.google.protobuf.Utf8$UnpairedSurrogateException of com.google.protobuf.Utf8