final class com.google.protobuf.Utf8
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.google.protobuf.Utf8
super_class: java.lang.Object
{
private static final com.google.protobuf.Utf8$Processor processor;
descriptor: Lcom/google/protobuf/Utf8$Processor;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long ASCII_MASK_LONG;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: -9187201950435737472
static final int MAX_BYTES_PER_CHAR;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 3
public static final int COMPLETE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int MALFORMED;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -1
private static final int UNSAFE_COUNT_ASCII_THRESHOLD;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic com.google.protobuf.Utf8$UnsafeProcessor.isAvailable:()Z
ifeq 2
invokestatic com.google.protobuf.Android.isOnAndroidDevice:()Z
ifne 2
1: new com.google.protobuf.Utf8$UnsafeProcessor
dup
invokespecial com.google.protobuf.Utf8$UnsafeProcessor.<init>:()V
goto 3
2: StackMap locals:
StackMap stack:
new com.google.protobuf.Utf8$SafeProcessor
dup
invokespecial com.google.protobuf.Utf8$SafeProcessor.<init>:()V
3: StackMap locals:
StackMap stack: com.google.protobuf.Utf8$Processor
putstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
4: return
LocalVariableTable:
Start End Slot Name Signature
public static boolean isValidUtf8(byte[]);
descriptor: ([B)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
aload 0
iconst_0
aload 0
arraylength
invokevirtual com.google.protobuf.Utf8$Processor.isValidUtf8:([BII)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 bytes [B
MethodParameters:
Name Flags
bytes
public static boolean isValidUtf8(byte[], int, int);
descriptor: ([BII)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
aload 0
iload 1
iload 2
invokevirtual com.google.protobuf.Utf8$Processor.isValidUtf8:([BII)Z
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 bytes [B
0 1 1 index I
0 1 2 limit I
MethodParameters:
Name Flags
bytes
index
limit
public static int partialIsValidUtf8(int, byte[], int, int);
descriptor: (I[BII)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
iload 0
aload 1
iload 2
iload 3
invokevirtual com.google.protobuf.Utf8$Processor.partialIsValidUtf8:(I[BII)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 state I
0 1 1 bytes [B
0 1 2 index I
0 1 3 limit I
MethodParameters:
Name Flags
state
bytes
index
limit
private static int incompleteStateFor(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
bipush -12
if_icmple 1
iconst_m1
goto 2
StackMap locals:
StackMap stack:
1: iload 0
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 byte1 I
MethodParameters:
Name Flags
byte1
private static int incompleteStateFor(int, int);
descriptor: (II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 0
bipush -12
if_icmpgt 1
iload 1
bipush -65
if_icmple 2
StackMap locals:
StackMap stack:
1: iconst_m1
goto 3
StackMap locals:
StackMap stack:
2: iload 0
iload 1
bipush 8
ishl
ixor
StackMap locals:
StackMap stack: int
3: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 byte1 I
0 4 1 byte2 I
MethodParameters:
Name Flags
byte1
byte2
private static int incompleteStateFor(int, int, int);
descriptor: (III)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 0
bipush -12
if_icmpgt 1
iload 1
bipush -65
if_icmpgt 1
iload 2
bipush -65
if_icmple 2
1: StackMap locals:
StackMap stack:
iconst_m1
goto 3
2: StackMap locals:
StackMap stack:
iload 0
iload 1
bipush 8
ishl
ixor
iload 2
bipush 16
ishl
ixor
3: StackMap locals:
StackMap stack: int
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 byte1 I
0 4 1 byte2 I
0 4 2 byte3 I
MethodParameters:
Name Flags
byte1
byte2
byte3
private static int incompleteStateFor(byte[], int, int);
descriptor: ([BII)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iconst_1
isub
baload
istore 3
start local 3 1: iload 2
iload 1
isub
tableswitch { // 0 - 2
0: 2
1: 3
2: 4
default: 5
}
2: StackMap locals: int
StackMap stack:
iload 3
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(I)I
ireturn
3: StackMap locals:
StackMap stack:
iload 3
aload 0
iload 1
baload
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
ireturn
4: StackMap locals:
StackMap stack:
iload 3
aload 0
iload 1
baload
aload 0
iload 1
iconst_1
iadd
baload
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(III)I
ireturn
5: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 bytes [B
0 6 1 index I
0 6 2 limit I
1 6 3 byte1 I
MethodParameters:
Name Flags
bytes
index
limit
private static int incompleteStateFor(java.nio.ByteBuffer, int, int, int);
descriptor: (Ljava/nio/ByteBuffer;III)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
tableswitch { // 0 - 2
0: 1
1: 2
2: 3
default: 4
}
1: StackMap locals:
StackMap stack:
iload 1
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(I)I
ireturn
2: StackMap locals:
StackMap stack:
iload 1
aload 0
iload 2
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(II)I
ireturn
3: StackMap locals:
StackMap stack:
iload 1
aload 0
iload 2
invokevirtual java.nio.ByteBuffer.get:(I)B
aload 0
iload 2
iconst_1
iadd
invokevirtual java.nio.ByteBuffer.get:(I)B
invokestatic com.google.protobuf.Utf8.incompleteStateFor:(III)I
ireturn
4: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 buffer Ljava/nio/ByteBuffer;
0 5 1 byte1 I
0 5 2 index I
0 5 3 remaining I
MethodParameters:
Name Flags
buffer final
byte1 final
index final
remaining final
static int encodedLength(java.lang.CharSequence);
descriptor: (Ljava/lang/CharSequence;)I
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=5, args_size=1
start local 0 0: aload 0
invokeinterface java.lang.CharSequence.length:()I
istore 1
start local 1 1: iload 1
istore 2
start local 2 2: iconst_0
istore 3
start local 3 3: goto 5
4: StackMap locals: int int int
StackMap stack:
iinc 3 1
5: StackMap locals:
StackMap stack:
iload 3
iload 1
if_icmpge 14
aload 0
iload 3
invokeinterface java.lang.CharSequence.charAt:(I)C
sipush 128
if_icmplt 4
6: goto 14
7: StackMap locals:
StackMap stack:
aload 0
iload 3
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 4
start local 4 8: iload 4
sipush 2048
if_icmpge 11
9: iload 2
bipush 127
iload 4
isub
bipush 31
iushr
iadd
istore 2
10: goto 13
11: StackMap locals: int
StackMap stack:
iload 2
aload 0
iload 3
invokestatic com.google.protobuf.Utf8.encodedLengthGeneral:(Ljava/lang/CharSequence;I)I
iadd
istore 2
12: goto 15
end local 4 13: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
14: iload 3
iload 1
if_icmplt 7
15: StackMap locals:
StackMap stack:
iload 2
iload 1
if_icmpge 19
16: new java.lang.IllegalArgumentException
dup
17: new java.lang.StringBuilder
dup
ldc "UTF-8 length does not fit in int: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
i2l
ldc 4294967296
ladd
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
18: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
iload 2
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 sequence Ljava/lang/CharSequence;
1 20 1 utf16Length I
2 20 2 utf8Length I
3 20 3 i I
8 13 4 c C
MethodParameters:
Name Flags
sequence
private static int encodedLengthGeneral(java.lang.CharSequence, int);
descriptor: (Ljava/lang/CharSequence;I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
invokeinterface java.lang.CharSequence.length:()I
istore 2
start local 2 1: iconst_0
istore 3
start local 3 2: iload 1
istore 4
start local 4 3: goto 15
4: StackMap locals: int int int
StackMap stack:
aload 0
iload 4
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 5
start local 5 5: iload 5
sipush 2048
if_icmpge 8
6: iload 3
bipush 127
iload 5
isub
bipush 31
iushr
iadd
istore 3
7: goto 14
8: StackMap locals: int
StackMap stack:
iinc 3 2
9: ldc 55296
iload 5
if_icmpgt 14
iload 5
ldc 57343
if_icmpgt 14
10: aload 0
iload 4
invokestatic java.lang.Character.codePointAt:(Ljava/lang/CharSequence;I)I
istore 6
start local 6 11: iload 6
ldc 65536
if_icmpge 13
12: new com.google.protobuf.Utf8$UnpairedSurrogateException
dup
iload 4
iload 2
invokespecial com.google.protobuf.Utf8$UnpairedSurrogateException.<init>:(II)V
athrow
13: StackMap locals: int
StackMap stack:
iinc 4 1
end local 6 end local 5 14: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
15: iload 4
iload 2
if_icmplt 4
end local 4 16: iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 sequence Ljava/lang/CharSequence;
0 17 1 start I
1 17 2 utf16Length I
2 17 3 utf8Length I
3 16 4 i I
5 14 5 c C
11 14 6 cp I
MethodParameters:
Name Flags
sequence
start
static int encode(java.lang.CharSequence, byte[], int, int);
descriptor: (Ljava/lang/CharSequence;[BII)I
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
aload 0
aload 1
iload 2
iload 3
invokevirtual com.google.protobuf.Utf8$Processor.encodeUtf8:(Ljava/lang/CharSequence;[BII)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 in Ljava/lang/CharSequence;
0 1 1 out [B
0 1 2 offset I
0 1 3 length I
MethodParameters:
Name Flags
in
out
offset
length
static boolean isValidUtf8(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
aload 0
aload 0
invokevirtual java.nio.ByteBuffer.position:()I
aload 0
invokevirtual java.nio.ByteBuffer.remaining:()I
invokevirtual com.google.protobuf.Utf8$Processor.isValidUtf8:(Ljava/nio/ByteBuffer;II)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
buffer
static int partialIsValidUtf8(int, java.nio.ByteBuffer, int, int);
descriptor: (ILjava/nio/ByteBuffer;II)I
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
iload 0
aload 1
iload 2
iload 3
invokevirtual com.google.protobuf.Utf8$Processor.partialIsValidUtf8:(ILjava/nio/ByteBuffer;II)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 state I
0 1 1 buffer Ljava/nio/ByteBuffer;
0 1 2 index I
0 1 3 limit I
MethodParameters:
Name Flags
state
buffer
index
limit
static java.lang.String decodeUtf8(java.nio.ByteBuffer, int, int);
descriptor: (Ljava/nio/ByteBuffer;II)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
aload 0
iload 1
iload 2
invokevirtual com.google.protobuf.Utf8$Processor.decodeUtf8:(Ljava/nio/ByteBuffer;II)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 buffer Ljava/nio/ByteBuffer;
0 1 1 index I
0 1 2 size I
Exceptions:
throws com.google.protobuf.InvalidProtocolBufferException
MethodParameters:
Name Flags
buffer
index
size
static java.lang.String decodeUtf8(byte[], int, int);
descriptor: ([BII)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
aload 0
iload 1
iload 2
invokevirtual com.google.protobuf.Utf8$Processor.decodeUtf8:([BII)Ljava/lang/String;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 bytes [B
0 1 1 index I
0 1 2 size I
Exceptions:
throws com.google.protobuf.InvalidProtocolBufferException
MethodParameters:
Name Flags
bytes
index
size
static void encodeUtf8(java.lang.CharSequence, java.nio.ByteBuffer);
descriptor: (Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: getstatic com.google.protobuf.Utf8.processor:Lcom/google/protobuf/Utf8$Processor;
aload 0
aload 1
invokevirtual com.google.protobuf.Utf8$Processor.encodeUtf8:(Ljava/lang/CharSequence;Ljava/nio/ByteBuffer;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 in Ljava/lang/CharSequence;
0 2 1 out Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
in
out
private static int estimateConsecutiveAscii(java.nio.ByteBuffer, int, int);
descriptor: (Ljava/nio/ByteBuffer;II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: iload 1
istore 3
start local 3 1: iload 2
bipush 7
isub
istore 4
start local 4 2: goto 4
StackMap locals: int int
StackMap stack:
3: iinc 3 8
StackMap locals:
StackMap stack:
4: iload 3
iload 4
if_icmpge 5
aload 0
iload 3
invokevirtual java.nio.ByteBuffer.getLong:(I)J
ldc -9187201950435737472
land
lconst_0
lcmp
ifeq 3
5: StackMap locals:
StackMap stack:
iload 3
iload 1
isub
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 buffer Ljava/nio/ByteBuffer;
0 6 1 index I
0 6 2 limit I
1 6 3 i I
2 6 4 lim I
MethodParameters:
Name Flags
buffer
index
limit
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/google/protobuf/Utf8;
}
SourceFile: "Utf8.java"
NestMembers:
com.google.protobuf.Utf8$DecodeUtil com.google.protobuf.Utf8$Processor com.google.protobuf.Utf8$SafeProcessor com.google.protobuf.Utf8$UnpairedSurrogateException com.google.protobuf.Utf8$UnsafeProcessor
InnerClasses:
private DecodeUtil = com.google.protobuf.Utf8$DecodeUtil of com.google.protobuf.Utf8
abstract Processor = com.google.protobuf.Utf8$Processor of com.google.protobuf.Utf8
final SafeProcessor = com.google.protobuf.Utf8$SafeProcessor of com.google.protobuf.Utf8
UnpairedSurrogateException = com.google.protobuf.Utf8$UnpairedSurrogateException of com.google.protobuf.Utf8
final UnsafeProcessor = com.google.protobuf.Utf8$UnsafeProcessor of com.google.protobuf.Utf8