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
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: aload 0
getfield java.util.Base64$DecInputStream.nextout:I
iflt 68
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: aload 0
getfield java.util.Base64$DecInputStream.nextout:I
14: ifge 8
15: aload 0
iconst_0
putfield java.util.Base64$DecInputStream.bits:I
16: goto 68
17: 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 18: iload 5
iconst_m1
if_icmpne 34
19: aload 0
iconst_1
putfield java.util.Base64$DecInputStream.eof:Z
20: aload 0
getfield java.util.Base64$DecInputStream.nextin:I
bipush 18
if_icmpeq 31
21: aload 0
getfield java.util.Base64$DecInputStream.nextin:I
bipush 12
if_icmpne 23
22: new java.io.IOException
dup
ldc "Base64 stream has one un-decoded dangling byte."
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
23: StackMap locals: int
StackMap stack:
aload 1
iload 2
iinc 2 1
aload 0
getfield java.util.Base64$DecInputStream.bits:I
bipush 16
ishr
i2b
bastore
24: iinc 3 -1
25: aload 0
getfield java.util.Base64$DecInputStream.nextin:I
ifne 31
26: iload 3
ifne 30
27: aload 0
dup
getfield java.util.Base64$DecInputStream.bits:I
bipush 8
ishr
putfield java.util.Base64$DecInputStream.bits:I
28: aload 0
iconst_0
putfield java.util.Base64$DecInputStream.nextout:I
29: goto 31
30: 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
31: StackMap locals:
StackMap stack:
iload 2
iload 4
if_icmpne 33
32: iconst_m1
ireturn
33: StackMap locals:
StackMap stack:
iload 2
iload 4
isub
ireturn
34: StackMap locals:
StackMap stack:
iload 5
bipush 61
if_icmpne 48
35: aload 0
getfield java.util.Base64$DecInputStream.nextin:I
bipush 18
if_icmpeq 37
aload 0
getfield java.util.Base64$DecInputStream.nextin:I
bipush 12
if_icmpeq 37
36: aload 0
getfield java.util.Base64$DecInputStream.nextin:I
bipush 6
if_icmpne 38
aload 0
getfield java.util.Base64$DecInputStream.is:Ljava/io/InputStream;
invokevirtual java.io.InputStream.read:()I
bipush 61
if_icmpeq 38
37: 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
38: 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
39: iinc 3 -1
40: aload 0
getfield java.util.Base64$DecInputStream.nextin:I
ifne 46
41: iload 3
ifne 45
42: aload 0
dup
getfield java.util.Base64$DecInputStream.bits:I
bipush 8
ishr
putfield java.util.Base64$DecInputStream.bits:I
43: aload 0
iconst_0
putfield java.util.Base64$DecInputStream.nextout:I
44: goto 46
45: 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
46: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield java.util.Base64$DecInputStream.eof:Z
47: goto 69
48: StackMap locals:
StackMap stack:
aload 0
getfield java.util.Base64$DecInputStream.base64:[I
iload 5
iaload
dup
istore 5
iconst_m1
if_icmpne 54
49: aload 0
getfield java.util.Base64$DecInputStream.isMIME:Z
ifeq 51
50: goto 68
51: StackMap locals:
StackMap stack:
new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Illegal base64 character "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
52: 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;
53: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
54: 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
55: aload 0
getfield java.util.Base64$DecInputStream.nextin:I
ifne 67
56: aload 0
bipush 18
putfield java.util.Base64$DecInputStream.nextin:I
57: aload 0
bipush 16
putfield java.util.Base64$DecInputStream.nextout:I
58: goto 64
59: 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
60: iinc 3 -1
61: aload 0
dup
getfield java.util.Base64$DecInputStream.nextout:I
bipush 8
isub
putfield java.util.Base64$DecInputStream.nextout:I
62: iload 3
ifne 64
aload 0
getfield java.util.Base64$DecInputStream.nextout:I
iflt 64
63: iload 2
iload 4
isub
ireturn
64: StackMap locals:
StackMap stack:
aload 0
getfield java.util.Base64$DecInputStream.nextout:I
ifge 59
65: aload 0
iconst_0
putfield java.util.Base64$DecInputStream.bits:I
66: goto 68
67: 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 68: StackMap locals:
StackMap stack:
iload 3
ifgt 17
69: 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 70 0 this Ljava/util/Base64$DecInputStream;
0 70 1 b [B
0 70 2 off I
0 70 3 len I
7 70 4 oldOff I
18 68 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