public final class io.undertow.util.FlexBase64$Decoder
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.undertow.util.FlexBase64$Decoder
super_class: java.lang.Object
{
private int state;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int last;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int lastPos;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final byte[] decodingTable;
descriptor: [B
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final int SKIP;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 64768
private static final int MARK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65024
private static final int DONE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65280
private static final int ERROR;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 983040
private void <init>(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // io.undertow.util.FlexBase64$Decoder this
start local 1 // boolean url
0: .line 996
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
1: .line 997
aload 0 /* this */
iload 1 /* url */
ifeq 2
getstatic io.undertow.util.FlexBase64.URL_DECODING_TABLE:[B
goto 3
StackMap locals: io.undertow.util.FlexBase64$Decoder int
StackMap stack: io.undertow.util.FlexBase64$Decoder
2: getstatic io.undertow.util.FlexBase64.STANDARD_DECODING_TABLE:[B
StackMap locals: io.undertow.util.FlexBase64$Decoder int
StackMap stack: io.undertow.util.FlexBase64$Decoder byte[]
3: putfield io.undertow.util.FlexBase64$Decoder.decodingTable:[B
4: .line 998
return
end local 1 // boolean url
end local 0 // io.undertow.util.FlexBase64$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/undertow/util/FlexBase64$Decoder;
0 5 1 url Z
MethodParameters:
Name Flags
url
private int nextByte(java.nio.ByteBuffer, int, int, boolean);
descriptor: (Ljava/nio/ByteBuffer;IIZ)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=5
start local 0 // io.undertow.util.FlexBase64$Decoder this
start local 1 // java.nio.ByteBuffer buffer
start local 2 // int state
start local 3 // int last
start local 4 // boolean ignoreErrors
0: .line 1002
aload 0 /* this */
aload 1 /* buffer */
invokevirtual java.nio.ByteBuffer.get:()B
sipush 255
iand
iload 2 /* state */
iload 3 /* last */
iload 4 /* ignoreErrors */
invokevirtual io.undertow.util.FlexBase64$Decoder.nextByte:(IIIZ)I
ireturn
end local 4 // boolean ignoreErrors
end local 3 // int last
end local 2 // int state
end local 1 // java.nio.ByteBuffer buffer
end local 0 // io.undertow.util.FlexBase64$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/util/FlexBase64$Decoder;
0 1 1 buffer Ljava/nio/ByteBuffer;
0 1 2 state I
0 1 3 last I
0 1 4 ignoreErrors Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buffer
state
last
ignoreErrors
private int nextByte(java.lang.Object, int, int, int, boolean);
descriptor: (Ljava/lang/Object;IIIZ)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=6
start local 0 // io.undertow.util.FlexBase64$Decoder this
start local 1 // java.lang.Object source
start local 2 // int pos
start local 3 // int state
start local 4 // int last
start local 5 // boolean ignoreErrors
0: .line 1007
aload 1 /* source */
instanceof byte[]
ifeq 3
1: .line 1008
aload 1 /* source */
checkcast byte[]
iload 2 /* pos */
baload
sipush 255
iand
istore 6 /* c */
start local 6 // int c
2: .line 1009
goto 7
end local 6 // int c
StackMap locals:
StackMap stack:
3: aload 1 /* source */
instanceof java.lang.String
ifeq 6
4: .line 1010
aload 1 /* source */
checkcast java.lang.String
iload 2 /* pos */
invokevirtual java.lang.String.charAt:(I)C
sipush 255
iand
istore 6 /* c */
start local 6 // int c
5: .line 1011
goto 7
end local 6 // int c
6: .line 1012
StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
start local 6 // int c
7: .line 1015
StackMap locals: int
StackMap stack:
aload 0 /* this */
iload 6 /* c */
iload 3 /* state */
iload 4 /* last */
iload 5 /* ignoreErrors */
invokevirtual io.undertow.util.FlexBase64$Decoder.nextByte:(IIIZ)I
ireturn
end local 6 // int c
end local 5 // boolean ignoreErrors
end local 4 // int last
end local 3 // int state
end local 2 // int pos
end local 1 // java.lang.Object source
end local 0 // io.undertow.util.FlexBase64$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/undertow/util/FlexBase64$Decoder;
0 8 1 source Ljava/lang/Object;
0 8 2 pos I
0 8 3 state I
0 8 4 last I
0 8 5 ignoreErrors Z
2 3 6 c I
5 6 6 c I
7 8 6 c I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
pos
state
last
ignoreErrors
private int nextByte(int, int, int, boolean);
descriptor: (IIIZ)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=5
start local 0 // io.undertow.util.FlexBase64$Decoder this
start local 1 // int c
start local 2 // int state
start local 3 // int last
start local 4 // boolean ignoreErrors
0: .line 1019
iload 3 /* last */
ldc 65024
if_icmpne 4
1: .line 1020
iload 1 /* c */
bipush 61
if_icmpeq 3
2: .line 1021
new java.io.IOException
dup
ldc "Expected padding character"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
3: .line 1023
StackMap locals:
StackMap stack:
ldc 65280
ireturn
4: .line 1025
StackMap locals:
StackMap stack:
iload 1 /* c */
bipush 61
if_icmpne 10
5: .line 1026
iload 2 /* state */
iconst_2
if_icmpne 7
6: .line 1027
ldc 65024
ireturn
7: .line 1028
StackMap locals:
StackMap stack:
iload 2 /* state */
iconst_3
if_icmpne 9
8: .line 1029
ldc 65280
ireturn
9: .line 1031
StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "Unexpected padding character"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
10: .line 1034
StackMap locals:
StackMap stack:
iload 1 /* c */
bipush 32
if_icmpeq 11
iload 1 /* c */
bipush 9
if_icmpeq 11
iload 1 /* c */
bipush 13
if_icmpeq 11
iload 1 /* c */
bipush 10
if_icmpne 12
11: .line 1035
StackMap locals:
StackMap stack:
ldc 64768
ireturn
12: .line 1037
StackMap locals:
StackMap stack:
iload 1 /* c */
bipush 43
if_icmplt 13
iload 1 /* c */
bipush 122
if_icmple 16
13: .line 1038
StackMap locals:
StackMap stack:
iload 4 /* ignoreErrors */
ifeq 15
14: .line 1039
ldc 983040
ireturn
15: .line 1041
StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Invalid base64 character encountered: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1 /* c */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
16: .line 1043
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield io.undertow.util.FlexBase64$Decoder.decodingTable:[B
iload 1 /* c */
bipush 43
isub
baload
sipush 255
iand
iconst_1
isub
istore 5 /* b */
start local 5 // int b
17: .line 1044
iload 5 /* b */
ifge 21
18: .line 1045
iload 4 /* ignoreErrors */
ifeq 20
19: .line 1046
ldc 983040
ireturn
20: .line 1048
StackMap locals: int
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Invalid base64 character encountered: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1 /* c */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
21: .line 1050
StackMap locals:
StackMap stack:
iload 5 /* b */
ireturn
end local 5 // int b
end local 4 // boolean ignoreErrors
end local 3 // int last
end local 2 // int state
end local 1 // int c
end local 0 // io.undertow.util.FlexBase64$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lio/undertow/util/FlexBase64$Decoder;
0 22 1 c I
0 22 2 state I
0 22 3 last I
0 22 4 ignoreErrors Z
17 22 5 b I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
c
state
last
ignoreErrors
public void decode(java.nio.ByteBuffer, java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=8, args_size=3
start local 0 // io.undertow.util.FlexBase64$Decoder this
start local 1 // java.nio.ByteBuffer source
start local 2 // java.nio.ByteBuffer target
0: .line 1066
aload 2 /* target */
ifnonnull 2
1: .line 1067
new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
2: .line 1069
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield io.undertow.util.FlexBase64$Decoder.last:I
istore 3 /* last */
start local 3 // int last
3: .line 1070
aload 0 /* this */
getfield io.undertow.util.FlexBase64$Decoder.state:I
istore 4 /* state */
start local 4 // int state
4: .line 1072
aload 1 /* source */
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 5 /* remaining */
start local 5 // int remaining
5: .line 1073
aload 2 /* target */
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 6 /* targetRemaining */
start local 6 // int targetRemaining
6: .line 1074
iconst_0
istore 7 /* b */
start local 7 // int b
7: .line 1075
goto 52
8: .line 1076
StackMap locals: io.undertow.util.FlexBase64$Decoder java.nio.ByteBuffer java.nio.ByteBuffer int int int int int
StackMap stack:
aload 0 /* this */
aload 1 /* source */
iload 4 /* state */
iload 3 /* last */
iconst_0
invokevirtual io.undertow.util.FlexBase64$Decoder.nextByte:(Ljava/nio/ByteBuffer;IIZ)I
istore 7 /* b */
9: .line 1077
iload 7 /* b */
ldc 65024
if_icmpne 14
10: .line 1078
ldc 65024
istore 3 /* last */
11: .line 1079
iinc 5 /* remaining */ -1
iload 5 /* remaining */
ifgt 13
12: .line 1080
goto 53
13: .line 1082
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* source */
iload 4 /* state */
iload 3 /* last */
iconst_0
invokevirtual io.undertow.util.FlexBase64$Decoder.nextByte:(Ljava/nio/ByteBuffer;IIZ)I
istore 7 /* b */
14: .line 1084
StackMap locals:
StackMap stack:
iload 7 /* b */
ldc 65280
if_icmpne 17
15: .line 1085
iconst_0
dup
istore 4 /* state */
istore 3 /* last */
16: .line 1086
goto 53
17: .line 1088
StackMap locals:
StackMap stack:
iload 7 /* b */
ldc 64768
if_icmpne 19
18: .line 1089
goto 52
19: .line 1092
StackMap locals:
StackMap stack:
iload 4 /* state */
ifne 28
20: .line 1093
iload 7 /* b */
iconst_2
ishl
istore 3 /* last */
21: .line 1094
iinc 4 /* state */ 1
22: .line 1095
iload 5 /* remaining */
iinc 5 /* remaining */ -1
ifgt 24
23: .line 1096
goto 53
24: .line 1098
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* source */
iload 4 /* state */
iload 3 /* last */
iconst_0
invokevirtual io.undertow.util.FlexBase64$Decoder.nextByte:(Ljava/nio/ByteBuffer;IIZ)I
istore 7 /* b */
25: .line 1099
iload 7 /* b */
ldc 61440
iand
ifeq 28
26: .line 1100
aload 1 /* source */
aload 1 /* source */
invokevirtual java.nio.ByteBuffer.position:()I
iconst_1
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
27: .line 1101
goto 52
28: .line 1104
StackMap locals:
StackMap stack:
iload 4 /* state */
iconst_1
if_icmpne 38
29: .line 1105
aload 2 /* target */
iload 3 /* last */
iload 7 /* b */
iconst_4
iushr
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
30: .line 1106
iload 7 /* b */
bipush 15
iand
iconst_4
ishl
istore 3 /* last */
31: .line 1107
iinc 4 /* state */ 1
32: .line 1108
iload 5 /* remaining */
iinc 5 /* remaining */ -1
ifle 53
iinc 6 /* targetRemaining */ -1
iload 6 /* targetRemaining */
ifgt 34
33: .line 1109
goto 53
34: .line 1111
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* source */
iload 4 /* state */
iload 3 /* last */
iconst_0
invokevirtual io.undertow.util.FlexBase64$Decoder.nextByte:(Ljava/nio/ByteBuffer;IIZ)I
istore 7 /* b */
35: .line 1112
iload 7 /* b */
ldc 61440
iand
ifeq 38
36: .line 1113
aload 1 /* source */
aload 1 /* source */
invokevirtual java.nio.ByteBuffer.position:()I
iconst_1
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
37: .line 1114
goto 52
38: .line 1117
StackMap locals:
StackMap stack:
iload 4 /* state */
iconst_2
if_icmpne 48
39: .line 1118
aload 2 /* target */
iload 3 /* last */
iload 7 /* b */
iconst_2
iushr
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
40: .line 1119
iload 7 /* b */
iconst_3
iand
bipush 6
ishl
istore 3 /* last */
41: .line 1120
iinc 4 /* state */ 1
42: .line 1121
iload 5 /* remaining */
iinc 5 /* remaining */ -1
ifle 53
iinc 6 /* targetRemaining */ -1
iload 6 /* targetRemaining */
ifgt 44
43: .line 1122
goto 53
44: .line 1124
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* source */
iload 4 /* state */
iload 3 /* last */
iconst_0
invokevirtual io.undertow.util.FlexBase64$Decoder.nextByte:(Ljava/nio/ByteBuffer;IIZ)I
istore 7 /* b */
45: .line 1125
iload 7 /* b */
ldc 61440
iand
ifeq 48
46: .line 1126
aload 1 /* source */
aload 1 /* source */
invokevirtual java.nio.ByteBuffer.position:()I
iconst_1
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
47: .line 1127
goto 52
48: .line 1130
StackMap locals:
StackMap stack:
iload 4 /* state */
iconst_3
if_icmpne 52
49: .line 1131
aload 2 /* target */
iload 3 /* last */
iload 7 /* b */
ior
i2b
invokevirtual java.nio.ByteBuffer.put:(B)Ljava/nio/ByteBuffer;
pop
50: .line 1132
iconst_0
dup
istore 4 /* state */
istore 3 /* last */
51: .line 1133
iinc 6 /* targetRemaining */ -1
52: .line 1075
StackMap locals:
StackMap stack:
iload 5 /* remaining */
iinc 5 /* remaining */ -1
ifle 53
iload 6 /* targetRemaining */
ifgt 8
53: .line 1137
StackMap locals:
StackMap stack:
iload 5 /* remaining */
ifle 55
54: .line 1138
aload 0 /* this */
aload 1 /* source */
iload 7 /* b */
iload 4 /* state */
iload 3 /* last */
invokevirtual io.undertow.util.FlexBase64$Decoder.drain:(Ljava/nio/ByteBuffer;III)V
55: .line 1141
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 3 /* last */
putfield io.undertow.util.FlexBase64$Decoder.last:I
56: .line 1142
aload 0 /* this */
iload 4 /* state */
putfield io.undertow.util.FlexBase64$Decoder.state:I
57: .line 1143
aload 0 /* this */
aload 1 /* source */
invokevirtual java.nio.ByteBuffer.position:()I
putfield io.undertow.util.FlexBase64$Decoder.lastPos:I
58: .line 1144
return
end local 7 // int b
end local 6 // int targetRemaining
end local 5 // int remaining
end local 4 // int state
end local 3 // int last
end local 2 // java.nio.ByteBuffer target
end local 1 // java.nio.ByteBuffer source
end local 0 // io.undertow.util.FlexBase64$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 59 0 this Lio/undertow/util/FlexBase64$Decoder;
0 59 1 source Ljava/nio/ByteBuffer;
0 59 2 target Ljava/nio/ByteBuffer;
3 59 3 last I
4 59 4 state I
5 59 5 remaining I
6 59 6 targetRemaining I
7 59 7 b I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
target
private void drain(java.nio.ByteBuffer, int, int, int);
descriptor: (Ljava/nio/ByteBuffer;III)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=5
start local 0 // io.undertow.util.FlexBase64$Decoder this
start local 1 // java.nio.ByteBuffer source
start local 2 // int b
start local 3 // int state
start local 4 // int last
0: .line 1147
goto 11
1: .line 1149
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* source */
iload 3 /* state */
iload 4 /* last */
iconst_1
invokevirtual io.undertow.util.FlexBase64$Decoder.nextByte:(Ljava/nio/ByteBuffer;IIZ)I
istore 2 /* b */
2: .line 1150
goto 5
StackMap locals:
StackMap stack: java.io.IOException
3: pop
4: .line 1151
iconst_0
istore 2 /* b */
5: .line 1154
StackMap locals:
StackMap stack:
iload 2 /* b */
ldc 65024
if_icmpne 8
6: .line 1155
ldc 65024
istore 4 /* last */
7: .line 1156
goto 11
8: .line 1160
StackMap locals:
StackMap stack:
iload 2 /* b */
ldc 61440
iand
ifne 11
9: .line 1161
aload 1 /* source */
aload 1 /* source */
invokevirtual java.nio.ByteBuffer.position:()I
iconst_1
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
10: .line 1162
goto 12
11: .line 1147
StackMap locals:
StackMap stack:
iload 2 /* b */
ldc 65280
if_icmpeq 12
aload 1 /* source */
invokevirtual java.nio.ByteBuffer.remaining:()I
ifgt 1
12: .line 1166
StackMap locals:
StackMap stack:
iload 2 /* b */
ldc 65280
if_icmpne 21
13: .line 1168
goto 20
14: .line 1169
StackMap locals:
StackMap stack:
aload 1 /* source */
invokevirtual java.nio.ByteBuffer.get:()B
istore 2 /* b */
15: .line 1170
iload 2 /* b */
bipush 10
if_icmpne 17
16: .line 1171
goto 21
17: .line 1172
StackMap locals:
StackMap stack:
iload 2 /* b */
bipush 32
if_icmpeq 20
iload 2 /* b */
bipush 9
if_icmpeq 20
iload 2 /* b */
bipush 13
if_icmpeq 20
18: .line 1173
aload 1 /* source */
aload 1 /* source */
invokevirtual java.nio.ByteBuffer.position:()I
iconst_1
isub
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
19: .line 1174
goto 21
20: .line 1168
StackMap locals:
StackMap stack:
aload 1 /* source */
invokevirtual java.nio.ByteBuffer.remaining:()I
ifgt 14
21: .line 1179
StackMap locals:
StackMap stack:
return
end local 4 // int last
end local 3 // int state
end local 2 // int b
end local 1 // java.nio.ByteBuffer source
end local 0 // io.undertow.util.FlexBase64$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lio/undertow/util/FlexBase64$Decoder;
0 22 1 source Ljava/nio/ByteBuffer;
0 22 2 b I
0 22 3 state I
0 22 4 last I
Exception table:
from to target type
1 2 3 Class java.io.IOException
MethodParameters:
Name Flags
source
b
state
last
private int drain(java.lang.Object, int, int, int, int, int);
descriptor: (Ljava/lang/Object;IIIII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=7
start local 0 // io.undertow.util.FlexBase64$Decoder this
start local 1 // java.lang.Object source
start local 2 // int pos
start local 3 // int limit
start local 4 // int b
start local 5 // int state
start local 6 // int last
0: .line 1182
goto 11
1: .line 1184
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* source */
iload 2 /* pos */
iinc 2 /* pos */ 1
iload 5 /* state */
iload 6 /* last */
iconst_1
invokevirtual io.undertow.util.FlexBase64$Decoder.nextByte:(Ljava/lang/Object;IIIZ)I
istore 4 /* b */
2: .line 1185
goto 5
StackMap locals:
StackMap stack: java.io.IOException
3: pop
4: .line 1186
iconst_0
istore 4 /* b */
5: .line 1189
StackMap locals:
StackMap stack:
iload 4 /* b */
ldc 65024
if_icmpne 8
6: .line 1190
ldc 65024
istore 6 /* last */
7: .line 1191
goto 11
8: .line 1195
StackMap locals:
StackMap stack:
iload 4 /* b */
ldc 61440
iand
ifne 11
9: .line 1196
iinc 2 /* pos */ -1
10: .line 1197
goto 12
11: .line 1182
StackMap locals:
StackMap stack:
iload 4 /* b */
ldc 65280
if_icmpeq 12
iload 3 /* limit */
iload 2 /* pos */
if_icmpgt 1
12: .line 1201
StackMap locals:
StackMap stack:
iload 4 /* b */
ldc 65280
if_icmpne 27
13: .line 1203
goto 26
14: .line 1204
StackMap locals:
StackMap stack:
aload 1 /* source */
instanceof byte[]
ifeq 17
15: .line 1205
aload 1 /* source */
checkcast byte[]
iload 2 /* pos */
iinc 2 /* pos */ 1
baload
sipush 255
iand
istore 4 /* b */
16: .line 1206
goto 21
StackMap locals:
StackMap stack:
17: aload 1 /* source */
instanceof java.lang.String
ifeq 20
18: .line 1207
aload 1 /* source */
checkcast java.lang.String
iload 2 /* pos */
iinc 2 /* pos */ 1
invokevirtual java.lang.String.charAt:(I)C
sipush 255
iand
istore 4 /* b */
19: .line 1208
goto 21
20: .line 1209
StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
invokespecial java.lang.IllegalArgumentException.<init>:()V
athrow
21: .line 1212
StackMap locals:
StackMap stack:
iload 4 /* b */
bipush 10
if_icmpne 23
22: .line 1213
goto 27
23: .line 1214
StackMap locals:
StackMap stack:
iload 4 /* b */
bipush 32
if_icmpeq 26
iload 4 /* b */
bipush 9
if_icmpeq 26
iload 4 /* b */
bipush 13
if_icmpeq 26
24: .line 1215
iinc 2 /* pos */ -1
25: .line 1216
goto 27
26: .line 1203
StackMap locals:
StackMap stack:
iload 3 /* limit */
iload 2 /* pos */
if_icmpgt 14
27: .line 1225
StackMap locals:
StackMap stack:
iload 2 /* pos */
ireturn
end local 6 // int last
end local 5 // int state
end local 4 // int b
end local 3 // int limit
end local 2 // int pos
end local 1 // java.lang.Object source
end local 0 // io.undertow.util.FlexBase64$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lio/undertow/util/FlexBase64$Decoder;
0 28 1 source Ljava/lang/Object;
0 28 2 pos I
0 28 3 limit I
0 28 4 b I
0 28 5 state I
0 28 6 last I
Exception table:
from to target type
1 2 3 Class java.io.IOException
MethodParameters:
Name Flags
source
pos
limit
b
state
last
private int decode(java.lang.Object, int, int, byte[], int, int);
descriptor: (Ljava/lang/Object;II[BII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=14, args_size=7
start local 0 // io.undertow.util.FlexBase64$Decoder this
start local 1 // java.lang.Object source
start local 2 // int sourcePos
start local 3 // int sourceLimit
start local 4 // byte[] target
start local 5 // int targetPos
start local 6 // int targetLimit
0: .line 1229
aload 4 /* target */
ifnonnull 2
1: .line 1230
new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
2: .line 1232
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield io.undertow.util.FlexBase64$Decoder.last:I
istore 7 /* last */
start local 7 // int last
3: .line 1233
aload 0 /* this */
getfield io.undertow.util.FlexBase64$Decoder.state:I
istore 8 /* state */
start local 8 // int state
4: .line 1235
iload 2 /* sourcePos */
istore 9 /* pos */
start local 9 // int pos
5: .line 1236
iload 5 /* targetPos */
istore 10 /* opos */
start local 10 // int opos
6: .line 1237
iload 3 /* sourceLimit */
istore 11 /* limit */
start local 11 // int limit
7: .line 1238
iload 6 /* targetLimit */
istore 12 /* olimit */
start local 12 // int olimit
8: .line 1240
iconst_0
istore 13 /* b */
start local 13 // int b
9: .line 1241
goto 53
10: .line 1242
StackMap locals: io.undertow.util.FlexBase64$Decoder java.lang.Object int int byte[] int int int int int int int int int
StackMap stack:
aload 0 /* this */
aload 1 /* source */
iload 9 /* pos */
iinc 9 /* pos */ 1
iload 8 /* state */
iload 7 /* last */
iconst_0
invokevirtual io.undertow.util.FlexBase64$Decoder.nextByte:(Ljava/lang/Object;IIIZ)I
istore 13 /* b */
11: .line 1243
iload 13 /* b */
ldc 65024
if_icmpne 16
12: .line 1244
ldc 65024
istore 7 /* last */
13: .line 1245
iload 9 /* pos */
iload 11 /* limit */
if_icmplt 15
14: .line 1246
goto 54
15: .line 1248
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* source */
iload 9 /* pos */
iinc 9 /* pos */ 1
iload 8 /* state */
iload 7 /* last */
iconst_0
invokevirtual io.undertow.util.FlexBase64$Decoder.nextByte:(Ljava/lang/Object;IIIZ)I
istore 13 /* b */
16: .line 1250
StackMap locals:
StackMap stack:
iload 13 /* b */
ldc 65280
if_icmpne 19
17: .line 1251
iconst_0
dup
istore 8 /* state */
istore 7 /* last */
18: .line 1252
goto 54
19: .line 1254
StackMap locals:
StackMap stack:
iload 13 /* b */
ldc 64768
if_icmpne 21
20: .line 1255
goto 53
21: .line 1258
StackMap locals:
StackMap stack:
iload 8 /* state */
ifne 30
22: .line 1259
iload 13 /* b */
iconst_2
ishl
istore 7 /* last */
23: .line 1260
iinc 8 /* state */ 1
24: .line 1261
iload 9 /* pos */
iload 11 /* limit */
if_icmplt 26
25: .line 1262
goto 54
26: .line 1264
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* source */
iload 9 /* pos */
iinc 9 /* pos */ 1
iload 8 /* state */
iload 7 /* last */
iconst_0
invokevirtual io.undertow.util.FlexBase64$Decoder.nextByte:(Ljava/lang/Object;IIIZ)I
istore 13 /* b */
27: .line 1265
iload 13 /* b */
ldc 61440
iand
ifeq 30
28: .line 1266
iinc 9 /* pos */ -1
29: .line 1267
goto 53
30: .line 1270
StackMap locals:
StackMap stack:
iload 8 /* state */
iconst_1
if_icmpne 40
31: .line 1271
aload 4 /* target */
iload 10 /* opos */
iinc 10 /* opos */ 1
iload 7 /* last */
iload 13 /* b */
iconst_4
iushr
ior
i2b
bastore
32: .line 1272
iload 13 /* b */
bipush 15
iand
iconst_4
ishl
istore 7 /* last */
33: .line 1273
iinc 8 /* state */ 1
34: .line 1274
iload 9 /* pos */
iload 11 /* limit */
if_icmpge 54
iload 10 /* opos */
iload 12 /* olimit */
if_icmplt 36
35: .line 1275
goto 54
36: .line 1277
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* source */
iload 9 /* pos */
iinc 9 /* pos */ 1
iload 8 /* state */
iload 7 /* last */
iconst_0
invokevirtual io.undertow.util.FlexBase64$Decoder.nextByte:(Ljava/lang/Object;IIIZ)I
istore 13 /* b */
37: .line 1278
iload 13 /* b */
ldc 61440
iand
ifeq 40
38: .line 1279
iinc 9 /* pos */ -1
39: .line 1280
goto 53
40: .line 1283
StackMap locals:
StackMap stack:
iload 8 /* state */
iconst_2
if_icmpne 50
41: .line 1284
aload 4 /* target */
iload 10 /* opos */
iinc 10 /* opos */ 1
iload 7 /* last */
iload 13 /* b */
iconst_2
iushr
ior
i2b
bastore
42: .line 1285
iload 13 /* b */
iconst_3
iand
bipush 6
ishl
istore 7 /* last */
43: .line 1286
iinc 8 /* state */ 1
44: .line 1287
iload 9 /* pos */
iload 11 /* limit */
if_icmpge 54
iload 10 /* opos */
iload 12 /* olimit */
if_icmplt 46
45: .line 1288
goto 54
46: .line 1290
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* source */
iload 9 /* pos */
iinc 9 /* pos */ 1
iload 8 /* state */
iload 7 /* last */
iconst_0
invokevirtual io.undertow.util.FlexBase64$Decoder.nextByte:(Ljava/lang/Object;IIIZ)I
istore 13 /* b */
47: .line 1291
iload 13 /* b */
ldc 61440
iand
ifeq 50
48: .line 1292
iinc 9 /* pos */ -1
49: .line 1293
goto 53
50: .line 1296
StackMap locals:
StackMap stack:
iload 8 /* state */
iconst_3
if_icmpne 53
51: .line 1297
aload 4 /* target */
iload 10 /* opos */
iinc 10 /* opos */ 1
iload 7 /* last */
iload 13 /* b */
ior
i2b
bastore
52: .line 1298
iconst_0
dup
istore 8 /* state */
istore 7 /* last */
53: .line 1241
StackMap locals:
StackMap stack:
iload 11 /* limit */
iload 9 /* pos */
if_icmple 54
iload 12 /* olimit */
iload 10 /* opos */
if_icmpgt 10
54: .line 1302
StackMap locals:
StackMap stack:
iload 11 /* limit */
iload 9 /* pos */
if_icmple 56
55: .line 1303
aload 0 /* this */
aload 1 /* source */
iload 9 /* pos */
iload 11 /* limit */
iload 13 /* b */
iload 8 /* state */
iload 7 /* last */
invokevirtual io.undertow.util.FlexBase64$Decoder.drain:(Ljava/lang/Object;IIIII)I
istore 9 /* pos */
56: .line 1306
StackMap locals:
StackMap stack:
aload 0 /* this */
iload 7 /* last */
putfield io.undertow.util.FlexBase64$Decoder.last:I
57: .line 1307
aload 0 /* this */
iload 8 /* state */
putfield io.undertow.util.FlexBase64$Decoder.state:I
58: .line 1308
aload 0 /* this */
iload 9 /* pos */
putfield io.undertow.util.FlexBase64$Decoder.lastPos:I
59: .line 1309
iload 10 /* opos */
ireturn
end local 13 // int b
end local 12 // int olimit
end local 11 // int limit
end local 10 // int opos
end local 9 // int pos
end local 8 // int state
end local 7 // int last
end local 6 // int targetLimit
end local 5 // int targetPos
end local 4 // byte[] target
end local 3 // int sourceLimit
end local 2 // int sourcePos
end local 1 // java.lang.Object source
end local 0 // io.undertow.util.FlexBase64$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 60 0 this Lio/undertow/util/FlexBase64$Decoder;
0 60 1 source Ljava/lang/Object;
0 60 2 sourcePos I
0 60 3 sourceLimit I
0 60 4 target [B
0 60 5 targetPos I
0 60 6 targetLimit I
3 60 7 last I
4 60 8 state I
5 60 9 pos I
6 60 10 opos I
7 60 11 limit I
8 60 12 olimit I
9 60 13 b I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
sourcePos
sourceLimit
target
targetPos
targetLimit
public int getLastInputPosition();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // io.undertow.util.FlexBase64$Decoder this
0: .line 1320
aload 0 /* this */
getfield io.undertow.util.FlexBase64$Decoder.lastPos:I
ireturn
end local 0 // io.undertow.util.FlexBase64$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/util/FlexBase64$Decoder;
public int decode(java.lang.String, int, int, byte[], int, int);
descriptor: (Ljava/lang/String;II[BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=7
start local 0 // io.undertow.util.FlexBase64$Decoder this
start local 1 // java.lang.String source
start local 2 // int sourcePos
start local 3 // int sourceLimit
start local 4 // byte[] target
start local 5 // int targetPos
start local 6 // int targetLimit
0: .line 1347
aload 0 /* this */
aload 1 /* source */
iload 2 /* sourcePos */
iload 3 /* sourceLimit */
aload 4 /* target */
iload 5 /* targetPos */
iload 6 /* targetLimit */
invokevirtual io.undertow.util.FlexBase64$Decoder.decode:(Ljava/lang/Object;II[BII)I
ireturn
end local 6 // int targetLimit
end local 5 // int targetPos
end local 4 // byte[] target
end local 3 // int sourceLimit
end local 2 // int sourcePos
end local 1 // java.lang.String source
end local 0 // io.undertow.util.FlexBase64$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/util/FlexBase64$Decoder;
0 1 1 source Ljava/lang/String;
0 1 2 sourcePos I
0 1 3 sourceLimit I
0 1 4 target [B
0 1 5 targetPos I
0 1 6 targetLimit I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
sourcePos
sourceLimit
target
targetPos
targetLimit
public int decode(java.lang.String, byte[]);
descriptor: (Ljava/lang/String;[B)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=3
start local 0 // io.undertow.util.FlexBase64$Decoder this
start local 1 // java.lang.String source
start local 2 // byte[] target
0: .line 1368
aload 0 /* this */
aload 1 /* source */
iconst_0
aload 1 /* source */
invokevirtual java.lang.String.length:()I
aload 2 /* target */
iconst_0
aload 2 /* target */
arraylength
invokevirtual io.undertow.util.FlexBase64$Decoder.decode:(Ljava/lang/String;II[BII)I
ireturn
end local 2 // byte[] target
end local 1 // java.lang.String source
end local 0 // io.undertow.util.FlexBase64$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/util/FlexBase64$Decoder;
0 1 1 source Ljava/lang/String;
0 1 2 target [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
target
public int decode(byte[], int, int, byte[], int, int);
descriptor: ([BII[BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=7
start local 0 // io.undertow.util.FlexBase64$Decoder this
start local 1 // byte[] source
start local 2 // int sourcePos
start local 3 // int sourceLimit
start local 4 // byte[] target
start local 5 // int targetPos
start local 6 // int targetLimit
0: .line 1406
aload 0 /* this */
aload 1 /* source */
iload 2 /* sourcePos */
iload 3 /* sourceLimit */
aload 4 /* target */
iload 5 /* targetPos */
iload 6 /* targetLimit */
invokevirtual io.undertow.util.FlexBase64$Decoder.decode:(Ljava/lang/Object;II[BII)I
ireturn
end local 6 // int targetLimit
end local 5 // int targetPos
end local 4 // byte[] target
end local 3 // int sourceLimit
end local 2 // int sourcePos
end local 1 // byte[] source
end local 0 // io.undertow.util.FlexBase64$Decoder this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/undertow/util/FlexBase64$Decoder;
0 1 1 source [B
0 1 2 sourcePos I
0 1 3 sourceLimit I
0 1 4 target [B
0 1 5 targetPos I
0 1 6 targetLimit I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
sourcePos
sourceLimit
target
targetPos
targetLimit
private static java.nio.ByteBuffer decode(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Ljava/nio/ByteBuffer;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=6, args_size=2
start local 0 // java.lang.String source
start local 1 // boolean url
0: .line 1410
aload 0 /* source */
invokevirtual java.lang.String.length:()I
iconst_4
irem
istore 2 /* remainder */
start local 2 // int remainder
1: .line 1411
aload 0 /* source */
invokevirtual java.lang.String.length:()I
iconst_4
idiv
iload 2 /* remainder */
ifne 2
iconst_0
goto 3
StackMap locals: java.lang.String int int
StackMap stack: int
2: iconst_4
iload 2 /* remainder */
isub
StackMap locals: java.lang.String int int
StackMap stack: int int
3: iadd
iconst_3
imul
istore 3 /* size */
start local 3 // int size
4: .line 1412
iload 3 /* size */
newarray 8
astore 4 /* buffer */
start local 4 // byte[] buffer
5: .line 1413
new io.undertow.util.FlexBase64$Decoder
dup
iload 1 /* url */
invokespecial io.undertow.util.FlexBase64$Decoder.<init>:(Z)V
aload 0 /* source */
iconst_0
aload 0 /* source */
invokevirtual java.lang.String.length:()I
aload 4 /* buffer */
iconst_0
iload 3 /* size */
invokevirtual io.undertow.util.FlexBase64$Decoder.decode:(Ljava/lang/String;II[BII)I
istore 5 /* actual */
start local 5 // int actual
6: .line 1414
aload 4 /* buffer */
iconst_0
iload 5 /* actual */
invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
areturn
end local 5 // int actual
end local 4 // byte[] buffer
end local 3 // int size
end local 2 // int remainder
end local 1 // boolean url
end local 0 // java.lang.String source
LocalVariableTable:
Start End Slot Name Signature
0 7 0 source Ljava/lang/String;
0 7 1 url Z
1 7 2 remainder I
4 7 3 size I
5 7 4 buffer [B
6 7 5 actual I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
url
private static java.nio.ByteBuffer decode(byte[], int, int, boolean);
descriptor: ([BIIZ)Ljava/nio/ByteBuffer;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=9, args_size=4
start local 0 // byte[] source
start local 1 // int off
start local 2 // int limit
start local 3 // boolean url
0: .line 1418
iload 2 /* limit */
iload 1 /* off */
isub
istore 4 /* len */
start local 4 // int len
1: .line 1419
iload 4 /* len */
iconst_4
irem
istore 5 /* remainder */
start local 5 // int remainder
2: .line 1420
iload 4 /* len */
iconst_4
idiv
iload 5 /* remainder */
ifne 3
iconst_0
goto 4
StackMap locals: byte[] int int int int int
StackMap stack: int
3: iconst_4
iload 5 /* remainder */
isub
StackMap locals: byte[] int int int int int
StackMap stack: int int
4: iadd
iconst_3
imul
istore 6 /* size */
start local 6 // int size
5: .line 1421
iload 6 /* size */
newarray 8
astore 7 /* buffer */
start local 7 // byte[] buffer
6: .line 1422
new io.undertow.util.FlexBase64$Decoder
dup
iload 3 /* url */
invokespecial io.undertow.util.FlexBase64$Decoder.<init>:(Z)V
aload 0 /* source */
iload 1 /* off */
iload 2 /* limit */
aload 7 /* buffer */
iconst_0
iload 6 /* size */
invokevirtual io.undertow.util.FlexBase64$Decoder.decode:([BII[BII)I
istore 8 /* actual */
start local 8 // int actual
7: .line 1423
aload 7 /* buffer */
iconst_0
iload 8 /* actual */
invokestatic java.nio.ByteBuffer.wrap:([BII)Ljava/nio/ByteBuffer;
areturn
end local 8 // int actual
end local 7 // byte[] buffer
end local 6 // int size
end local 5 // int remainder
end local 4 // int len
end local 3 // boolean url
end local 2 // int limit
end local 1 // int off
end local 0 // byte[] source
LocalVariableTable:
Start End Slot Name Signature
0 8 0 source [B
0 8 1 off I
0 8 2 limit I
0 8 3 url Z
1 8 4 len I
2 8 5 remainder I
5 8 6 size I
6 8 7 buffer [B
7 8 8 actual I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
off
limit
url
private static java.nio.ByteBuffer decode(java.nio.ByteBuffer, boolean);
descriptor: (Ljava/nio/ByteBuffer;Z)Ljava/nio/ByteBuffer;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=2
start local 0 // java.nio.ByteBuffer source
start local 1 // boolean url
0: .line 1427
aload 0 /* source */
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 2 /* len */
start local 2 // int len
1: .line 1428
iload 2 /* len */
iconst_4
irem
istore 3 /* remainder */
start local 3 // int remainder
2: .line 1429
iload 2 /* len */
iconst_4
idiv
iload 3 /* remainder */
ifne 3
iconst_0
goto 4
StackMap locals: java.nio.ByteBuffer int int int
StackMap stack: int
3: iconst_4
iload 3 /* remainder */
isub
StackMap locals: java.nio.ByteBuffer int int int
StackMap stack: int int
4: iadd
iconst_3
imul
istore 4 /* size */
start local 4 // int size
5: .line 1430
iload 4 /* size */
invokestatic java.nio.ByteBuffer.allocate:(I)Ljava/nio/ByteBuffer;
astore 5 /* buffer */
start local 5 // java.nio.ByteBuffer buffer
6: .line 1431
new io.undertow.util.FlexBase64$Decoder
dup
iload 1 /* url */
invokespecial io.undertow.util.FlexBase64$Decoder.<init>:(Z)V
aload 0 /* source */
aload 5 /* buffer */
invokevirtual io.undertow.util.FlexBase64$Decoder.decode:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V
7: .line 1432
aload 5 /* buffer */
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
8: .line 1433
aload 5 /* buffer */
areturn
end local 5 // java.nio.ByteBuffer buffer
end local 4 // int size
end local 3 // int remainder
end local 2 // int len
end local 1 // boolean url
end local 0 // java.nio.ByteBuffer source
LocalVariableTable:
Start End Slot Name Signature
0 9 0 source Ljava/nio/ByteBuffer;
0 9 1 url Z
1 9 2 len I
2 9 3 remainder I
5 9 4 size I
6 9 5 buffer Ljava/nio/ByteBuffer;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
url
}
SourceFile: "FlexBase64.java"
NestHost: io.undertow.util.FlexBase64
InnerClasses:
public final Decoder = io.undertow.util.FlexBase64$Decoder of io.undertow.util.FlexBase64