final class org.jvnet.mimepull.BASE64DecoderStream extends java.io.FilterInputStream
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.jvnet.mimepull.BASE64DecoderStream
super_class: java.io.FilterInputStream
{
private byte[] buffer;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int bufsize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int index;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[] input_buffer;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int input_pos;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int input_len;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean ignoreErrors;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private static final char[] pem_array;
descriptor: [C
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] pem_convert_array;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=0
0: .line 186
bipush 64
newarray 5
dup
iconst_0
1: .line 187
bipush 65
castore
dup
iconst_1
bipush 66
castore
dup
iconst_2
bipush 67
castore
dup
iconst_3
bipush 68
castore
dup
iconst_4
bipush 69
castore
dup
iconst_5
bipush 70
castore
dup
bipush 6
bipush 71
castore
dup
bipush 7
bipush 72
castore
dup
bipush 8
2: .line 188
bipush 73
castore
dup
bipush 9
bipush 74
castore
dup
bipush 10
bipush 75
castore
dup
bipush 11
bipush 76
castore
dup
bipush 12
bipush 77
castore
dup
bipush 13
bipush 78
castore
dup
bipush 14
bipush 79
castore
dup
bipush 15
bipush 80
castore
dup
bipush 16
3: .line 189
bipush 81
castore
dup
bipush 17
bipush 82
castore
dup
bipush 18
bipush 83
castore
dup
bipush 19
bipush 84
castore
dup
bipush 20
bipush 85
castore
dup
bipush 21
bipush 86
castore
dup
bipush 22
bipush 87
castore
dup
bipush 23
bipush 88
castore
dup
bipush 24
4: .line 190
bipush 89
castore
dup
bipush 25
bipush 90
castore
dup
bipush 26
bipush 97
castore
dup
bipush 27
bipush 98
castore
dup
bipush 28
bipush 99
castore
dup
bipush 29
bipush 100
castore
dup
bipush 30
bipush 101
castore
dup
bipush 31
bipush 102
castore
dup
bipush 32
5: .line 191
bipush 103
castore
dup
bipush 33
bipush 104
castore
dup
bipush 34
bipush 105
castore
dup
bipush 35
bipush 106
castore
dup
bipush 36
bipush 107
castore
dup
bipush 37
bipush 108
castore
dup
bipush 38
bipush 109
castore
dup
bipush 39
bipush 110
castore
dup
bipush 40
6: .line 192
bipush 111
castore
dup
bipush 41
bipush 112
castore
dup
bipush 42
bipush 113
castore
dup
bipush 43
bipush 114
castore
dup
bipush 44
bipush 115
castore
dup
bipush 45
bipush 116
castore
dup
bipush 46
bipush 117
castore
dup
bipush 47
bipush 118
castore
dup
bipush 48
7: .line 193
bipush 119
castore
dup
bipush 49
bipush 120
castore
dup
bipush 50
bipush 121
castore
dup
bipush 51
bipush 122
castore
dup
bipush 52
bipush 48
castore
dup
bipush 53
bipush 49
castore
dup
bipush 54
bipush 50
castore
dup
bipush 55
bipush 51
castore
dup
bipush 56
8: .line 194
bipush 52
castore
dup
bipush 57
bipush 53
castore
dup
bipush 58
bipush 54
castore
dup
bipush 59
bipush 55
castore
dup
bipush 60
bipush 56
castore
dup
bipush 61
bipush 57
castore
dup
bipush 62
bipush 43
castore
dup
bipush 63
bipush 47
castore
9: .line 186
putstatic org.jvnet.mimepull.BASE64DecoderStream.pem_array:[C
10: .line 197
sipush 256
newarray 8
putstatic org.jvnet.mimepull.BASE64DecoderStream.pem_convert_array:[B
11: .line 200
iconst_0
istore 0 /* i */
start local 0 // int i
12: goto 15
13: .line 201
StackMap locals: int
StackMap stack:
getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_convert_array:[B
iload 0 /* i */
iconst_m1
bastore
14: .line 200
iinc 0 /* i */ 1
StackMap locals:
StackMap stack:
15: iload 0 /* i */
sipush 255
if_icmplt 13
end local 0 // int i
16: .line 203
iconst_0
istore 0 /* i */
start local 0 // int i
17: goto 20
18: .line 204
StackMap locals:
StackMap stack:
getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_convert_array:[B
getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_array:[C
iload 0 /* i */
caload
iload 0 /* i */
i2b
bastore
19: .line 203
iinc 0 /* i */ 1
StackMap locals:
StackMap stack:
20: iload 0 /* i */
getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_array:[C
arraylength
if_icmplt 18
end local 0 // int i
21: .line 206
return
LocalVariableTable:
Start End Slot Name Signature
12 16 0 i I
17 21 0 i I
public void <init>(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
start local 1 // java.io.InputStream in
0: .line 49
aload 0 /* this */
aload 1 /* in */
invokespecial java.io.FilterInputStream.<init>:(Ljava/io/InputStream;)V
1: .line 28
aload 0 /* this */
iconst_3
newarray 8
putfield org.jvnet.mimepull.BASE64DecoderStream.buffer:[B
2: .line 29
aload 0 /* this */
iconst_0
putfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
3: .line 30
aload 0 /* this */
iconst_0
putfield org.jvnet.mimepull.BASE64DecoderStream.index:I
4: .line 34
aload 0 /* this */
sipush 8190
newarray 8
putfield org.jvnet.mimepull.BASE64DecoderStream.input_buffer:[B
5: .line 35
aload 0 /* this */
iconst_0
putfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
6: .line 36
aload 0 /* this */
iconst_0
putfield org.jvnet.mimepull.BASE64DecoderStream.input_len:I
7: .line 38
aload 0 /* this */
iconst_0
putfield org.jvnet.mimepull.BASE64DecoderStream.ignoreErrors:Z
8: .line 51
aload 0 /* this */
9: .line 52
ldc "mail.mime.base64.ignoreerrors"
iconst_0
10: .line 51
invokestatic org.jvnet.mimepull.PropUtil.getBooleanSystemProperty:(Ljava/lang/String;Z)Z
putfield org.jvnet.mimepull.BASE64DecoderStream.ignoreErrors:Z
11: .line 53
return
end local 1 // java.io.InputStream in
end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/jvnet/mimepull/BASE64DecoderStream;
0 12 1 in Ljava/io/InputStream;
MethodParameters:
Name Flags
in
public void <init>(java.io.InputStream, boolean);
descriptor: (Ljava/io/InputStream;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
start local 1 // java.io.InputStream in
start local 2 // boolean ignoreErrors
0: .line 62
aload 0 /* this */
aload 1 /* in */
invokespecial java.io.FilterInputStream.<init>:(Ljava/io/InputStream;)V
1: .line 28
aload 0 /* this */
iconst_3
newarray 8
putfield org.jvnet.mimepull.BASE64DecoderStream.buffer:[B
2: .line 29
aload 0 /* this */
iconst_0
putfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
3: .line 30
aload 0 /* this */
iconst_0
putfield org.jvnet.mimepull.BASE64DecoderStream.index:I
4: .line 34
aload 0 /* this */
sipush 8190
newarray 8
putfield org.jvnet.mimepull.BASE64DecoderStream.input_buffer:[B
5: .line 35
aload 0 /* this */
iconst_0
putfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
6: .line 36
aload 0 /* this */
iconst_0
putfield org.jvnet.mimepull.BASE64DecoderStream.input_len:I
7: .line 38
aload 0 /* this */
iconst_0
putfield org.jvnet.mimepull.BASE64DecoderStream.ignoreErrors:Z
8: .line 63
aload 0 /* this */
iload 2 /* ignoreErrors */
putfield org.jvnet.mimepull.BASE64DecoderStream.ignoreErrors:Z
9: .line 64
return
end local 2 // boolean ignoreErrors
end local 1 // java.io.InputStream in
end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jvnet/mimepull/BASE64DecoderStream;
0 10 1 in Ljava/io/InputStream;
0 10 2 ignoreErrors Z
MethodParameters:
Name Flags
in
ignoreErrors
public int read();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
0: .line 81
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.index:I
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
if_icmplt 5
1: .line 82
aload 0 /* this */
aload 0 /* this */
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.buffer:[B
iconst_0
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.buffer:[B
arraylength
invokevirtual org.jvnet.mimepull.BASE64DecoderStream.decode:([BII)I
putfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
2: .line 83
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
ifgt 4
3: .line 84
iconst_m1
ireturn
4: .line 86
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_0
putfield org.jvnet.mimepull.BASE64DecoderStream.index:I
5: .line 88
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.buffer:[B
aload 0 /* this */
dup
getfield org.jvnet.mimepull.BASE64DecoderStream.index:I
dup_x1
iconst_1
iadd
putfield org.jvnet.mimepull.BASE64DecoderStream.index:I
baload
sipush 255
iand
ireturn
end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jvnet/mimepull/BASE64DecoderStream;
Exceptions:
throws java.io.IOException
public int read(byte[], int, int);
descriptor: ([BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=7, args_size=4
start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
start local 1 // byte[] buf
start local 2 // int off
start local 3 // int len
0: .line 108
iload 2 /* off */
istore 4 /* off0 */
start local 4 // int off0
1: .line 109
goto 4
2: .line 110
StackMap locals: int
StackMap stack:
aload 1 /* buf */
iload 2 /* off */
iinc 2 /* off */ 1
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.buffer:[B
aload 0 /* this */
dup
getfield org.jvnet.mimepull.BASE64DecoderStream.index:I
dup_x1
iconst_1
iadd
putfield org.jvnet.mimepull.BASE64DecoderStream.index:I
baload
bastore
3: .line 111
iinc 3 /* len */ -1
4: .line 109
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.index:I
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
if_icmpge 5
iload 3 /* len */
ifgt 2
5: .line 113
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.index:I
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
if_icmplt 7
6: .line 114
aload 0 /* this */
aload 0 /* this */
iconst_0
dup_x1
putfield org.jvnet.mimepull.BASE64DecoderStream.index:I
putfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
7: .line 117
StackMap locals:
StackMap stack:
iload 3 /* len */
iconst_3
idiv
iconst_3
imul
istore 5 /* bsize */
start local 5 // int bsize
8: .line 118
iload 5 /* bsize */
ifle 21
9: .line 119
aload 0 /* this */
aload 1 /* buf */
iload 2 /* off */
iload 5 /* bsize */
invokevirtual org.jvnet.mimepull.BASE64DecoderStream.decode:([BII)I
istore 6 /* size */
start local 6 // int size
10: .line 120
iload 2 /* off */
iload 6 /* size */
iadd
istore 2 /* off */
11: .line 121
iload 3 /* len */
iload 6 /* size */
isub
istore 3 /* len */
12: .line 123
iload 6 /* size */
iload 5 /* bsize */
if_icmpeq 21
13: .line 124
iload 2 /* off */
iload 4 /* off0 */
if_icmpne 15
14: .line 125
iconst_m1
ireturn
15: .line 127
StackMap locals: int int
StackMap stack:
iload 2 /* off */
iload 4 /* off0 */
isub
ireturn
end local 6 // int size
16: .line 134
StackMap locals:
StackMap stack:
aload 0 /* this */
invokevirtual org.jvnet.mimepull.BASE64DecoderStream.read:()I
istore 6 /* c */
start local 6 // int c
17: .line 135
iload 6 /* c */
iconst_m1
if_icmpne 19
18: .line 136
goto 22
19: .line 138
StackMap locals: int
StackMap stack:
aload 1 /* buf */
iload 2 /* off */
iinc 2 /* off */ 1
iload 6 /* c */
i2b
bastore
end local 6 // int c
20: .line 133
iinc 3 /* len */ -1
StackMap locals:
StackMap stack:
21: iload 3 /* len */
ifgt 16
22: .line 141
StackMap locals:
StackMap stack:
iload 2 /* off */
iload 4 /* off0 */
if_icmpne 24
23: .line 142
iconst_m1
ireturn
24: .line 144
StackMap locals:
StackMap stack:
iload 2 /* off */
iload 4 /* off0 */
isub
ireturn
end local 5 // int bsize
end local 4 // int off0
end local 3 // int len
end local 2 // int off
end local 1 // byte[] buf
end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lorg/jvnet/mimepull/BASE64DecoderStream;
0 25 1 buf [B
0 25 2 off I
0 25 3 len I
1 25 4 off0 I
8 25 5 bsize I
10 16 6 size I
17 20 6 c I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
buf
off
len
public long skip(long);
descriptor: (J)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=2
start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
start local 1 // long n
0: .line 153
lconst_0
lstore 3 /* skipped */
start local 3 // long skipped
1: .line 154
goto 3
2: .line 155
StackMap locals: long
StackMap stack:
lload 3 /* skipped */
lconst_1
ladd
lstore 3 /* skipped */
3: .line 154
StackMap locals:
StackMap stack:
lload 1 /* n */
dup2
lconst_1
lsub
lstore 1 /* n */
lconst_0
lcmp
ifle 4
aload 0 /* this */
invokevirtual org.jvnet.mimepull.BASE64DecoderStream.read:()I
ifge 2
4: .line 157
StackMap locals:
StackMap stack:
lload 3 /* skipped */
lreturn
end local 3 // long skipped
end local 1 // long n
end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jvnet/mimepull/BASE64DecoderStream;
0 5 1 n J
1 5 3 skipped J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
n
public boolean markSupported();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
0: .line 166
iconst_0
ireturn
end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jvnet/mimepull/BASE64DecoderStream;
public int available();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
0: .line 179
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.in:Ljava/io/InputStream;
invokevirtual java.io.InputStream.available:()I
iconst_3
imul
iconst_4
idiv
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.bufsize:I
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.index:I
isub
iadd
ireturn
end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jvnet/mimepull/BASE64DecoderStream;
Exceptions:
throws java.io.IOException
private int decode(byte[], int, int);
descriptor: ([BII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=10, args_size=4
start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
start local 1 // byte[] outbuf
start local 2 // int pos
start local 3 // int len
0: .line 223
iload 2 /* pos */
istore 4 /* pos0 */
start local 4 // int pos0
1: .line 224
goto 73
2: .line 230
StackMap locals: int
StackMap stack:
iconst_0
istore 5 /* got */
start local 5 // int got
3: .line 231
iconst_0
istore 6 /* val */
start local 6 // int val
4: .line 232
goto 65
5: .line 233
StackMap locals: int int
StackMap stack:
aload 0 /* this */
invokevirtual org.jvnet.mimepull.BASE64DecoderStream.getByte:()I
istore 7 /* i */
start local 7 // int i
6: .line 234
iload 7 /* i */
iconst_m1
if_icmpeq 7
iload 7 /* i */
bipush -2
if_icmpne 62
7: .line 236
StackMap locals: int
StackMap stack:
iload 7 /* i */
iconst_m1
if_icmpne 19
8: .line 237
iload 5 /* got */
ifne 10
9: .line 238
iload 2 /* pos */
iload 4 /* pos0 */
isub
ireturn
10: .line 240
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.ignoreErrors:Z
ifne 17
11: .line 241
new org.jvnet.mimepull.DecodingException
dup
12: .line 242
new java.lang.StringBuilder
dup
ldc "BASE64Decoder: Error in encoded stream: needed 4 valid base64 characters but only got "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
13: .line 244
iload 5 /* got */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " before EOF"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
14: .line 245
aload 0 /* this */
invokevirtual org.jvnet.mimepull.BASE64DecoderStream.recentChars:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
15: .line 242
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: .line 241
invokespecial org.jvnet.mimepull.DecodingException.<init>:(Ljava/lang/String;)V
athrow
17: .line 247
StackMap locals:
StackMap stack:
iconst_1
istore 8 /* atEOF */
start local 8 // boolean atEOF
18: .line 248
goto 30
end local 8 // boolean atEOF
19: .line 251
StackMap locals:
StackMap stack:
iload 5 /* got */
iconst_2
if_icmpge 27
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.ignoreErrors:Z
ifne 27
20: .line 252
new org.jvnet.mimepull.DecodingException
dup
21: .line 253
new java.lang.StringBuilder
dup
ldc "BASE64Decoder: Error in encoded stream: needed at least 2 valid base64 characters, but only got "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
22: .line 255
iload 5 /* got */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
23: .line 256
ldc " before padding character (=)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
24: .line 257
aload 0 /* this */
invokevirtual org.jvnet.mimepull.BASE64DecoderStream.recentChars:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
25: .line 253
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
26: .line 252
invokespecial org.jvnet.mimepull.DecodingException.<init>:(Ljava/lang/String;)V
athrow
27: .line 261
StackMap locals:
StackMap stack:
iload 5 /* got */
ifne 29
28: .line 262
iload 2 /* pos */
iload 4 /* pos0 */
isub
ireturn
29: .line 264
StackMap locals:
StackMap stack:
iconst_0
istore 8 /* atEOF */
start local 8 // boolean atEOF
30: .line 271
StackMap locals: int
StackMap stack:
iload 5 /* got */
iconst_1
isub
istore 9 /* size */
start local 9 // int size
31: .line 272
iload 9 /* size */
ifne 33
32: .line 273
iconst_1
istore 9 /* size */
33: .line 277
StackMap locals: int
StackMap stack:
iinc 5 /* got */ 1
34: .line 278
iload 6 /* val */
bipush 6
ishl
istore 6 /* val */
35: .line 280
goto 54
36: .line 281
StackMap locals:
StackMap stack:
iload 8 /* atEOF */
ifne 52
37: .line 284
aload 0 /* this */
invokevirtual org.jvnet.mimepull.BASE64DecoderStream.getByte:()I
istore 7 /* i */
38: .line 285
iload 7 /* i */
iconst_m1
if_icmpne 45
39: .line 286
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.ignoreErrors:Z
ifne 52
40: .line 287
new org.jvnet.mimepull.DecodingException
dup
41: .line 288
new java.lang.StringBuilder
dup
ldc "BASE64Decoder: Error in encoded stream: hit EOF while looking for padding characters (=)"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
42: .line 291
aload 0 /* this */
invokevirtual org.jvnet.mimepull.BASE64DecoderStream.recentChars:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
43: .line 288
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
44: .line 287
invokespecial org.jvnet.mimepull.DecodingException.<init>:(Ljava/lang/String;)V
athrow
45: .line 293
StackMap locals:
StackMap stack:
iload 7 /* i */
bipush -2
if_icmpeq 52
46: .line 294
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.ignoreErrors:Z
ifne 52
47: .line 295
new org.jvnet.mimepull.DecodingException
dup
48: .line 296
new java.lang.StringBuilder
dup
ldc "BASE64Decoder: Error in encoded stream: found valid base64 character after a padding character (=)"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
49: .line 299
aload 0 /* this */
invokevirtual org.jvnet.mimepull.BASE64DecoderStream.recentChars:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
50: .line 296
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
51: .line 295
invokespecial org.jvnet.mimepull.DecodingException.<init>:(Ljava/lang/String;)V
athrow
52: .line 303
StackMap locals:
StackMap stack:
iload 6 /* val */
bipush 6
ishl
istore 6 /* val */
53: .line 304
iinc 5 /* got */ 1
54: .line 280
StackMap locals:
StackMap stack:
iload 5 /* got */
iconst_4
if_icmplt 36
55: .line 308
iload 6 /* val */
bipush 8
ishr
istore 6 /* val */
56: .line 309
iload 9 /* size */
iconst_2
if_icmpne 58
57: .line 310
aload 1 /* outbuf */
iload 2 /* pos */
iconst_1
iadd
iload 6 /* val */
sipush 255
iand
i2b
bastore
58: .line 312
StackMap locals:
StackMap stack:
iload 6 /* val */
bipush 8
ishr
istore 6 /* val */
59: .line 313
aload 1 /* outbuf */
iload 2 /* pos */
iload 6 /* val */
sipush 255
iand
i2b
bastore
60: .line 315
iload 2 /* pos */
iload 9 /* size */
iadd
istore 2 /* pos */
61: .line 316
iload 2 /* pos */
iload 4 /* pos0 */
isub
ireturn
end local 9 // int size
end local 8 // boolean atEOF
62: .line 319
StackMap locals:
StackMap stack:
iload 6 /* val */
bipush 6
ishl
istore 6 /* val */
63: .line 320
iinc 5 /* got */ 1
64: .line 321
iload 6 /* val */
iload 7 /* i */
ior
istore 6 /* val */
end local 7 // int i
65: .line 232
StackMap locals:
StackMap stack:
iload 5 /* got */
iconst_4
if_icmplt 5
66: .line 326
aload 1 /* outbuf */
iload 2 /* pos */
iconst_2
iadd
iload 6 /* val */
sipush 255
iand
i2b
bastore
67: .line 327
iload 6 /* val */
bipush 8
ishr
istore 6 /* val */
68: .line 328
aload 1 /* outbuf */
iload 2 /* pos */
iconst_1
iadd
iload 6 /* val */
sipush 255
iand
i2b
bastore
69: .line 329
iload 6 /* val */
bipush 8
ishr
istore 6 /* val */
70: .line 330
aload 1 /* outbuf */
iload 2 /* pos */
iload 6 /* val */
sipush 255
iand
i2b
bastore
71: .line 331
iinc 3 /* len */ -3
72: .line 332
iinc 2 /* pos */ 3
end local 6 // int val
end local 5 // int got
73: .line 224
StackMap locals:
StackMap stack:
iload 3 /* len */
iconst_3
if_icmpge 2
74: .line 334
iload 2 /* pos */
iload 4 /* pos0 */
isub
ireturn
end local 4 // int pos0
end local 3 // int len
end local 2 // int pos
end local 1 // byte[] outbuf
end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
LocalVariableTable:
Start End Slot Name Signature
0 75 0 this Lorg/jvnet/mimepull/BASE64DecoderStream;
0 75 1 outbuf [B
0 75 2 pos I
0 75 3 len I
1 75 4 pos0 I
3 73 5 got I
4 73 6 val I
6 65 7 i I
18 19 8 atEOF Z
30 62 8 atEOF Z
31 62 9 size I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
outbuf
pos
len
private int getByte();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=1
start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
0: .line 348
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.input_len:I
if_icmplt 8
1: .line 350
aload 0 /* this */
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.in:Ljava/io/InputStream;
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.input_buffer:[B
invokevirtual java.io.InputStream.read:([B)I
putfield org.jvnet.mimepull.BASE64DecoderStream.input_len:I
2: .line 351
goto 5
StackMap locals:
StackMap stack: java.io.EOFException
3: pop
4: .line 352
iconst_m1
ireturn
5: .line 354
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.input_len:I
ifgt 7
6: .line 355
iconst_m1
ireturn
7: .line 357
StackMap locals:
StackMap stack:
aload 0 /* this */
iconst_0
putfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
8: .line 360
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.input_buffer:[B
aload 0 /* this */
dup
getfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
dup_x1
iconst_1
iadd
putfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
baload
sipush 255
iand
istore 1 /* c */
start local 1 // int c
9: .line 362
iload 1 /* c */
bipush 61
if_icmpne 11
10: .line 363
bipush -2
ireturn
11: .line 366
StackMap locals: int
StackMap stack:
getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_convert_array:[B
iload 1 /* c */
baload
istore 1 /* c */
12: .line 368
iload 1 /* c */
iconst_m1
if_icmpeq 0
13: .line 369
iload 1 /* c */
ireturn
end local 1 // int c
end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lorg/jvnet/mimepull/BASE64DecoderStream;
9 14 1 c I
Exception table:
from to target type
1 2 3 Class java.io.EOFException
Exceptions:
throws java.io.IOException
private java.lang.String recentChars();
descriptor: ()Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=5, args_size=1
start local 0 // org.jvnet.mimepull.BASE64DecoderStream this
0: .line 378
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1 /* errstr */
start local 1 // java.lang.StringBuilder errstr
1: .line 379
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
bipush 10
if_icmple 2
bipush 10
goto 3
StackMap locals: java.lang.StringBuilder
StackMap stack:
2: aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
StackMap locals:
StackMap stack: int
3: istore 2 /* nc */
start local 2 // int nc
4: .line 380
iload 2 /* nc */
ifle 20
5: .line 381
aload 1 /* errstr */
ldc ", the "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2 /* nc */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " most recent characters were: \""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
6: .line 382
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
iload 2 /* nc */
isub
istore 3 /* k */
start local 3 // int k
7: goto 18
8: .line 383
StackMap locals: int int
StackMap stack:
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.input_buffer:[B
iload 3 /* k */
baload
sipush 255
iand
i2c
istore 4 /* c */
start local 4 // char c
9: .line 384
iload 4 /* c */
tableswitch { // 9 - 13
9: 12
10: 11
11: 13
12: 13
13: 10
default: 13
}
10: .line 385
StackMap locals: int
StackMap stack:
aload 1 /* errstr */
ldc "\\r"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
goto 17
11: .line 386
StackMap locals:
StackMap stack:
aload 1 /* errstr */
ldc "\\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
goto 17
12: .line 387
StackMap locals:
StackMap stack:
aload 1 /* errstr */
ldc "\\t"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
goto 17
13: .line 389
StackMap locals:
StackMap stack:
iload 4 /* c */
bipush 32
if_icmplt 16
iload 4 /* c */
bipush 127
if_icmpge 16
14: .line 390
aload 1 /* errstr */
iload 4 /* c */
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
15: .line 391
goto 17
16: .line 392
StackMap locals:
StackMap stack:
aload 1 /* errstr */
ldc "\\"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 4 /* c */
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
pop
end local 4 // char c
17: .line 382
StackMap locals:
StackMap stack:
iinc 3 /* k */ 1
StackMap locals:
StackMap stack:
18: iload 3 /* k */
aload 0 /* this */
getfield org.jvnet.mimepull.BASE64DecoderStream.input_pos:I
if_icmplt 8
end local 3 // int k
19: .line 396
aload 1 /* errstr */
ldc "\""
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
20: .line 398
StackMap locals:
StackMap stack:
aload 1 /* errstr */
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 2 // int nc
end local 1 // java.lang.StringBuilder errstr
end local 0 // org.jvnet.mimepull.BASE64DecoderStream this
LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/jvnet/mimepull/BASE64DecoderStream;
1 21 1 errstr Ljava/lang/StringBuilder;
4 21 2 nc I
7 19 3 k I
9 17 4 c C
public static byte[] decode(byte[]);
descriptor: ([B)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=7, args_size=1
start local 0 // byte[] inbuf
0: .line 411
aload 0 /* inbuf */
arraylength
iconst_4
idiv
iconst_3
imul
istore 1 /* size */
start local 1 // int size
1: .line 412
iload 1 /* size */
ifne 3
2: .line 413
aload 0 /* inbuf */
areturn
3: .line 416
StackMap locals: int
StackMap stack:
aload 0 /* inbuf */
aload 0 /* inbuf */
arraylength
iconst_1
isub
baload
bipush 61
if_icmpne 7
4: .line 417
iinc 1 /* size */ -1
5: .line 418
aload 0 /* inbuf */
aload 0 /* inbuf */
arraylength
iconst_2
isub
baload
bipush 61
if_icmpne 7
6: .line 419
iinc 1 /* size */ -1
7: .line 422
StackMap locals:
StackMap stack:
iload 1 /* size */
newarray 8
astore 2 /* outbuf */
start local 2 // byte[] outbuf
8: .line 424
iconst_0
istore 3 /* inpos */
start local 3 // int inpos
9: iconst_0
istore 4 /* outpos */
start local 4 // int outpos
10: .line 425
aload 0 /* inbuf */
arraylength
istore 1 /* size */
11: .line 426
goto 35
12: .line 428
StackMap locals: byte[] int int
StackMap stack:
iconst_3
istore 6 /* osize */
start local 6 // int osize
13: .line 429
getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_convert_array:[B
aload 0 /* inbuf */
iload 3 /* inpos */
iinc 3 /* inpos */ 1
baload
sipush 255
iand
baload
istore 5 /* val */
start local 5 // int val
14: .line 430
iload 5 /* val */
bipush 6
ishl
istore 5 /* val */
15: .line 431
iload 5 /* val */
getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_convert_array:[B
aload 0 /* inbuf */
iload 3 /* inpos */
iinc 3 /* inpos */ 1
baload
sipush 255
iand
baload
ior
istore 5 /* val */
16: .line 432
iload 5 /* val */
bipush 6
ishl
istore 5 /* val */
17: .line 433
aload 0 /* inbuf */
iload 3 /* inpos */
baload
bipush 61
if_icmpeq 20
18: .line 434
iload 5 /* val */
getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_convert_array:[B
aload 0 /* inbuf */
iload 3 /* inpos */
iinc 3 /* inpos */ 1
baload
sipush 255
iand
baload
ior
istore 5 /* val */
19: .line 435
goto 21
20: .line 436
StackMap locals: int int
StackMap stack:
iinc 6 /* osize */ -1
21: .line 438
StackMap locals:
StackMap stack:
iload 5 /* val */
bipush 6
ishl
istore 5 /* val */
22: .line 439
aload 0 /* inbuf */
iload 3 /* inpos */
baload
bipush 61
if_icmpeq 25
23: .line 440
iload 5 /* val */
getstatic org.jvnet.mimepull.BASE64DecoderStream.pem_convert_array:[B
aload 0 /* inbuf */
iload 3 /* inpos */
iinc 3 /* inpos */ 1
baload
sipush 255
iand
baload
ior
istore 5 /* val */
24: .line 441
goto 26
25: .line 442
StackMap locals:
StackMap stack:
iinc 6 /* osize */ -1
26: .line 444
StackMap locals:
StackMap stack:
iload 6 /* osize */
iconst_2
if_icmple 28
27: .line 445
aload 2 /* outbuf */
iload 4 /* outpos */
iconst_2
iadd
iload 5 /* val */
sipush 255
iand
i2b
bastore
28: .line 447
StackMap locals:
StackMap stack:
iload 5 /* val */
bipush 8
ishr
istore 5 /* val */
29: .line 448
iload 6 /* osize */
iconst_1
if_icmple 31
30: .line 449
aload 2 /* outbuf */
iload 4 /* outpos */
iconst_1
iadd
iload 5 /* val */
sipush 255
iand
i2b
bastore
31: .line 451
StackMap locals:
StackMap stack:
iload 5 /* val */
bipush 8
ishr
istore 5 /* val */
32: .line 452
aload 2 /* outbuf */
iload 4 /* outpos */
iload 5 /* val */
sipush 255
iand
i2b
bastore
33: .line 453
iload 4 /* outpos */
iload 6 /* osize */
iadd
istore 4 /* outpos */
34: .line 454
iinc 1 /* size */ -4
end local 6 // int osize
end local 5 // int val
35: .line 426
StackMap locals:
StackMap stack:
iload 1 /* size */
ifgt 12
36: .line 456
aload 2 /* outbuf */
areturn
end local 4 // int outpos
end local 3 // int inpos
end local 2 // byte[] outbuf
end local 1 // int size
end local 0 // byte[] inbuf
LocalVariableTable:
Start End Slot Name Signature
0 37 0 inbuf [B
1 37 1 size I
8 37 2 outbuf [B
9 37 3 inpos I
10 37 4 outpos I
14 35 5 val I
13 35 6 osize I
MethodParameters:
Name Flags
inbuf
}
SourceFile: "BASE64DecoderStream.java"