class org.postgresql.core.UTF8Encoding extends org.postgresql.core.Encoding
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.postgresql.core.UTF8Encoding
super_class: org.postgresql.core.Encoding
{
private static final int MIN_2_BYTES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 128
private static final int MIN_3_BYTES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2048
private static final int MIN_4_BYTES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65536
private static final int MAX_CODE_POINT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1114111
private char[] decoderArray;
descriptor: [C
flags: (0x0002) ACC_PRIVATE
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc "UTF-8"
iconst_1
invokespecial org.postgresql.core.Encoding.<init>:(Ljava/lang/String;Z)V
1: aload 0
sipush 1024
newarray 5
putfield org.postgresql.core.UTF8Encoding.decoderArray:[C
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/postgresql/core/UTF8Encoding;
private static void checkByte(int, int, int);
descriptor: (III)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 0
sipush 192
iand
sipush 128
if_icmpeq 6
1: new java.io.IOException
dup
2: ldc "Illegal UTF-8 sequence: byte {0} of {1} byte sequence is not 10xxxxxx: {2}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
3: iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iload 0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
4: invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
5: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 ch I
0 7 1 pos I
0 7 2 len I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
ch
pos
len
private static void checkMinimal(int, int);
descriptor: (II)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: iload 0
iload 1
if_icmplt 2
1: return
2: StackMap locals:
StackMap stack:
iload 1
lookupswitch { // 3
128: 3
2048: 5
65536: 7
default: 9
}
3: StackMap locals:
StackMap stack:
iconst_2
istore 2
start local 2 4: goto 12
end local 2 5: StackMap locals:
StackMap stack:
iconst_3
istore 2
start local 2 6: goto 12
end local 2 7: StackMap locals:
StackMap stack:
iconst_4
istore 2
start local 2 8: goto 12
end local 2 9: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
10: new java.lang.StringBuilder
dup
ldc "unexpected minValue passed to checkMinimal: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
11: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
start local 2 12: StackMap locals: int
StackMap stack:
iload 0
sipush 128
if_icmpge 15
13: iconst_1
istore 3
start local 3 14: goto 22
end local 3 StackMap locals:
StackMap stack:
15: iload 0
sipush 2048
if_icmpge 18
16: iconst_2
istore 3
start local 3 17: goto 22
end local 3 StackMap locals:
StackMap stack:
18: iload 0
ldc 65536
if_icmpge 21
19: iconst_3
istore 3
start local 3 20: goto 22
end local 3 21: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "unexpected ch passed to checkMinimal: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
start local 3 22: StackMap locals: int
StackMap stack:
new java.io.IOException
dup
23: ldc "Illegal UTF-8 sequence: {0} bytes used to encode a {1} byte value: {2}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
24: iload 2
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iload 0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
25: invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
26: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 ch I
0 27 1 minValue I
4 5 2 actualLen I
6 7 2 actualLen I
8 9 2 actualLen I
12 27 2 actualLen I
14 15 3 expectedLen I
17 18 3 expectedLen I
20 21 3 expectedLen I
22 27 3 expectedLen I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
ch
minValue
public synchronized java.lang.String decode(byte[], int, int);
descriptor: ([BII)Ljava/lang/String;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=7, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.postgresql.core.UTF8Encoding.decoderArray:[C
astore 4
start local 4 1: aload 4
arraylength
iload 3
if_icmpge 3
2: aload 0
iload 3
newarray 5
dup_x1
putfield org.postgresql.core.UTF8Encoding.decoderArray:[C
astore 4
3: StackMap locals: char[]
StackMap stack:
iload 2
istore 5
start local 5 4: iconst_0
istore 6
start local 6 5: iload 3
iload 2
iadd
istore 7
start local 7 6: goto 54
7: StackMap locals: int int int
StackMap stack:
aload 1
iload 5
iinc 5 1
baload
sipush 255
iand
istore 8
start local 8 8: iload 8
sipush 128
if_icmplt 40
9: iload 8
sipush 192
if_icmpge 13
10: new java.io.IOException
dup
ldc "Illegal UTF-8 sequence: initial byte is {0}: {1}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
11: ldc "10xxxxxx"
aastore
dup
iconst_1
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
12: invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals: int
StackMap stack:
iload 8
sipush 224
if_icmpge 19
14: iload 8
bipush 31
iand
bipush 6
ishl
istore 8
15: aload 1
iload 5
baload
iconst_2
iconst_2
invokestatic org.postgresql.core.UTF8Encoding.checkByte:(III)V
16: iload 8
aload 1
iload 5
iinc 5 1
baload
bipush 63
iand
ior
istore 8
17: iload 8
sipush 128
invokestatic org.postgresql.core.UTF8Encoding.checkMinimal:(II)V
18: goto 40
StackMap locals:
StackMap stack:
19: iload 8
sipush 240
if_icmpge 27
20: iload 8
bipush 15
iand
bipush 12
ishl
istore 8
21: aload 1
iload 5
baload
iconst_2
iconst_3
invokestatic org.postgresql.core.UTF8Encoding.checkByte:(III)V
22: iload 8
aload 1
iload 5
iinc 5 1
baload
bipush 63
iand
bipush 6
ishl
ior
istore 8
23: aload 1
iload 5
baload
iconst_3
iconst_3
invokestatic org.postgresql.core.UTF8Encoding.checkByte:(III)V
24: iload 8
aload 1
iload 5
iinc 5 1
baload
bipush 63
iand
ior
istore 8
25: iload 8
sipush 2048
invokestatic org.postgresql.core.UTF8Encoding.checkMinimal:(II)V
26: goto 40
StackMap locals:
StackMap stack:
27: iload 8
sipush 248
if_icmpge 37
28: iload 8
bipush 7
iand
bipush 18
ishl
istore 8
29: aload 1
iload 5
baload
iconst_2
iconst_4
invokestatic org.postgresql.core.UTF8Encoding.checkByte:(III)V
30: iload 8
aload 1
iload 5
iinc 5 1
baload
bipush 63
iand
bipush 12
ishl
ior
istore 8
31: aload 1
iload 5
baload
iconst_3
iconst_4
invokestatic org.postgresql.core.UTF8Encoding.checkByte:(III)V
32: iload 8
aload 1
iload 5
iinc 5 1
baload
bipush 63
iand
bipush 6
ishl
ior
istore 8
33: aload 1
iload 5
baload
iconst_4
iconst_4
invokestatic org.postgresql.core.UTF8Encoding.checkByte:(III)V
34: iload 8
aload 1
iload 5
iinc 5 1
baload
bipush 63
iand
ior
istore 8
35: iload 8
ldc 65536
invokestatic org.postgresql.core.UTF8Encoding.checkMinimal:(II)V
36: goto 40
37: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "Illegal UTF-8 sequence: initial byte is {0}: {1}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
38: ldc "11111xxx"
aastore
dup
iconst_1
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
39: invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
40: StackMap locals:
StackMap stack:
iload 8
ldc 1114111
if_icmple 44
41: new java.io.IOException
dup
42: ldc "Illegal UTF-8 sequence: final value is out of range: {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
43: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
44: StackMap locals:
StackMap stack:
iload 8
ldc 65535
if_icmple 49
45: iload 8
ldc 65536
isub
istore 8
46: aload 4
iload 6
iinc 6 1
ldc 55296
iload 8
bipush 10
ishr
iadd
i2c
castore
47: aload 4
iload 6
iinc 6 1
ldc 56320
iload 8
sipush 1023
iand
iadd
i2c
castore
48: goto 54
StackMap locals:
StackMap stack:
49: iload 8
ldc 55296
if_icmplt 53
iload 8
ldc 57344
if_icmpge 53
50: new java.io.IOException
dup
51: ldc "Illegal UTF-8 sequence: final value is a surrogate value: {0}"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 8
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokestatic org.postgresql.util.GT.tr:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
52: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
53: StackMap locals:
StackMap stack:
aload 4
iload 6
iinc 6 1
iload 8
i2c
castore
end local 8 54: StackMap locals:
StackMap stack:
iload 5
iload 7
if_icmplt 7
55: goto 58
StackMap locals:
StackMap stack: java.lang.ArrayIndexOutOfBoundsException
56: pop
57: new java.io.IOException
dup
ldc "Illegal UTF-8 sequence: multibyte sequence was truncated"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
58: StackMap locals:
StackMap stack:
iload 5
iload 7
if_icmple 60
59: new java.io.IOException
dup
ldc "Illegal UTF-8 sequence: multibyte sequence was truncated"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
60: StackMap locals:
StackMap stack:
new java.lang.String
dup
aload 4
iconst_0
iload 6
invokespecial java.lang.String.<init>:([CII)V
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 61 0 this Lorg/postgresql/core/UTF8Encoding;
0 61 1 data [B
0 61 2 offset I
0 61 3 length I
1 61 4 cdata [C
4 61 5 in I
5 61 6 out I
6 61 7 end I
8 54 8 ch I
Exception table:
from to target type
6 55 56 Class java.lang.ArrayIndexOutOfBoundsException
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
data
offset
length
}
SourceFile: "UTF8Encoding.java"