class java.util.Base64$DecInputStream extends java.io.InputStream
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.util.Base64$DecInputStream
super_class: java.io.InputStream
{
private final java.io.InputStream is;
descriptor: Ljava/io/InputStream;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean isMIME;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int[] base64;
descriptor: [I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int bits;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int nextin;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int nextout;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean eof;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean closed;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private byte[] sbBuf;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
void <init>(java.io.InputStream, int[], boolean);
descriptor: (Ljava/io/InputStream;[IZ)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.io.InputStream.<init>:()V
1: aload 0
iconst_0
putfield java.util.Base64$DecInputStream.bits:I
2: aload 0
bipush 18
putfield java.util.Base64$DecInputStream.nextin:I
3: aload 0
bipush -8
putfield java.util.Base64$DecInputStream.nextout:I
4: aload 0
iconst_0
putfield java.util.Base64$DecInputStream.eof:Z
5: aload 0
iconst_0
putfield java.util.Base64$DecInputStream.closed:Z
6: aload 0
iconst_1
newarray 8
putfield java.util.Base64$DecInputStream.sbBuf:[B
7: aload 0
aload 1
putfield java.util.Base64$DecInputStream.is:Ljava/io/InputStream;
8: aload 0
aload 2
putfield java.util.Base64$DecInputStream.base64:[I
9: aload 0
iload 3
putfield java.util.Base64$DecInputStream.isMIME:Z
10: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Ljava/util/Base64$DecInputStream;
0 11 1 is Ljava/io/InputStream;
0 11 2 base64 [I
0 11 3 isMIME Z
MethodParameters:
Name Flags
is
base64
isMIME
public int read();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield java.util.Base64$DecInputStream.sbBuf:[B
iconst_0
iconst_1
invokevirtual java.util.Base64$DecInputStream.read:([BII)I
iconst_m1
if_icmpne 1
iconst_m1
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield java.util.Base64$DecInputStream.sbBuf:[B
iconst_0
baload
sipush 255
iand
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/Base64$DecInputStream;
Exceptions:
throws java.io.IOException
private int eof(byte[], int, int, int);
descriptor: ([BIII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
iconst_1
putfield java.util.Base64$DecInputStream.eof:Z
1: aload 0
getfield java.util.Base64$DecInputStream.nextin:I
bipush 18
if_icmpeq 11
2: aload 0
getfield java.util.Base64$DecInputStream.nextin:I
bipush 12
if_icmpne 4
3: new java.io.IOException
dup
ldc "Base64 stream has one un-decoded dangling byte."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
iload 2
iinc 2 1
aload 0
getfield java.util.Base64$DecInputStream.bits:I
bipush 16
ishr
i2b
bastore
5: aload 0
getfield java.util.Base64$DecInputStream.nextin:I
ifne 11
6: iload 3
iconst_1
if_icmpne 10
7: aload 0
dup
getfield java.util.Base64$DecInputStream.bits:I
bipush 8
ishr
putfield java.util.Base64$DecInputStream.bits:I
8: aload 0
iconst_0
putfield java.util.Base64$DecInputStream.nextout:I
9: goto 11
10: StackMap locals:
StackMap stack:
aload 1
iload 2
iinc 2 1
aload 0
getfield java.util.Base64$DecInputStream.bits:I
bipush 8
ishr
i2b
bastore
11: StackMap locals:
StackMap stack:
iload 2
iload 4
if_icmpne 12
iconst_m1
goto 13
StackMap locals:
StackMap stack:
12: iload 2
iload 4
isub
StackMap locals:
StackMap stack: int
13: ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Ljava/util/Base64$DecInputStream;
0 14 1 b [B
0 14 2 off I
0 14 3 len I
0 14 4 oldOff I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
oldOff
private int padding(byte[], int, int, int);
descriptor: ([BIII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield java.util.Base64$DecInputStream.nextin:I
bipush 18
if_icmpeq 2
aload 0
getfield java.util.Base64$DecInputStream.nextin:I
bipush 12
if_icmpeq 2
1: aload 0
getfield java.util.Base64$DecInputStream.nextin:I
bipush 6
if_icmpne 3
aload 0
getfield java.util.Base64$DecInputStream.is:Ljava/io/InputStream;
invokevirtual java.io.InputStream.read:()I
bipush 61
if_icmpeq 3
2: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Illegal base64 ending sequence:"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield java.util.Base64$DecInputStream.nextin:I
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
3: StackMap locals:
StackMap stack:
aload 1
iload 2
iinc 2 1
aload 0
getfield java.util.Base64$DecInputStream.bits:I
bipush 16
ishr
i2b
bastore
4: aload 0
getfield java.util.Base64$DecInputStream.nextin:I
ifne 10
5: iload 3
iconst_1
if_icmpne 9
6: aload 0
dup
getfield java.util.Base64$DecInputStream.bits:I
bipush 8
ishr
putfield java.util.Base64$DecInputStream.bits:I
7: aload 0
iconst_0
putfield java.util.Base64$DecInputStream.nextout:I
8: goto 10
9: StackMap locals:
StackMap stack:
aload 1
iload 2
iinc 2 1
aload 0
getfield java.util.Base64$DecInputStream.bits:I
bipush 8
ishr
i2b
bastore
10: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield java.util.Base64$DecInputStream.eof:Z
11: iload 2
iload 4
isub
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Ljava/util/Base64$DecInputStream;
0 12 1 b [B
0 12 2 off I
0 12 3 len I
0 12 4 oldOff I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
oldOff
public int read(byte[], int, int);
descriptor: ([BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield java.util.Base64$DecInputStream.closed:Z
ifeq 2
1: new java.io.IOException
dup
ldc "Stream is closed"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield java.util.Base64$DecInputStream.eof:Z
ifeq 4
aload 0
getfield java.util.Base64$DecInputStream.nextout:I
ifge 4
3: iconst_m1
ireturn
4: StackMap locals:
StackMap stack:
iload 2
iflt 5
iload 3
iflt 5
iload 3
aload 1
arraylength
iload 2
isub
if_icmple 6
5: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
iload 2
istore 4
start local 4 7: goto 13
8: StackMap locals: int
StackMap stack:
iload 3
ifne 10
9: iload 2
iload 4
isub
ireturn
10: StackMap locals:
StackMap stack:
aload 1
iload 2
iinc 2 1
aload 0
getfield java.util.Base64$DecInputStream.bits:I
aload 0
getfield java.util.Base64$DecInputStream.nextout:I
ishr
i2b
bastore
11: iinc 3 -1
12: aload 0
dup
getfield java.util.Base64$DecInputStream.nextout:I
bipush 8
isub
putfield java.util.Base64$DecInputStream.nextout:I
13: StackMap locals:
StackMap stack:
aload 0
getfield java.util.Base64$DecInputStream.nextout:I
ifge 8
14: aload 0
iconst_0
putfield java.util.Base64$DecInputStream.bits:I
15: goto 43
16: StackMap locals:
StackMap stack:
aload 0
getfield java.util.Base64$DecInputStream.is:Ljava/io/InputStream;
invokevirtual java.io.InputStream.read:()I
istore 5
start local 5 17: iload 5
iconst_m1
if_icmpne 19
18: aload 0
aload 1
iload 2
iload 3
iload 4
invokevirtual java.util.Base64$DecInputStream.eof:([BIII)I
ireturn
19: StackMap locals: int
StackMap stack:
aload 0
getfield java.util.Base64$DecInputStream.base64:[I
iload 5
iaload
dup
istore 5
ifge 27
20: iload 5
bipush -2
if_icmpne 22
21: aload 0
aload 1
iload 2
iload 3
iload 4
invokevirtual java.util.Base64$DecInputStream.padding:([BIII)I
ireturn
22: StackMap locals:
StackMap stack:
iload 5
iconst_m1
if_icmpne 27
23: aload 0
getfield java.util.Base64$DecInputStream.isMIME:Z
ifne 43
24: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Illegal base64 character "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
25: iload 5
bipush 16
invokestatic java.lang.Integer.toString:(II)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
26: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
27: StackMap locals:
StackMap stack:
aload 0
dup
getfield java.util.Base64$DecInputStream.bits:I
iload 5
aload 0
getfield java.util.Base64$DecInputStream.nextin:I
ishl
ior
putfield java.util.Base64$DecInputStream.bits:I
28: aload 0
getfield java.util.Base64$DecInputStream.nextin:I
ifne 42
29: aload 0
bipush 18
putfield java.util.Base64$DecInputStream.nextin:I
30: aload 1
iload 2
iinc 2 1
aload 0
getfield java.util.Base64$DecInputStream.bits:I
bipush 16
ishr
i2b
bastore
31: iload 3
iconst_1
if_icmpne 34
32: aload 0
bipush 8
putfield java.util.Base64$DecInputStream.nextout:I
33: goto 44
34: StackMap locals:
StackMap stack:
aload 1
iload 2
iinc 2 1
aload 0
getfield java.util.Base64$DecInputStream.bits:I
bipush 8
ishr
i2b
bastore
35: iload 3
iconst_2
if_icmpne 38
36: aload 0
iconst_0
putfield java.util.Base64$DecInputStream.nextout:I
37: goto 44
38: StackMap locals:
StackMap stack:
aload 1
iload 2
iinc 2 1
aload 0
getfield java.util.Base64$DecInputStream.bits:I
i2b
bastore
39: iinc 3 -3
40: aload 0
iconst_0
putfield java.util.Base64$DecInputStream.bits:I
41: goto 43
42: StackMap locals:
StackMap stack:
aload 0
dup
getfield java.util.Base64$DecInputStream.nextin:I
bipush 6
isub
putfield java.util.Base64$DecInputStream.nextin:I
end local 5 43: StackMap locals:
StackMap stack:
iload 3
ifgt 16
44: StackMap locals:
StackMap stack:
iload 2
iload 4
isub
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Ljava/util/Base64$DecInputStream;
0 45 1 b [B
0 45 2 off I
0 45 3 len I
7 45 4 oldOff I
17 43 5 v I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
len
public int available();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.Base64$DecInputStream.closed:Z
ifeq 2
1: new java.io.IOException
dup
ldc "Stream is closed"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield java.util.Base64$DecInputStream.is:Ljava/io/InputStream;
invokevirtual java.io.InputStream.available:()I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljava/util/Base64$DecInputStream;
Exceptions:
throws java.io.IOException
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield java.util.Base64$DecInputStream.closed:Z
ifne 3
1: aload 0
iconst_1
putfield java.util.Base64$DecInputStream.closed:Z
2: aload 0
getfield java.util.Base64$DecInputStream.is:Ljava/io/InputStream;
invokevirtual java.io.InputStream.close:()V
3: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Ljava/util/Base64$DecInputStream;
Exceptions:
throws java.io.IOException
}
SourceFile: "Base64.java"
NestHost: java.util.Base64
InnerClasses:
private DecInputStream = java.util.Base64$DecInputStream of java.util.Base64