final class com.google.protobuf.Utf8$UnsafeProcessor 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$UnsafeProcessor
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$UnsafeProcessor this
0: .line 1169
aload 0 /* this */
invokespecial com.google.protobuf.Utf8$Processor.<init>:()V
return
end local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/protobuf/Utf8$UnsafeProcessor;
static boolean isAvailable();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: .line 1172
invokestatic com.google.protobuf.UnsafeUtil.hasUnsafeArrayOperations:()Z
ifeq 1
invokestatic com.google.protobuf.UnsafeUtil.hasUnsafeByteBufferOperations:()Z
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
LocalVariableTable:
Start End Slot Name Signature
int partialIsValidUtf8(int, byte[], int, int);
descriptor: (I[BII)I
flags: (0x0000)
Code:
stack=7, locals=12, args_size=5
start local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
start local 1 // int state
start local 2 // byte[] bytes
start local 3 // int index
start local 4 // int limit
0: .line 1178
iload 3 /* index */
iload 4 /* limit */
ior
aload 2 /* bytes */
arraylength
iload 4 /* limit */
isub
ior
ifge 4
1: .line 1179
new java.lang.ArrayIndexOutOfBoundsException
dup
2: .line 1180
ldc "Array length=%d, index=%d, limit=%d"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 2 /* bytes */
arraylength
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 3 /* index */
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iload 4 /* limit */
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 1179
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
4: .line 1182
StackMap locals:
StackMap stack:
iload 3 /* index */
i2l
lstore 5 /* offset */
start local 5 // long offset
5: .line 1183
iload 4 /* limit */
i2l
lstore 7 /* offsetLimit */
start local 7 // long offsetLimit
6: .line 1184
iload 1 /* state */
ifeq 41
7: .line 1192
lload 5 /* offset */
lload 7 /* offsetLimit */
lcmp
iflt 9
8: .line 1193
iload 1 /* state */
ireturn
9: .line 1195
StackMap locals: long long
StackMap stack:
iload 1 /* state */
i2b
istore 9 /* byte1 */
start local 9 // int byte1
10: .line 1197
iload 9 /* byte1 */
bipush -32
if_icmpge 14
11: .line 1202
iload 9 /* byte1 */
bipush -62
if_icmplt 13
12: .line 1204
aload 2 /* bytes */
lload 5 /* offset */
dup2
lconst_1
ladd
lstore 5 /* offset */
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
bipush -65
if_icmple 41
13: .line 1205
StackMap locals: int
StackMap stack:
iconst_m1
ireturn
14: .line 1207
StackMap locals:
StackMap stack:
iload 9 /* byte1 */
bipush -16
if_icmpge 25
15: .line 1211
iload 1 /* state */
bipush 8
ishr
iconst_m1
ixor
i2b
istore 10 /* byte2 */
start local 10 // int byte2
16: .line 1212
iload 10 /* byte2 */
ifne 20
17: .line 1213
aload 2 /* bytes */
lload 5 /* offset */
dup2
lconst_1
ladd
lstore 5 /* offset */
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
istore 10 /* byte2 */
18: .line 1214
lload 5 /* offset */
lload 7 /* offsetLimit */
lcmp
iflt 20
19: .line 1215
iload 9 /* byte1 */
iload 10 /* byte2 */
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
ireturn
20: .line 1218
StackMap locals: int
StackMap stack:
iload 10 /* byte2 */
bipush -65
if_icmpgt 24
21: .line 1220
iload 9 /* byte1 */
bipush -32
if_icmpne 22
iload 10 /* byte2 */
bipush -96
if_icmplt 24
22: .line 1222
StackMap locals:
StackMap stack:
iload 9 /* byte1 */
bipush -19
if_icmpne 23
iload 10 /* byte2 */
bipush -96
if_icmpge 24
23: .line 1224
StackMap locals:
StackMap stack:
aload 2 /* bytes */
lload 5 /* offset */
dup2
lconst_1
ladd
lstore 5 /* offset */
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
bipush -65
if_icmple 41
24: .line 1225
StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 10 // int byte2
25: .line 1231
StackMap locals:
StackMap stack:
iload 1 /* state */
bipush 8
ishr
iconst_m1
ixor
i2b
istore 10 /* byte2 */
start local 10 // int byte2
26: .line 1232
iconst_0
istore 11 /* byte3 */
start local 11 // int byte3
27: .line 1233
iload 10 /* byte2 */
ifne 31
28: .line 1234
aload 2 /* bytes */
lload 5 /* offset */
dup2
lconst_1
ladd
lstore 5 /* offset */
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
istore 10 /* byte2 */
29: .line 1235
lload 5 /* offset */
lload 7 /* offsetLimit */
lcmp
iflt 32
30: .line 1236
iload 9 /* byte1 */
iload 10 /* byte2 */
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
ireturn
31: .line 1239
StackMap locals: int int
StackMap stack:
iload 1 /* state */
bipush 16
ishr
i2b
istore 11 /* byte3 */
32: .line 1241
StackMap locals:
StackMap stack:
iload 11 /* byte3 */
ifne 36
33: .line 1242
aload 2 /* bytes */
lload 5 /* offset */
dup2
lconst_1
ladd
lstore 5 /* offset */
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
istore 11 /* byte3 */
34: .line 1243
lload 5 /* offset */
lload 7 /* offsetLimit */
lcmp
iflt 36
35: .line 1244
iload 9 /* byte1 */
iload 10 /* byte2 */
iload 11 /* byte3 */
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(III)I
ireturn
36: .line 1252
StackMap locals:
StackMap stack:
iload 10 /* byte2 */
bipush -65
if_icmpgt 40
37: .line 1257
iload 9 /* byte1 */
bipush 28
ishl
iload 10 /* byte2 */
bipush -112
isub
iadd
bipush 30
ishr
ifne 40
38: .line 1259
iload 11 /* byte3 */
bipush -65
if_icmpgt 40
39: .line 1261
aload 2 /* bytes */
lload 5 /* offset */
dup2
lconst_1
ladd
lstore 5 /* offset */
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
bipush -65
if_icmple 41
40: .line 1262
StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 11 // int byte3
end local 10 // int byte2
end local 9 // int byte1
41: .line 1267
StackMap locals:
StackMap stack:
aload 2 /* bytes */
lload 5 /* offset */
lload 7 /* offsetLimit */
lload 5 /* offset */
lsub
l2i
invokestatic com.google.protobuf.Utf8$UnsafeProcessor.partialIsValidUtf8:([BJI)I
ireturn
end local 7 // long offsetLimit
end local 5 // long offset
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$UnsafeProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lcom/google/protobuf/Utf8$UnsafeProcessor;
0 42 1 state I
0 42 2 bytes [B
0 42 3 index I
0 42 4 limit I
5 42 5 offset J
6 42 7 offsetLimit J
10 41 9 byte1 I
16 25 10 byte2 I
26 41 10 byte2 I
27 41 11 byte3 I
MethodParameters:
Name Flags
state
bytes
index final
limit final
int partialIsValidUtf8Direct(int, java.nio.ByteBuffer, int, int);
descriptor: (ILjava/nio/ByteBuffer;II)I
flags: (0x0000)
Code:
stack=7, locals=12, args_size=5
start local 0 // com.google.protobuf.Utf8$UnsafeProcessor 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 1274
iload 3 /* index */
iload 4 /* limit */
ior
aload 2 /* buffer */
invokevirtual java.nio.ByteBuffer.limit:()I
iload 4 /* limit */
isub
ior
ifge 4
1: .line 1275
new java.lang.ArrayIndexOutOfBoundsException
dup
2: .line 1276
ldc "buffer limit=%d, index=%d, limit=%d"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 2 /* buffer */
invokevirtual java.nio.ByteBuffer.limit:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 3 /* index */
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iload 4 /* limit */
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 1275
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
4: .line 1278
StackMap locals:
StackMap stack:
aload 2 /* buffer */
invokestatic com.google.protobuf.UnsafeUtil.addressOffset:(Ljava/nio/ByteBuffer;)J
iload 3 /* index */
i2l
ladd
lstore 5 /* address */
start local 5 // long address
5: .line 1279
lload 5 /* address */
iload 4 /* limit */
iload 3 /* index */
isub
i2l
ladd
lstore 7 /* addressLimit */
start local 7 // long addressLimit
6: .line 1280
iload 1 /* state */
ifeq 41
7: .line 1288
lload 5 /* address */
lload 7 /* addressLimit */
lcmp
iflt 9
8: .line 1289
iload 1 /* state */
ireturn
9: .line 1292
StackMap locals: long long
StackMap stack:
iload 1 /* state */
i2b
istore 9 /* byte1 */
start local 9 // int byte1
10: .line 1294
iload 9 /* byte1 */
bipush -32
if_icmpge 14
11: .line 1299
iload 9 /* byte1 */
bipush -62
if_icmplt 13
12: .line 1301
lload 5 /* address */
dup2
lconst_1
ladd
lstore 5 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
bipush -65
if_icmple 41
13: .line 1302
StackMap locals: int
StackMap stack:
iconst_m1
ireturn
14: .line 1304
StackMap locals:
StackMap stack:
iload 9 /* byte1 */
bipush -16
if_icmpge 25
15: .line 1308
iload 1 /* state */
bipush 8
ishr
iconst_m1
ixor
i2b
istore 10 /* byte2 */
start local 10 // int byte2
16: .line 1309
iload 10 /* byte2 */
ifne 20
17: .line 1310
lload 5 /* address */
dup2
lconst_1
ladd
lstore 5 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
istore 10 /* byte2 */
18: .line 1311
lload 5 /* address */
lload 7 /* addressLimit */
lcmp
iflt 20
19: .line 1312
iload 9 /* byte1 */
iload 10 /* byte2 */
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
ireturn
20: .line 1315
StackMap locals: int
StackMap stack:
iload 10 /* byte2 */
bipush -65
if_icmpgt 24
21: .line 1317
iload 9 /* byte1 */
bipush -32
if_icmpne 22
iload 10 /* byte2 */
bipush -96
if_icmplt 24
22: .line 1319
StackMap locals:
StackMap stack:
iload 9 /* byte1 */
bipush -19
if_icmpne 23
iload 10 /* byte2 */
bipush -96
if_icmpge 24
23: .line 1321
StackMap locals:
StackMap stack:
lload 5 /* address */
dup2
lconst_1
ladd
lstore 5 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
bipush -65
if_icmple 41
24: .line 1322
StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 10 // int byte2
25: .line 1328
StackMap locals:
StackMap stack:
iload 1 /* state */
bipush 8
ishr
iconst_m1
ixor
i2b
istore 10 /* byte2 */
start local 10 // int byte2
26: .line 1329
iconst_0
istore 11 /* byte3 */
start local 11 // int byte3
27: .line 1330
iload 10 /* byte2 */
ifne 31
28: .line 1331
lload 5 /* address */
dup2
lconst_1
ladd
lstore 5 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
istore 10 /* byte2 */
29: .line 1332
lload 5 /* address */
lload 7 /* addressLimit */
lcmp
iflt 32
30: .line 1333
iload 9 /* byte1 */
iload 10 /* byte2 */
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
ireturn
31: .line 1336
StackMap locals: int int
StackMap stack:
iload 1 /* state */
bipush 16
ishr
i2b
istore 11 /* byte3 */
32: .line 1338
StackMap locals:
StackMap stack:
iload 11 /* byte3 */
ifne 36
33: .line 1339
lload 5 /* address */
dup2
lconst_1
ladd
lstore 5 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
istore 11 /* byte3 */
34: .line 1340
lload 5 /* address */
lload 7 /* addressLimit */
lcmp
iflt 36
35: .line 1341
iload 9 /* byte1 */
iload 10 /* byte2 */
iload 11 /* byte3 */
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(III)I
ireturn
36: .line 1349
StackMap locals:
StackMap stack:
iload 10 /* byte2 */
bipush -65
if_icmpgt 40
37: .line 1354
iload 9 /* byte1 */
bipush 28
ishl
iload 10 /* byte2 */
bipush -112
isub
iadd
bipush 30
ishr
ifne 40
38: .line 1356
iload 11 /* byte3 */
bipush -65
if_icmpgt 40
39: .line 1358
lload 5 /* address */
dup2
lconst_1
ladd
lstore 5 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
bipush -65
if_icmple 41
40: .line 1359
StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 11 // int byte3
end local 10 // int byte2
end local 9 // int byte1
41: .line 1364
StackMap locals:
StackMap stack:
lload 5 /* address */
lload 7 /* addressLimit */
lload 5 /* address */
lsub
l2i
invokestatic com.google.protobuf.Utf8$UnsafeProcessor.partialIsValidUtf8:(JI)I
ireturn
end local 7 // long addressLimit
end local 5 // long address
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$UnsafeProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lcom/google/protobuf/Utf8$UnsafeProcessor;
0 42 1 state I
0 42 2 buffer Ljava/nio/ByteBuffer;
0 42 3 index I
0 42 4 limit I
5 42 5 address J
6 42 7 addressLimit J
10 41 9 byte1 I
16 25 10 byte2 I
26 41 10 byte2 I
27 41 11 byte3 I
MethodParameters:
Name Flags
state final
buffer
index final
limit final
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$UnsafeProcessor this
start local 1 // byte[] bytes
start local 2 // int index
start local 3 // int size
0: .line 1369
iload 2 /* index */
iload 3 /* size */
ior
aload 1 /* bytes */
arraylength
iload 2 /* index */
isub
iload 3 /* size */
isub
ior
ifge 4
1: .line 1370
new java.lang.ArrayIndexOutOfBoundsException
dup
2: .line 1371
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 1370
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
4: .line 1374
StackMap locals:
StackMap stack:
iload 2 /* index */
istore 4 /* offset */
start local 4 // int offset
5: .line 1375
iload 4 /* offset */
iload 3 /* size */
iadd
istore 5 /* limit */
start local 5 // int limit
6: .line 1379
iload 3 /* size */
newarray 5
astore 6 /* resultArr */
start local 6 // char[] resultArr
7: .line 1380
iconst_0
istore 7 /* resultPos */
start local 7 // int resultPos
8: .line 1384
goto 14
9: .line 1385
StackMap locals: com.google.protobuf.Utf8$UnsafeProcessor byte[] int int int int char[] int
StackMap stack:
aload 1 /* bytes */
iload 4 /* offset */
i2l
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
istore 8 /* b */
start local 8 // byte b
10: .line 1386
iload 8 /* b */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
ifne 12
11: .line 1387
goto 53
12: .line 1389
StackMap locals: int
StackMap stack:
iinc 4 /* offset */ 1
13: .line 1390
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 1384
StackMap locals:
StackMap stack:
iload 4 /* offset */
iload 5 /* limit */
if_icmplt 9
15: .line 1393
goto 53
16: .line 1394
StackMap locals:
StackMap stack:
aload 1 /* bytes */
iload 4 /* offset */
iinc 4 /* offset */ 1
i2l
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
istore 8 /* byte1 */
start local 8 // byte byte1
17: .line 1395
iload 8 /* byte1 */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
ifeq 27
18: .line 1396
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 1399
goto 25
20: .line 1400
StackMap locals: int
StackMap stack:
aload 1 /* bytes */
iload 4 /* offset */
i2l
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
istore 9 /* b */
start local 9 // byte b
21: .line 1401
iload 9 /* b */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
ifne 23
22: .line 1402
goto 53
23: .line 1404
StackMap locals: int
StackMap stack:
iinc 4 /* offset */ 1
24: .line 1405
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 1399
StackMap locals:
StackMap stack:
iload 4 /* offset */
iload 5 /* limit */
if_icmplt 20
26: .line 1407
goto 53
StackMap locals:
StackMap stack:
27: iload 8 /* byte1 */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isTwoBytes:(B)Z
ifeq 33
28: .line 1408
iload 4 /* offset */
iload 5 /* limit */
if_icmplt 30
29: .line 1409
invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
athrow
30: .line 1412
StackMap locals:
StackMap stack:
iload 8 /* byte1 */
aload 1 /* bytes */
iload 4 /* offset */
iinc 4 /* offset */ 1
i2l
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
aload 6 /* resultArr */
iload 7 /* resultPos */
iinc 7 /* resultPos */ 1
31: .line 1411
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleTwoBytes:(BB[CI)V
32: .line 1413
goto 53
StackMap locals:
StackMap stack:
33: iload 8 /* byte1 */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isThreeBytes:(B)Z
ifeq 43
34: .line 1414
iload 4 /* offset */
iload 5 /* limit */
iconst_1
isub
if_icmplt 36
35: .line 1415
invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
athrow
36: .line 1418
StackMap locals:
StackMap stack:
iload 8 /* byte1 */
37: .line 1419
aload 1 /* bytes */
iload 4 /* offset */
iinc 4 /* offset */ 1
i2l
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
38: .line 1420
aload 1 /* bytes */
iload 4 /* offset */
iinc 4 /* offset */ 1
i2l
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
39: .line 1421
aload 6 /* resultArr */
40: .line 1422
iload 7 /* resultPos */
iinc 7 /* resultPos */ 1
41: .line 1417
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleThreeBytes:(BBB[CI)V
42: .line 1423
goto 53
43: .line 1424
StackMap locals:
StackMap stack:
iload 4 /* offset */
iload 5 /* limit */
iconst_2
isub
if_icmplt 45
44: .line 1425
invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
athrow
45: .line 1428
StackMap locals:
StackMap stack:
iload 8 /* byte1 */
46: .line 1429
aload 1 /* bytes */
iload 4 /* offset */
iinc 4 /* offset */ 1
i2l
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
47: .line 1430
aload 1 /* bytes */
iload 4 /* offset */
iinc 4 /* offset */ 1
i2l
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
48: .line 1431
aload 1 /* bytes */
iload 4 /* offset */
iinc 4 /* offset */ 1
i2l
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
49: .line 1432
aload 6 /* resultArr */
50: .line 1433
iload 7 /* resultPos */
iinc 7 /* resultPos */ 1
51: .line 1427
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleFourBytes:(BBBB[CI)V
52: .line 1435
iinc 7 /* resultPos */ 1
end local 8 // byte byte1
53: .line 1393
StackMap locals:
StackMap stack:
iload 4 /* offset */
iload 5 /* limit */
if_icmplt 16
54: .line 1439
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$UnsafeProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 55 0 this Lcom/google/protobuf/Utf8$UnsafeProcessor;
0 55 1 bytes [B
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
bytes
index
size
java.lang.String decodeUtf8Direct(java.nio.ByteBuffer, int, int);
descriptor: (Ljava/nio/ByteBuffer;II)Ljava/lang/String;
flags: (0x0000)
Code:
stack=9, locals=12, args_size=4
start local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
start local 1 // java.nio.ByteBuffer buffer
start local 2 // int index
start local 3 // int size
0: .line 1446
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 1447
new java.lang.ArrayIndexOutOfBoundsException
dup
2: .line 1448
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 1447
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
4: .line 1450
StackMap locals:
StackMap stack:
aload 1 /* buffer */
invokestatic com.google.protobuf.UnsafeUtil.addressOffset:(Ljava/nio/ByteBuffer;)J
iload 2 /* index */
i2l
ladd
lstore 4 /* address */
start local 4 // long address
5: .line 1451
lload 4 /* address */
iload 3 /* size */
i2l
ladd
lstore 6 /* addressLimit */
start local 6 // long addressLimit
6: .line 1455
iload 3 /* size */
newarray 5
astore 8 /* resultArr */
start local 8 // char[] resultArr
7: .line 1456
iconst_0
istore 9 /* resultPos */
start local 9 // int resultPos
8: .line 1460
goto 14
9: .line 1461
StackMap locals: com.google.protobuf.Utf8$UnsafeProcessor java.nio.ByteBuffer int int long long char[] int
StackMap stack:
lload 4 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
istore 10 /* b */
start local 10 // byte b
10: .line 1462
iload 10 /* b */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
ifne 12
11: .line 1463
goto 53
12: .line 1465
StackMap locals: int
StackMap stack:
lload 4 /* address */
lconst_1
ladd
lstore 4 /* address */
13: .line 1466
iload 10 /* b */
aload 8 /* resultArr */
iload 9 /* resultPos */
iinc 9 /* resultPos */ 1
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleOneByte:(B[CI)V
end local 10 // byte b
14: .line 1460
StackMap locals:
StackMap stack:
lload 4 /* address */
lload 6 /* addressLimit */
lcmp
iflt 9
15: .line 1469
goto 53
16: .line 1470
StackMap locals:
StackMap stack:
lload 4 /* address */
dup2
lconst_1
ladd
lstore 4 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
istore 10 /* byte1 */
start local 10 // byte byte1
17: .line 1471
iload 10 /* byte1 */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
ifeq 27
18: .line 1472
iload 10 /* byte1 */
aload 8 /* resultArr */
iload 9 /* resultPos */
iinc 9 /* resultPos */ 1
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleOneByte:(B[CI)V
19: .line 1475
goto 25
20: .line 1476
StackMap locals: int
StackMap stack:
lload 4 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
istore 11 /* b */
start local 11 // byte b
21: .line 1477
iload 11 /* b */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isOneByte:(B)Z
ifne 23
22: .line 1478
goto 53
23: .line 1480
StackMap locals: int
StackMap stack:
lload 4 /* address */
lconst_1
ladd
lstore 4 /* address */
24: .line 1481
iload 11 /* b */
aload 8 /* resultArr */
iload 9 /* resultPos */
iinc 9 /* resultPos */ 1
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleOneByte:(B[CI)V
end local 11 // byte b
25: .line 1475
StackMap locals:
StackMap stack:
lload 4 /* address */
lload 6 /* addressLimit */
lcmp
iflt 20
26: .line 1483
goto 53
StackMap locals:
StackMap stack:
27: iload 10 /* byte1 */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isTwoBytes:(B)Z
ifeq 33
28: .line 1484
lload 4 /* address */
lload 6 /* addressLimit */
lcmp
iflt 30
29: .line 1485
invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
athrow
30: .line 1488
StackMap locals:
StackMap stack:
iload 10 /* byte1 */
lload 4 /* address */
dup2
lconst_1
ladd
lstore 4 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
aload 8 /* resultArr */
iload 9 /* resultPos */
iinc 9 /* resultPos */ 1
31: .line 1487
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleTwoBytes:(BB[CI)V
32: .line 1489
goto 53
StackMap locals:
StackMap stack:
33: iload 10 /* byte1 */
invokestatic com.google.protobuf.Utf8$DecodeUtil.isThreeBytes:(B)Z
ifeq 43
34: .line 1490
lload 4 /* address */
lload 6 /* addressLimit */
lconst_1
lsub
lcmp
iflt 36
35: .line 1491
invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
athrow
36: .line 1494
StackMap locals:
StackMap stack:
iload 10 /* byte1 */
37: .line 1495
lload 4 /* address */
dup2
lconst_1
ladd
lstore 4 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
38: .line 1496
lload 4 /* address */
dup2
lconst_1
ladd
lstore 4 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
39: .line 1497
aload 8 /* resultArr */
40: .line 1498
iload 9 /* resultPos */
iinc 9 /* resultPos */ 1
41: .line 1493
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleThreeBytes:(BBB[CI)V
42: .line 1499
goto 53
43: .line 1500
StackMap locals:
StackMap stack:
lload 4 /* address */
lload 6 /* addressLimit */
ldc 2
lsub
lcmp
iflt 45
44: .line 1501
invokestatic com.google.protobuf.InvalidProtocolBufferException.invalidUtf8:()Lcom/google/protobuf/InvalidProtocolBufferException;
athrow
45: .line 1504
StackMap locals:
StackMap stack:
iload 10 /* byte1 */
46: .line 1505
lload 4 /* address */
dup2
lconst_1
ladd
lstore 4 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
47: .line 1506
lload 4 /* address */
dup2
lconst_1
ladd
lstore 4 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
48: .line 1507
lload 4 /* address */
dup2
lconst_1
ladd
lstore 4 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
49: .line 1508
aload 8 /* resultArr */
50: .line 1509
iload 9 /* resultPos */
iinc 9 /* resultPos */ 1
51: .line 1503
invokestatic com.google.protobuf.Utf8$DecodeUtil.handleFourBytes:(BBBB[CI)V
52: .line 1511
iinc 9 /* resultPos */ 1
end local 10 // byte byte1
53: .line 1469
StackMap locals:
StackMap stack:
lload 4 /* address */
lload 6 /* addressLimit */
lcmp
iflt 16
54: .line 1515
new java.lang.String
dup
aload 8 /* resultArr */
iconst_0
iload 9 /* resultPos */
invokespecial java.lang.String.<init>:([CII)V
areturn
end local 9 // int resultPos
end local 8 // char[] resultArr
end local 6 // long addressLimit
end local 4 // long address
end local 3 // int size
end local 2 // int index
end local 1 // java.nio.ByteBuffer buffer
end local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 55 0 this Lcom/google/protobuf/Utf8$UnsafeProcessor;
0 55 1 buffer Ljava/nio/ByteBuffer;
0 55 2 index I
0 55 3 size I
5 55 4 address J
6 55 6 addressLimit J
7 55 8 resultArr [C
8 55 9 resultPos I
10 14 10 b B
17 53 10 byte1 B
21 25 11 b B
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=7, locals=14, args_size=5
start local 0 // com.google.protobuf.Utf8$UnsafeProcessor 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 1520
iload 3 /* offset */
i2l
lstore 5 /* outIx */
start local 5 // long outIx
1: .line 1521
lload 5 /* outIx */
iload 4 /* length */
i2l
ladd
lstore 7 /* outLimit */
start local 7 // long outLimit
2: .line 1522
aload 1 /* in */
invokeinterface java.lang.CharSequence.length:()I
istore 9 /* inLimit */
start local 9 // int inLimit
3: .line 1523
iload 9 /* inLimit */
iload 4 /* length */
if_icmpgt 4
aload 2 /* out */
arraylength
iload 4 /* length */
isub
iload 3 /* offset */
if_icmpge 7
4: .line 1525
StackMap locals: long long int
StackMap stack:
new java.lang.ArrayIndexOutOfBoundsException
dup
5: .line 1526
new java.lang.StringBuilder
dup
ldc "Failed writing "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1 /* in */
iload 9 /* inLimit */
iconst_1
isub
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 3 /* offset */
iload 4 /* length */
iadd
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
6: .line 1525
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
7: .line 1531
StackMap locals:
StackMap stack:
iconst_0
istore 10 /* inIx */
start local 10 // int inIx
8: .line 1532
goto 11
start local 11 // char c
9: .line 1533
StackMap locals: int int
StackMap stack:
aload 2 /* out */
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
iload 11 /* c */
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
10: .line 1532
iinc 10 /* inIx */ 1
end local 11 // char c
StackMap locals:
StackMap stack:
11: iload 10 /* inIx */
iload 9 /* inLimit */
if_icmpge 13
aload 1 /* in */
iload 10 /* inIx */
invokeinterface java.lang.CharSequence.charAt:(I)C
dup
istore 11 /* c */
start local 11 // char c
12: sipush 128
if_icmplt 9
end local 11 // char c
13: .line 1535
StackMap locals:
StackMap stack:
iload 10 /* inIx */
iload 9 /* inLimit */
if_icmpne 44
14: .line 1537
lload 5 /* outIx */
l2i
ireturn
15: .line 1541
StackMap locals:
StackMap stack:
aload 1 /* in */
iload 10 /* inIx */
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 11 /* c */
start local 11 // char c
16: .line 1542
iload 11 /* c */
sipush 128
if_icmpge 19
lload 5 /* outIx */
lload 7 /* outLimit */
lcmp
ifge 19
17: .line 1543
aload 2 /* out */
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
iload 11 /* c */
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
18: .line 1544
goto 43
StackMap locals: int
StackMap stack:
19: iload 11 /* c */
sipush 2048
if_icmpge 23
lload 5 /* outIx */
lload 7 /* outLimit */
ldc 2
lsub
lcmp
ifgt 23
20: .line 1545
aload 2 /* out */
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 960
iload 11 /* c */
bipush 6
iushr
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
21: .line 1546
aload 2 /* out */
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 128
bipush 63
iload 11 /* c */
iand
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
22: .line 1547
goto 43
StackMap locals:
StackMap stack:
23: iload 11 /* c */
ldc 55296
if_icmplt 24
ldc 57343
iload 11 /* c */
if_icmpge 29
StackMap locals:
StackMap stack:
24: lload 5 /* outIx */
lload 7 /* outLimit */
ldc 3
lsub
lcmp
ifgt 29
25: .line 1549
aload 2 /* out */
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 480
iload 11 /* c */
bipush 12
iushr
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
26: .line 1550
aload 2 /* out */
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 128
bipush 63
iload 11 /* c */
bipush 6
iushr
iand
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
27: .line 1551
aload 2 /* out */
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 128
bipush 63
iload 11 /* c */
iand
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
28: .line 1552
goto 43
StackMap locals:
StackMap stack:
29: lload 5 /* outIx */
lload 7 /* outLimit */
ldc 4
lsub
lcmp
ifgt 39
30: .line 1556
iload 10 /* inIx */
iconst_1
iadd
iload 9 /* inLimit */
if_icmpeq 32
iload 11 /* c */
aload 1 /* in */
iinc 10 /* inIx */ 1
iload 10 /* inIx */
invokeinterface java.lang.CharSequence.charAt:(I)C
dup
istore 12 /* low */
start local 12 // char low
31: invokestatic java.lang.Character.isSurrogatePair:(CC)Z
ifne 33
end local 12 // char low
32: .line 1557
StackMap locals:
StackMap stack:
new com.google.protobuf.Utf8$UnpairedSurrogateException
dup
iload 10 /* inIx */
iconst_1
isub
iload 9 /* inLimit */
invokespecial com.google.protobuf.Utf8$UnpairedSurrogateException.<init>:(II)V
athrow
start local 12 // char low
33: .line 1559
StackMap locals: int
StackMap stack:
iload 11 /* c */
iload 12 /* low */
invokestatic java.lang.Character.toCodePoint:(CC)I
istore 13 /* codePoint */
start local 13 // int codePoint
34: .line 1560
aload 2 /* out */
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 240
iload 13 /* codePoint */
bipush 18
iushr
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
35: .line 1561
aload 2 /* out */
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 128
bipush 63
iload 13 /* codePoint */
bipush 12
iushr
iand
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
36: .line 1562
aload 2 /* out */
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 128
bipush 63
iload 13 /* codePoint */
bipush 6
iushr
iand
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
37: .line 1563
aload 2 /* out */
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 128
bipush 63
iload 13 /* codePoint */
iand
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:([BJB)V
end local 13 // int codePoint
end local 12 // char low
38: .line 1564
goto 43
39: .line 1565
StackMap locals:
StackMap stack:
ldc 55296
iload 11 /* c */
if_icmpgt 42
iload 11 /* c */
ldc 57343
if_icmpgt 42
40: .line 1566
iload 10 /* inIx */
iconst_1
iadd
iload 9 /* inLimit */
if_icmpeq 41
iload 11 /* c */
aload 1 /* in */
iload 10 /* inIx */
iconst_1
iadd
invokeinterface java.lang.CharSequence.charAt:(I)C
invokestatic java.lang.Character.isSurrogatePair:(CC)Z
ifne 42
41: .line 1568
StackMap locals:
StackMap stack:
new com.google.protobuf.Utf8$UnpairedSurrogateException
dup
iload 10 /* inIx */
iload 9 /* inLimit */
invokespecial com.google.protobuf.Utf8$UnpairedSurrogateException.<init>:(II)V
athrow
42: .line 1571
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 11 /* c */
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc " at index "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 5 /* outIx */
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
43: .line 1540
StackMap locals:
StackMap stack:
iinc 10 /* inIx */ 1
end local 11 // char c
StackMap locals:
StackMap stack:
44: iload 10 /* inIx */
iload 9 /* inLimit */
if_icmplt 15
45: .line 1576
lload 5 /* outIx */
l2i
ireturn
end local 10 // int inIx
end local 9 // int inLimit
end local 7 // long outLimit
end local 5 // long outIx
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$UnsafeProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 46 0 this Lcom/google/protobuf/Utf8$UnsafeProcessor;
0 46 1 in Ljava/lang/CharSequence;
0 46 2 out [B
0 46 3 offset I
0 46 4 length I
1 46 5 outIx J
2 46 7 outLimit J
3 46 9 inLimit I
8 46 10 inIx I
9 11 11 c C
12 13 11 c C
16 44 11 c C
31 32 12 low C
33 38 12 low C
34 38 13 codePoint I
MethodParameters:
Name Flags
in final
out final
offset final
length final
void encodeUtf8Direct(java.lang.CharSequence, java.nio.ByteBuffer);
descriptor: (Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
flags: (0x0000)
Code:
stack=6, locals=14, args_size=3
start local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
start local 1 // java.lang.CharSequence in
start local 2 // java.nio.ByteBuffer out
0: .line 1581
aload 2 /* out */
invokestatic com.google.protobuf.UnsafeUtil.addressOffset:(Ljava/nio/ByteBuffer;)J
lstore 3 /* address */
start local 3 // long address
1: .line 1582
lload 3 /* address */
aload 2 /* out */
invokevirtual java.nio.ByteBuffer.position:()I
i2l
ladd
lstore 5 /* outIx */
start local 5 // long outIx
2: .line 1583
lload 3 /* address */
aload 2 /* out */
invokevirtual java.nio.ByteBuffer.limit:()I
i2l
ladd
lstore 7 /* outLimit */
start local 7 // long outLimit
3: .line 1584
aload 1 /* in */
invokeinterface java.lang.CharSequence.length:()I
istore 9 /* inLimit */
start local 9 // int inLimit
4: .line 1585
iload 9 /* inLimit */
i2l
lload 7 /* outLimit */
lload 5 /* outIx */
lsub
lcmp
ifle 8
5: .line 1587
new java.lang.ArrayIndexOutOfBoundsException
dup
6: .line 1588
new java.lang.StringBuilder
dup
ldc "Failed writing "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1 /* in */
iload 9 /* inLimit */
iconst_1
isub
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;
aload 2 /* out */
invokevirtual java.nio.ByteBuffer.limit:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: .line 1587
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
8: .line 1593
StackMap locals: com.google.protobuf.Utf8$UnsafeProcessor java.lang.CharSequence java.nio.ByteBuffer long long long int
StackMap stack:
iconst_0
istore 10 /* inIx */
start local 10 // int inIx
9: .line 1594
goto 12
start local 11 // char c
10: .line 1595
StackMap locals: int int
StackMap stack:
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
iload 11 /* c */
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
11: .line 1594
iinc 10 /* inIx */ 1
end local 11 // char c
StackMap locals:
StackMap stack:
12: iload 10 /* inIx */
iload 9 /* inLimit */
if_icmpge 14
aload 1 /* in */
iload 10 /* inIx */
invokeinterface java.lang.CharSequence.charAt:(I)C
dup
istore 11 /* c */
start local 11 // char c
13: sipush 128
if_icmplt 10
end local 11 // char c
14: .line 1597
StackMap locals:
StackMap stack:
iload 10 /* inIx */
iload 9 /* inLimit */
if_icmpne 46
15: .line 1599
aload 2 /* out */
lload 5 /* outIx */
lload 3 /* address */
lsub
l2i
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
16: .line 1600
return
17: .line 1604
StackMap locals:
StackMap stack:
aload 1 /* in */
iload 10 /* inIx */
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 11 /* c */
start local 11 // char c
18: .line 1605
iload 11 /* c */
sipush 128
if_icmpge 21
lload 5 /* outIx */
lload 7 /* outLimit */
lcmp
ifge 21
19: .line 1606
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
iload 11 /* c */
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
20: .line 1607
goto 45
StackMap locals: int
StackMap stack:
21: iload 11 /* c */
sipush 2048
if_icmpge 25
lload 5 /* outIx */
lload 7 /* outLimit */
ldc 2
lsub
lcmp
ifgt 25
22: .line 1608
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 960
iload 11 /* c */
bipush 6
iushr
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
23: .line 1609
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 128
bipush 63
iload 11 /* c */
iand
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
24: .line 1610
goto 45
StackMap locals:
StackMap stack:
25: iload 11 /* c */
ldc 55296
if_icmplt 26
ldc 57343
iload 11 /* c */
if_icmpge 31
StackMap locals:
StackMap stack:
26: lload 5 /* outIx */
lload 7 /* outLimit */
ldc 3
lsub
lcmp
ifgt 31
27: .line 1612
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 480
iload 11 /* c */
bipush 12
iushr
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
28: .line 1613
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 128
bipush 63
iload 11 /* c */
bipush 6
iushr
iand
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
29: .line 1614
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 128
bipush 63
iload 11 /* c */
iand
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
30: .line 1615
goto 45
StackMap locals:
StackMap stack:
31: lload 5 /* outIx */
lload 7 /* outLimit */
ldc 4
lsub
lcmp
ifgt 41
32: .line 1619
iload 10 /* inIx */
iconst_1
iadd
iload 9 /* inLimit */
if_icmpeq 34
iload 11 /* c */
aload 1 /* in */
iinc 10 /* inIx */ 1
iload 10 /* inIx */
invokeinterface java.lang.CharSequence.charAt:(I)C
dup
istore 12 /* low */
start local 12 // char low
33: invokestatic java.lang.Character.isSurrogatePair:(CC)Z
ifne 35
end local 12 // char low
34: .line 1620
StackMap locals:
StackMap stack:
new com.google.protobuf.Utf8$UnpairedSurrogateException
dup
iload 10 /* inIx */
iconst_1
isub
iload 9 /* inLimit */
invokespecial com.google.protobuf.Utf8$UnpairedSurrogateException.<init>:(II)V
athrow
start local 12 // char low
35: .line 1622
StackMap locals: int
StackMap stack:
iload 11 /* c */
iload 12 /* low */
invokestatic java.lang.Character.toCodePoint:(CC)I
istore 13 /* codePoint */
start local 13 // int codePoint
36: .line 1623
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 240
iload 13 /* codePoint */
bipush 18
iushr
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
37: .line 1624
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 128
bipush 63
iload 13 /* codePoint */
bipush 12
iushr
iand
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
38: .line 1625
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 128
bipush 63
iload 13 /* codePoint */
bipush 6
iushr
iand
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
39: .line 1626
lload 5 /* outIx */
dup2
lconst_1
ladd
lstore 5 /* outIx */
sipush 128
bipush 63
iload 13 /* codePoint */
iand
ior
i2b
invokestatic com.google.protobuf.UnsafeUtil.putByte:(JB)V
end local 13 // int codePoint
end local 12 // char low
40: .line 1627
goto 45
41: .line 1628
StackMap locals:
StackMap stack:
ldc 55296
iload 11 /* c */
if_icmpgt 44
iload 11 /* c */
ldc 57343
if_icmpgt 44
42: .line 1629
iload 10 /* inIx */
iconst_1
iadd
iload 9 /* inLimit */
if_icmpeq 43
iload 11 /* c */
aload 1 /* in */
iload 10 /* inIx */
iconst_1
iadd
invokeinterface java.lang.CharSequence.charAt:(I)C
invokestatic java.lang.Character.isSurrogatePair:(CC)Z
ifne 44
43: .line 1631
StackMap locals:
StackMap stack:
new com.google.protobuf.Utf8$UnpairedSurrogateException
dup
iload 10 /* inIx */
iload 9 /* inLimit */
invokespecial com.google.protobuf.Utf8$UnpairedSurrogateException.<init>:(II)V
athrow
44: .line 1634
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 11 /* c */
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
ldc " at index "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 5 /* outIx */
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
45: .line 1603
StackMap locals:
StackMap stack:
iinc 10 /* inIx */ 1
end local 11 // char c
StackMap locals:
StackMap stack:
46: iload 10 /* inIx */
iload 9 /* inLimit */
if_icmplt 17
47: .line 1639
aload 2 /* out */
lload 5 /* outIx */
lload 3 /* address */
lsub
l2i
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
48: .line 1640
return
end local 10 // int inIx
end local 9 // int inLimit
end local 7 // long outLimit
end local 5 // long outIx
end local 3 // long address
end local 2 // java.nio.ByteBuffer out
end local 1 // java.lang.CharSequence in
end local 0 // com.google.protobuf.Utf8$UnsafeProcessor this
LocalVariableTable:
Start End Slot Name Signature
0 49 0 this Lcom/google/protobuf/Utf8$UnsafeProcessor;
0 49 1 in Ljava/lang/CharSequence;
0 49 2 out Ljava/nio/ByteBuffer;
1 49 3 address J
2 49 5 outIx J
3 49 7 outLimit J
4 49 9 inLimit I
9 49 10 inIx I
10 12 11 c C
13 14 11 c C
18 46 11 c C
33 34 12 low C
35 40 12 low C
36 40 13 codePoint I
MethodParameters:
Name Flags
in
out
private static int unsafeEstimateConsecutiveAscii(byte[], long, int);
descriptor: ([BJI)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=5, args_size=3
start local 0 // byte[] bytes
start local 1 // long offset
start local 3 // int maxChars
0: .line 1654
iload 3 /* maxChars */
bipush 16
if_icmpge 2
1: .line 1656
iconst_0
ireturn
2: .line 1659
StackMap locals:
StackMap stack:
iconst_0
istore 4 /* i */
start local 4 // int i
3: goto 7
4: .line 1660
StackMap locals: int
StackMap stack:
aload 0 /* bytes */
lload 1 /* offset */
dup2
lconst_1
ladd
lstore 1 /* offset */
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
ifge 6
5: .line 1661
iload 4 /* i */
ireturn
6: .line 1659
StackMap locals:
StackMap stack:
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
7: iload 4 /* i */
iload 3 /* maxChars */
if_icmplt 4
end local 4 // int i
8: .line 1664
iload 3 /* maxChars */
ireturn
end local 3 // int maxChars
end local 1 // long offset
end local 0 // byte[] bytes
LocalVariableTable:
Start End Slot Name Signature
0 9 0 bytes [B
0 9 1 offset J
0 9 3 maxChars I
3 8 4 i I
MethodParameters:
Name Flags
bytes
offset
maxChars final
private static int unsafeEstimateConsecutiveAscii(long, int);
descriptor: (JI)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=6, args_size=2
start local 0 // long address
start local 2 // int maxChars
0: .line 1672
iload 2 /* maxChars */
istore 3 /* remaining */
start local 3 // int remaining
1: .line 1673
iload 3 /* remaining */
bipush 16
if_icmpge 3
2: .line 1675
iconst_0
ireturn
3: .line 1681
StackMap locals: int
StackMap stack:
bipush 8
lload 0 /* address */
l2i
bipush 7
iand
isub
istore 4 /* unaligned */
start local 4 // int unaligned
4: .line 1682
iload 4 /* unaligned */
istore 5 /* j */
start local 5 // int j
5: goto 9
6: .line 1683
StackMap locals: int int
StackMap stack:
lload 0 /* address */
dup2
lconst_1
ladd
lstore 0 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
ifge 8
7: .line 1684
iload 4 /* unaligned */
iload 5 /* j */
isub
ireturn
8: .line 1682
StackMap locals:
StackMap stack:
iinc 5 /* j */ -1
StackMap locals:
StackMap stack:
9: iload 5 /* j */
ifgt 6
end local 5 // int j
10: .line 1691
iload 3 /* remaining */
iload 4 /* unaligned */
isub
istore 3 /* remaining */
11: .line 1693
goto 13
12: .line 1694
StackMap locals:
StackMap stack:
lload 0 /* address */
ldc 8
ladd
lstore 0 /* address */
iinc 3 /* remaining */ -8
13: .line 1693
StackMap locals:
StackMap stack:
iload 3 /* remaining */
bipush 8
if_icmplt 14
lload 0 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getLong:(J)J
ldc -9187201950435737472
land
lconst_0
lcmp
ifeq 12
14: .line 1695
StackMap locals:
StackMap stack:
iload 2 /* maxChars */
iload 3 /* remaining */
isub
ireturn
end local 4 // int unaligned
end local 3 // int remaining
end local 2 // int maxChars
end local 0 // long address
LocalVariableTable:
Start End Slot Name Signature
0 15 0 address J
0 15 2 maxChars I
1 15 3 remaining I
4 15 4 unaligned I
5 10 5 j I
MethodParameters:
Name Flags
address
maxChars final
private static int partialIsValidUtf8(byte[], long, int);
descriptor: ([BJI)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=7, args_size=3
start local 0 // byte[] bytes
start local 1 // long offset
start local 3 // int remaining
0: .line 1700
aload 0 /* bytes */
lload 1 /* offset */
iload 3 /* remaining */
invokestatic com.google.protobuf.Utf8$UnsafeProcessor.unsafeEstimateConsecutiveAscii:([BJI)I
istore 4 /* skipped */
start local 4 // int skipped
1: .line 1701
iload 3 /* remaining */
iload 4 /* skipped */
isub
istore 3 /* remaining */
2: .line 1702
lload 1 /* offset */
iload 4 /* skipped */
i2l
ladd
lstore 1 /* offset */
3: .line 1708
StackMap locals: int
StackMap stack:
iconst_0
istore 5 /* byte1 */
start local 5 // int byte1
4: .line 1709
goto 6
StackMap locals: int
StackMap stack:
5: iinc 3 /* remaining */ -1
StackMap locals:
StackMap stack:
6: iload 3 /* remaining */
ifle 7
aload 0 /* bytes */
lload 1 /* offset */
dup2
lconst_1
ladd
lstore 1 /* offset */
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
dup
istore 5 /* byte1 */
ifge 5
7: .line 1710
StackMap locals:
StackMap stack:
iload 3 /* remaining */
ifne 9
8: .line 1711
iconst_0
ireturn
9: .line 1713
StackMap locals:
StackMap stack:
iinc 3 /* remaining */ -1
10: .line 1716
iload 5 /* byte1 */
bipush -32
if_icmpge 16
11: .line 1718
iload 3 /* remaining */
ifne 13
12: .line 1720
iload 5 /* byte1 */
ireturn
13: .line 1722
StackMap locals:
StackMap stack:
iinc 3 /* remaining */ -1
14: .line 1726
iload 5 /* byte1 */
bipush -62
if_icmplt 15
aload 0 /* bytes */
lload 1 /* offset */
dup2
lconst_1
ladd
lstore 1 /* offset */
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
bipush -65
if_icmple 3
15: .line 1727
StackMap locals:
StackMap stack:
iconst_m1
ireturn
16: .line 1729
StackMap locals:
StackMap stack:
iload 5 /* byte1 */
bipush -16
if_icmpge 26
17: .line 1731
iload 3 /* remaining */
iconst_2
if_icmpge 19
18: .line 1733
aload 0 /* bytes */
iload 5 /* byte1 */
lload 1 /* offset */
iload 3 /* remaining */
invokestatic com.google.protobuf.Utf8$UnsafeProcessor.unsafeIncompleteStateFor:([BIJI)I
ireturn
19: .line 1735
StackMap locals:
StackMap stack:
iinc 3 /* remaining */ -2
20: .line 1738
aload 0 /* bytes */
lload 1 /* offset */
dup2
lconst_1
ladd
lstore 1 /* offset */
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
dup
istore 6 /* byte2 */
start local 6 // int byte2
21: bipush -65
if_icmpgt 25
22: .line 1740
iload 5 /* byte1 */
bipush -32
if_icmpne 23
iload 6 /* byte2 */
bipush -96
if_icmplt 25
23: .line 1742
StackMap locals: int
StackMap stack:
iload 5 /* byte1 */
bipush -19
if_icmpne 24
iload 6 /* byte2 */
bipush -96
if_icmpge 25
24: .line 1744
StackMap locals:
StackMap stack:
aload 0 /* bytes */
lload 1 /* offset */
dup2
lconst_1
ladd
lstore 1 /* offset */
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
bipush -65
if_icmple 3
25: .line 1745
StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 6 // int byte2
26: .line 1749
StackMap locals:
StackMap stack:
iload 3 /* remaining */
iconst_3
if_icmpge 28
27: .line 1751
aload 0 /* bytes */
iload 5 /* byte1 */
lload 1 /* offset */
iload 3 /* remaining */
invokestatic com.google.protobuf.Utf8$UnsafeProcessor.unsafeIncompleteStateFor:([BIJI)I
ireturn
28: .line 1753
StackMap locals:
StackMap stack:
iinc 3 /* remaining */ -3
29: .line 1756
aload 0 /* bytes */
lload 1 /* offset */
dup2
lconst_1
ladd
lstore 1 /* offset */
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
dup
istore 6 /* byte2 */
start local 6 // int byte2
30: bipush -65
if_icmpgt 34
31: .line 1761
iload 5 /* byte1 */
bipush 28
ishl
iload 6 /* byte2 */
bipush -112
isub
iadd
bipush 30
ishr
ifne 34
32: .line 1763
aload 0 /* bytes */
lload 1 /* offset */
dup2
lconst_1
ladd
lstore 1 /* offset */
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
bipush -65
if_icmpgt 34
33: .line 1765
aload 0 /* bytes */
lload 1 /* offset */
dup2
lconst_1
ladd
lstore 1 /* offset */
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
bipush -65
if_icmple 3
34: .line 1766
StackMap locals: int
StackMap stack:
iconst_m1
ireturn
end local 6 // int byte2
end local 5 // int byte1
end local 4 // int skipped
end local 3 // int remaining
end local 1 // long offset
end local 0 // byte[] bytes
LocalVariableTable:
Start End Slot Name Signature
0 35 0 bytes [B
0 35 1 offset J
0 35 3 remaining I
1 35 4 skipped I
4 35 5 byte1 I
21 26 6 byte2 I
30 35 6 byte2 I
MethodParameters:
Name Flags
bytes final
offset
remaining
private static int partialIsValidUtf8(long, int);
descriptor: (JI)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=6, args_size=2
start local 0 // long address
start local 2 // int remaining
0: .line 1774
lload 0 /* address */
iload 2 /* remaining */
invokestatic com.google.protobuf.Utf8$UnsafeProcessor.unsafeEstimateConsecutiveAscii:(JI)I
istore 3 /* skipped */
start local 3 // int skipped
1: .line 1775
lload 0 /* address */
iload 3 /* skipped */
i2l
ladd
lstore 0 /* address */
2: .line 1776
iload 2 /* remaining */
iload 3 /* skipped */
isub
istore 2 /* remaining */
3: .line 1782
StackMap locals: int
StackMap stack:
iconst_0
istore 4 /* byte1 */
start local 4 // int byte1
4: .line 1783
goto 6
StackMap locals: int
StackMap stack:
5: iinc 2 /* remaining */ -1
StackMap locals:
StackMap stack:
6: iload 2 /* remaining */
ifle 7
lload 0 /* address */
dup2
lconst_1
ladd
lstore 0 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
dup
istore 4 /* byte1 */
ifge 5
7: .line 1784
StackMap locals:
StackMap stack:
iload 2 /* remaining */
ifne 9
8: .line 1785
iconst_0
ireturn
9: .line 1787
StackMap locals:
StackMap stack:
iinc 2 /* remaining */ -1
10: .line 1789
iload 4 /* byte1 */
bipush -32
if_icmpge 16
11: .line 1792
iload 2 /* remaining */
ifne 13
12: .line 1794
iload 4 /* byte1 */
ireturn
13: .line 1796
StackMap locals:
StackMap stack:
iinc 2 /* remaining */ -1
14: .line 1800
iload 4 /* byte1 */
bipush -62
if_icmplt 15
lload 0 /* address */
dup2
lconst_1
ladd
lstore 0 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
bipush -65
if_icmple 3
15: .line 1801
StackMap locals:
StackMap stack:
iconst_m1
ireturn
16: .line 1803
StackMap locals:
StackMap stack:
iload 4 /* byte1 */
bipush -16
if_icmpge 26
17: .line 1806
iload 2 /* remaining */
iconst_2
if_icmpge 19
18: .line 1808
lload 0 /* address */
iload 4 /* byte1 */
iload 2 /* remaining */
invokestatic com.google.protobuf.Utf8$UnsafeProcessor.unsafeIncompleteStateFor:(JII)I
ireturn
19: .line 1810
StackMap locals:
StackMap stack:
iinc 2 /* remaining */ -2
20: .line 1812
lload 0 /* address */
dup2
lconst_1
ladd
lstore 0 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
istore 5 /* byte2 */
start local 5 // byte byte2
21: .line 1813
iload 5 /* byte2 */
bipush -65
if_icmpgt 25
22: .line 1815
iload 4 /* byte1 */
bipush -32
if_icmpne 23
iload 5 /* byte2 */
bipush -96
if_icmplt 25
23: .line 1817
StackMap locals: int
StackMap stack:
iload 4 /* byte1 */
bipush -19
if_icmpne 24
iload 5 /* byte2 */
bipush -96
if_icmpge 25
24: .line 1819
StackMap locals:
StackMap stack:
lload 0 /* address */
dup2
lconst_1
ladd
lstore 0 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
bipush -65
if_icmple 3
25: .line 1820
StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 5 // byte byte2
26: .line 1825
StackMap locals:
StackMap stack:
iload 2 /* remaining */
iconst_3
if_icmpge 28
27: .line 1827
lload 0 /* address */
iload 4 /* byte1 */
iload 2 /* remaining */
invokestatic com.google.protobuf.Utf8$UnsafeProcessor.unsafeIncompleteStateFor:(JII)I
ireturn
28: .line 1829
StackMap locals:
StackMap stack:
iinc 2 /* remaining */ -3
29: .line 1831
lload 0 /* address */
dup2
lconst_1
ladd
lstore 0 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
istore 5 /* byte2 */
start local 5 // byte byte2
30: .line 1832
iload 5 /* byte2 */
bipush -65
if_icmpgt 34
31: .line 1837
iload 4 /* byte1 */
bipush 28
ishl
iload 5 /* byte2 */
bipush -112
isub
iadd
bipush 30
ishr
ifne 34
32: .line 1839
lload 0 /* address */
dup2
lconst_1
ladd
lstore 0 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
bipush -65
if_icmpgt 34
33: .line 1841
lload 0 /* address */
dup2
lconst_1
ladd
lstore 0 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
bipush -65
if_icmple 3
34: .line 1842
StackMap locals: int
StackMap stack:
iconst_m1
ireturn
end local 5 // byte byte2
end local 4 // int byte1
end local 3 // int skipped
end local 2 // int remaining
end local 0 // long address
LocalVariableTable:
Start End Slot Name Signature
0 35 0 address J
0 35 2 remaining I
1 35 3 skipped I
4 35 4 byte1 I
21 26 5 byte2 B
30 35 5 byte2 B
MethodParameters:
Name Flags
address
remaining
private static int unsafeIncompleteStateFor(byte[], int, long, int);
descriptor: ([BIJI)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=5, args_size=4
start local 0 // byte[] bytes
start local 1 // int byte1
start local 2 // long offset
start local 4 // int remaining
0: .line 1850
iload 4 /* remaining */
tableswitch { // 0 - 2
0: 1
1: 2
2: 3
default: 5
}
1: .line 1852
StackMap locals:
StackMap stack:
iload 1 /* byte1 */
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(I)I
ireturn
2: .line 1854
StackMap locals:
StackMap stack:
iload 1 /* byte1 */
aload 0 /* bytes */
lload 2 /* offset */
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
ireturn
3: .line 1857
StackMap locals:
StackMap stack:
iload 1 /* byte1 */
aload 0 /* bytes */
lload 2 /* offset */
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
aload 0 /* bytes */
lload 2 /* offset */
lconst_1
ladd
invokestatic com.google.protobuf.UnsafeUtil.getByte:([BJ)B
4: .line 1856
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(III)I
ireturn
5: .line 1859
StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 4 // int remaining
end local 2 // long offset
end local 1 // int byte1
end local 0 // byte[] bytes
LocalVariableTable:
Start End Slot Name Signature
0 6 0 bytes [B
0 6 1 byte1 I
0 6 2 offset J
0 6 4 remaining I
MethodParameters:
Name Flags
bytes
byte1
offset
remaining
private static int unsafeIncompleteStateFor(long, int, int);
descriptor: (JII)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=4, args_size=3
start local 0 // long address
start local 2 // int byte1
start local 3 // int remaining
0: .line 1864
iload 3 /* remaining */
tableswitch { // 0 - 2
0: 1
1: 2
2: 3
default: 5
}
1: .line 1866
StackMap locals:
StackMap stack:
iload 2 /* byte1 */
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(I)I
ireturn
2: .line 1868
StackMap locals:
StackMap stack:
iload 2 /* byte1 */
lload 0 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
ireturn
3: .line 1871
StackMap locals:
StackMap stack:
iload 2 /* byte1 */
lload 0 /* address */
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
lload 0 /* address */
lconst_1
ladd
invokestatic com.google.protobuf.UnsafeUtil.getByte:(J)B
4: .line 1870
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(III)I
ireturn
5: .line 1873
StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 3 // int remaining
end local 2 // int byte1
end local 0 // long address
LocalVariableTable:
Start End Slot Name Signature
0 6 0 address J
0 6 2 byte1 I
0 6 3 remaining I
MethodParameters:
Name Flags
address
byte1 final
remaining
}
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
final UnsafeProcessor = com.google.protobuf.Utf8$UnsafeProcessor of com.google.protobuf.Utf8