public class sun.awt.image.PNGImageDecoder extends sun.awt.image.ImageDecoder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.awt.image.PNGImageDecoder
super_class: sun.awt.image.ImageDecoder
{
private static final int GRAY;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int PALETTE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int COLOR;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int ALPHA;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private static final int bKGDChunk;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1649100612
private static final int cHRMChunk;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1665684045
private static final int gAMAChunk;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1732332865
private static final int hISTChunk;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1749635924
private static final int IDATChunk;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1229209940
private static final int IENDChunk;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1229278788
private static final int IHDRChunk;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1229472850
private static final int PLTEChunk;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1347179589
private static final int pHYsChunk;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1883789683
private static final int sBITChunk;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1933723988
private static final int tEXtChunk;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1950701684
private static final int tIMEChunk;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1950960965
private static final int tRNSChunk;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1951551059
private static final int zTXtChunk;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2052348020
private int width;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int height;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int bitDepth;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int colorType;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int compressionMethod;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int filterMethod;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int interlaceMethod;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int gamma;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.util.Hashtable<java.lang.String, java.lang.Object> properties;
descriptor: Ljava/util/Hashtable;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Object;>;
private java.awt.image.ColorModel cm;
descriptor: Ljava/awt/image/ColorModel;
flags: (0x0002) ACC_PRIVATE
private byte[] red_map;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] green_map;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] blue_map;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] alpha_map;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private int transparentPixel;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private byte[] transparentPixel_16;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private static java.awt.image.ColorModel[] greyModels;
descriptor: [Ljava/awt/image/ColorModel;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final byte[] startingRow;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] startingCol;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] rowIncrement;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] colIncrement;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] blockHeight;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final byte[] blockWidth;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
int pos;
descriptor: I
flags: (0x0000)
int limit;
descriptor: I
flags: (0x0000)
int chunkStart;
descriptor: I
flags: (0x0000)
int chunkKey;
descriptor: I
flags: (0x0000)
int chunkLength;
descriptor: I
flags: (0x0000)
int chunkCRC;
descriptor: I
flags: (0x0000)
boolean seenEOF;
descriptor: Z
flags: (0x0000)
private static final byte[] signature;
descriptor: [B
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
sun.awt.image.PNGFilterInputStream inputStream;
descriptor: Lsun/awt/image/PNGFilterInputStream;
flags: (0x0000)
java.io.InputStream underlyingInputStream;
descriptor: Ljava/io/InputStream;
flags: (0x0000)
byte[] inbuf;
descriptor: [B
flags: (0x0000)
private static boolean checkCRC;
descriptor: Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final int[] crc_table;
descriptor: [I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=0
0: iconst_4
anewarray java.awt.image.ColorModel
putstatic sun.awt.image.PNGImageDecoder.greyModels:[Ljava/awt/image/ColorModel;
1: bipush 8
newarray 8
dup
iconst_3
iconst_4
bastore
dup
iconst_5
iconst_2
bastore
dup
bipush 7
iconst_1
bastore
putstatic sun.awt.image.PNGImageDecoder.startingRow:[B
2: bipush 8
newarray 8
dup
iconst_2
iconst_4
bastore
dup
iconst_4
iconst_2
bastore
dup
bipush 6
iconst_1
bastore
putstatic sun.awt.image.PNGImageDecoder.startingCol:[B
3: bipush 8
newarray 8
dup
iconst_0
iconst_1
bastore
dup
iconst_1
bipush 8
bastore
dup
iconst_2
bipush 8
bastore
dup
iconst_3
bipush 8
bastore
dup
iconst_4
iconst_4
bastore
dup
iconst_5
iconst_4
bastore
dup
bipush 6
iconst_2
bastore
dup
bipush 7
iconst_2
bastore
putstatic sun.awt.image.PNGImageDecoder.rowIncrement:[B
4: bipush 8
newarray 8
dup
iconst_0
iconst_1
bastore
dup
iconst_1
bipush 8
bastore
dup
iconst_2
bipush 8
bastore
dup
iconst_3
iconst_4
bastore
dup
iconst_4
iconst_4
bastore
dup
iconst_5
iconst_2
bastore
dup
bipush 6
iconst_2
bastore
dup
bipush 7
iconst_1
bastore
putstatic sun.awt.image.PNGImageDecoder.colIncrement:[B
5: bipush 8
newarray 8
dup
iconst_0
iconst_1
bastore
dup
iconst_1
bipush 8
bastore
dup
iconst_2
bipush 8
bastore
dup
iconst_3
iconst_4
bastore
dup
iconst_4
iconst_4
bastore
dup
iconst_5
iconst_2
bastore
dup
bipush 6
iconst_2
bastore
dup
bipush 7
iconst_1
bastore
putstatic sun.awt.image.PNGImageDecoder.blockHeight:[B
6: bipush 8
newarray 8
dup
iconst_0
iconst_1
bastore
dup
iconst_1
bipush 8
bastore
dup
iconst_2
iconst_4
bastore
dup
iconst_3
iconst_4
bastore
dup
iconst_4
iconst_2
bastore
dup
iconst_5
iconst_2
bastore
dup
bipush 6
iconst_1
bastore
dup
bipush 7
iconst_1
bastore
putstatic sun.awt.image.PNGImageDecoder.blockWidth:[B
7: bipush 8
newarray 8
dup
iconst_0
bipush -119
bastore
dup
iconst_1
bipush 80
bastore
dup
iconst_2
bipush 78
bastore
dup
iconst_3
8: bipush 71
bastore
dup
iconst_4
bipush 13
bastore
dup
iconst_5
bipush 10
bastore
dup
bipush 6
bipush 26
bastore
dup
bipush 7
bipush 10
bastore
9: putstatic sun.awt.image.PNGImageDecoder.signature:[B
10: iconst_1
putstatic sun.awt.image.PNGImageDecoder.checkCRC:Z
11: sipush 256
newarray 10
putstatic sun.awt.image.PNGImageDecoder.crc_table:[I
12: iconst_0
istore 0
start local 0 13: goto 24
14: StackMap locals: int
StackMap stack:
iload 0
istore 1
start local 1 15: iconst_0
istore 2
start local 2 16: goto 21
17: StackMap locals: int int
StackMap stack:
iload 1
iconst_1
iand
ifeq 19
18: ldc -306674912
iload 1
iconst_1
iushr
ixor
istore 1
goto 20
19: StackMap locals:
StackMap stack:
iload 1
iconst_1
iushr
istore 1
20: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
21: iload 2
bipush 8
if_icmplt 17
end local 2 22: getstatic sun.awt.image.PNGImageDecoder.crc_table:[I
iload 0
iload 1
iastore
end local 1 23: iinc 0 1
StackMap locals:
StackMap stack:
24: iload 0
sipush 256
if_icmplt 14
end local 0 25: return
LocalVariableTable:
Start End Slot Name Signature
13 25 0 n I
15 23 1 c I
16 22 2 k I
private void property(java.lang.String, java.lang.Object);
descriptor: (Ljava/lang/String;Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnonnull 1
return
1: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.properties:Ljava/util/Hashtable;
ifnonnull 2
aload 0
new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
putfield sun.awt.image.PNGImageDecoder.properties:Ljava/util/Hashtable;
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.properties:Ljava/util/Hashtable;
aload 1
aload 2
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/awt/image/PNGImageDecoder;
0 4 1 key Ljava/lang/String;
0 4 2 value Ljava/lang/Object;
MethodParameters:
Name Flags
key
value
private void property(java.lang.String, float);
descriptor: (Ljava/lang/String;F)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
fload 2
invokestatic java.lang.Float.valueOf:(F)Ljava/lang/Float;
invokevirtual sun.awt.image.PNGImageDecoder.property:(Ljava/lang/String;Ljava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/awt/image/PNGImageDecoder;
0 2 1 key Ljava/lang/String;
0 2 2 value F
MethodParameters:
Name Flags
key
value
private final void pngassert(boolean);
descriptor: (Z)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifne 4
1: new sun.awt.image.PNGImageDecoder$PNGException
dup
aload 0
ldc "Broken file"
invokespecial sun.awt.image.PNGImageDecoder$PNGException.<init>:(Lsun/awt/image/PNGImageDecoder;Ljava/lang/String;)V
astore 2
start local 2 2: aload 2
invokevirtual sun.awt.image.PNGImageDecoder$PNGException.printStackTrace:()V
3: aload 2
athrow
end local 2 4: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/awt/image/PNGImageDecoder;
0 5 1 b Z
2 4 2 e Lsun/awt/image/PNGImageDecoder$PNGException;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
protected boolean handleChunk(int, byte[], int, int);
descriptor: (I[BII)Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=14, locals=9, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 1
lookupswitch { // 14
1229209940: 42
1229278788: 43
1229472850: 44
1347179589: 54
1649100612: 1
1665684045: 24
1732332865: 37
1749635924: 41
1883789683: 67
1933723988: 68
1950701684: 69
1950960965: 78
1951551059: 87
2052348020: 126
default: 126
}
1: StackMap locals:
StackMap stack:
aconst_null
astore 5
start local 5 2: aload 0
getfield sun.awt.image.PNGImageDecoder.colorType:I
tableswitch { // 0 - 7
0: 17
1: 22
2: 3
3: 8
4: 17
5: 22
6: 3
7: 8
default: 22
}
3: StackMap locals: java.awt.Color
StackMap stack:
aload 0
iload 4
bipush 6
if_icmpne 4
iconst_1
goto 5
StackMap locals:
StackMap stack: sun.awt.image.PNGImageDecoder
4: iconst_0
StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int java.awt.Color
StackMap stack: sun.awt.image.PNGImageDecoder int
5: invokevirtual sun.awt.image.PNGImageDecoder.pngassert:(Z)V
6: new java.awt.Color
dup
aload 2
iload 3
baload
sipush 255
iand
aload 2
iload 3
iconst_2
iadd
baload
sipush 255
iand
aload 2
iload 3
iconst_4
iadd
baload
sipush 255
iand
invokespecial java.awt.Color.<init>:(III)V
astore 5
7: goto 22
8: StackMap locals:
StackMap stack:
aload 0
iload 4
iconst_1
if_icmpne 9
iconst_1
goto 10
StackMap locals:
StackMap stack: sun.awt.image.PNGImageDecoder
9: iconst_0
StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int java.awt.Color
StackMap stack: sun.awt.image.PNGImageDecoder int
10: invokevirtual sun.awt.image.PNGImageDecoder.pngassert:(Z)V
11: aload 2
iload 3
baload
sipush 255
iand
istore 6
start local 6 12: aload 0
aload 0
getfield sun.awt.image.PNGImageDecoder.red_map:[B
ifnull 13
iload 6
aload 0
getfield sun.awt.image.PNGImageDecoder.red_map:[B
arraylength
if_icmpge 13
iconst_1
goto 14
StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int java.awt.Color int
StackMap stack: sun.awt.image.PNGImageDecoder
13: iconst_0
StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int java.awt.Color int
StackMap stack: sun.awt.image.PNGImageDecoder int
14: invokevirtual sun.awt.image.PNGImageDecoder.pngassert:(Z)V
15: new java.awt.Color
dup
aload 0
getfield sun.awt.image.PNGImageDecoder.red_map:[B
iload 6
baload
sipush 255
iand
aload 0
getfield sun.awt.image.PNGImageDecoder.green_map:[B
iload 6
baload
sipush 255
iand
aload 0
getfield sun.awt.image.PNGImageDecoder.blue_map:[B
iload 6
baload
sipush 255
iand
invokespecial java.awt.Color.<init>:(III)V
astore 5
16: goto 22
end local 6 17: StackMap locals:
StackMap stack:
aload 0
iload 4
iconst_2
if_icmpne 18
iconst_1
goto 19
StackMap locals:
StackMap stack: sun.awt.image.PNGImageDecoder
18: iconst_0
StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int java.awt.Color
StackMap stack: sun.awt.image.PNGImageDecoder int
19: invokevirtual sun.awt.image.PNGImageDecoder.pngassert:(Z)V
20: aload 2
iload 3
baload
sipush 255
iand
istore 7
start local 7 21: new java.awt.Color
dup
iload 7
iload 7
iload 7
invokespecial java.awt.Color.<init>:(III)V
astore 5
end local 7 22: StackMap locals:
StackMap stack:
aload 5
ifnull 126
aload 0
ldc "background"
aload 5
invokevirtual sun.awt.image.PNGImageDecoder.property:(Ljava/lang/String;Ljava/lang/Object;)V
23: goto 126
end local 5 24: StackMap locals:
StackMap stack:
aload 0
ldc "chromaticities"
25: new sun.awt.image.PNGImageDecoder$Chromaticities
dup
26: aload 0
iload 3
invokevirtual sun.awt.image.PNGImageDecoder.getInt:(I)I
27: aload 0
iload 3
iconst_4
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getInt:(I)I
28: aload 0
iload 3
bipush 8
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getInt:(I)I
29: aload 0
iload 3
bipush 12
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getInt:(I)I
30: aload 0
iload 3
bipush 16
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getInt:(I)I
31: aload 0
iload 3
bipush 20
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getInt:(I)I
32: aload 0
iload 3
bipush 24
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getInt:(I)I
33: aload 0
iload 3
bipush 28
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getInt:(I)I
34: invokespecial sun.awt.image.PNGImageDecoder$Chromaticities.<init>:(IIIIIIII)V
35: invokevirtual sun.awt.image.PNGImageDecoder.property:(Ljava/lang/String;Ljava/lang/Object;)V
36: goto 126
37: StackMap locals:
StackMap stack:
iload 4
iconst_4
if_icmpeq 38
new sun.awt.image.PNGImageDecoder$PNGException
dup
aload 0
ldc "bogus gAMA"
invokespecial sun.awt.image.PNGImageDecoder$PNGException.<init>:(Lsun/awt/image/PNGImageDecoder;Ljava/lang/String;)V
athrow
38: StackMap locals:
StackMap stack:
aload 0
aload 0
iload 3
invokevirtual sun.awt.image.PNGImageDecoder.getInt:(I)I
putfield sun.awt.image.PNGImageDecoder.gamma:I
39: aload 0
getfield sun.awt.image.PNGImageDecoder.gamma:I
ldc 100000
if_icmpeq 126
aload 0
ldc "gamma"
aload 0
getfield sun.awt.image.PNGImageDecoder.gamma:I
i2f
ldc 100000.0
fdiv
invokevirtual sun.awt.image.PNGImageDecoder.property:(Ljava/lang/String;F)V
40: goto 126
41: StackMap locals:
StackMap stack:
goto 126
42: StackMap locals:
StackMap stack:
iconst_0
ireturn
43: StackMap locals:
StackMap stack:
goto 126
44: StackMap locals:
StackMap stack:
iload 4
bipush 13
if_icmpne 47
45: aload 0
aload 0
iload 3
invokevirtual sun.awt.image.PNGImageDecoder.getInt:(I)I
dup_x1
putfield sun.awt.image.PNGImageDecoder.width:I
ifeq 47
46: aload 0
aload 0
iload 3
iconst_4
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getInt:(I)I
dup_x1
putfield sun.awt.image.PNGImageDecoder.height:I
ifne 48
47: StackMap locals:
StackMap stack:
new sun.awt.image.PNGImageDecoder$PNGException
dup
aload 0
ldc "bogus IHDR"
invokespecial sun.awt.image.PNGImageDecoder$PNGException.<init>:(Lsun/awt/image/PNGImageDecoder;Ljava/lang/String;)V
athrow
48: StackMap locals:
StackMap stack:
aload 0
aload 0
iload 3
bipush 8
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getByte:(I)I
putfield sun.awt.image.PNGImageDecoder.bitDepth:I
49: aload 0
aload 0
iload 3
bipush 9
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getByte:(I)I
putfield sun.awt.image.PNGImageDecoder.colorType:I
50: aload 0
aload 0
iload 3
bipush 10
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getByte:(I)I
putfield sun.awt.image.PNGImageDecoder.compressionMethod:I
51: aload 0
aload 0
iload 3
bipush 11
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getByte:(I)I
putfield sun.awt.image.PNGImageDecoder.filterMethod:I
52: aload 0
aload 0
iload 3
bipush 12
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getByte:(I)I
putfield sun.awt.image.PNGImageDecoder.interlaceMethod:I
53: goto 126
54: StackMap locals:
StackMap stack:
iload 4
iconst_3
idiv
istore 6
start local 6 55: aload 0
iload 6
newarray 8
putfield sun.awt.image.PNGImageDecoder.red_map:[B
56: aload 0
iload 6
newarray 8
putfield sun.awt.image.PNGImageDecoder.green_map:[B
57: aload 0
iload 6
newarray 8
putfield sun.awt.image.PNGImageDecoder.blue_map:[B
58: iconst_0
istore 7
start local 7 59: iload 3
istore 8
start local 8 60: goto 65
61: StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int top int int int
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.red_map:[B
iload 7
aload 2
iload 8
baload
bastore
62: aload 0
getfield sun.awt.image.PNGImageDecoder.green_map:[B
iload 7
aload 2
iload 8
iconst_1
iadd
baload
bastore
63: aload 0
getfield sun.awt.image.PNGImageDecoder.blue_map:[B
iload 7
aload 2
iload 8
iconst_2
iadd
baload
bastore
64: iinc 7 1
iinc 8 3
StackMap locals:
StackMap stack:
65: iload 7
iload 6
if_icmplt 61
end local 8 end local 7 end local 6 66: goto 126
67: StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int
StackMap stack:
goto 126
68: StackMap locals:
StackMap stack:
goto 126
69: StackMap locals:
StackMap stack:
iconst_0
istore 6
start local 6 70: goto 72
StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int top int
StackMap stack:
71: iinc 6 1
StackMap locals:
StackMap stack:
72: iload 6
iload 4
if_icmpge 73
aload 2
iload 3
iload 6
iadd
baload
ifne 71
73: StackMap locals:
StackMap stack:
iload 6
iload 4
if_icmpge 126
74: new java.lang.String
dup
aload 2
iload 3
iload 6
invokespecial java.lang.String.<init>:([BII)V
astore 7
start local 7 75: new java.lang.String
dup
aload 2
iload 3
iload 6
iadd
iconst_1
iadd
iload 4
iload 6
isub
iconst_1
isub
invokespecial java.lang.String.<init>:([BII)V
astore 8
start local 8 76: aload 0
aload 7
aload 8
invokevirtual sun.awt.image.PNGImageDecoder.property:(Ljava/lang/String;Ljava/lang/Object;)V
end local 8 end local 7 77: goto 126
end local 6 78: StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int
StackMap stack:
aload 0
ldc "modtime"
new java.util.GregorianCalendar
dup
79: aload 0
iload 3
iconst_0
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getShort:(I)I
80: aload 0
iload 3
iconst_2
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getByte:(I)I
iconst_1
isub
81: aload 0
iload 3
iconst_3
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getByte:(I)I
82: aload 0
iload 3
iconst_4
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getByte:(I)I
83: aload 0
iload 3
iconst_5
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getByte:(I)I
84: aload 0
iload 3
bipush 6
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getByte:(I)I
invokespecial java.util.GregorianCalendar.<init>:(IIIIII)V
invokevirtual java.util.GregorianCalendar.getTime:()Ljava/util/Date;
85: invokevirtual sun.awt.image.PNGImageDecoder.property:(Ljava/lang/String;Ljava/lang/Object;)V
86: goto 126
87: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.colorType:I
tableswitch { // 0 - 7
0: 117
1: 125
2: 98
3: 88
4: 117
5: 125
6: 98
7: 88
default: 125
}
88: StackMap locals:
StackMap stack:
iload 4
istore 7
start local 7 89: aload 0
getfield sun.awt.image.PNGImageDecoder.red_map:[B
ifnull 90
aload 0
getfield sun.awt.image.PNGImageDecoder.red_map:[B
arraylength
istore 7
90: StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int top top int
StackMap stack:
aload 0
iload 7
newarray 8
putfield sun.awt.image.PNGImageDecoder.alpha_map:[B
91: aload 2
iload 3
aload 0
getfield sun.awt.image.PNGImageDecoder.alpha_map:[B
iconst_0
iload 4
iload 7
if_icmpge 92
iload 4
goto 93
StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int top top int
StackMap stack: byte[] int byte[] int
92: iload 7
StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int top top int
StackMap stack: byte[] int byte[] int int
93: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
94: goto 96
StackMap locals:
StackMap stack:
95: aload 0
getfield sun.awt.image.PNGImageDecoder.alpha_map:[B
iload 7
iconst_m1
bastore
StackMap locals:
StackMap stack:
96: iinc 7 -1
iload 7
iload 4
if_icmpge 95
97: goto 126
end local 7 98: StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int
StackMap stack:
aload 0
iload 4
bipush 6
if_icmpne 99
iconst_1
goto 100
StackMap locals:
StackMap stack: sun.awt.image.PNGImageDecoder
99: iconst_0
StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int
StackMap stack: sun.awt.image.PNGImageDecoder int
100: invokevirtual sun.awt.image.PNGImageDecoder.pngassert:(Z)V
101: aload 0
getfield sun.awt.image.PNGImageDecoder.bitDepth:I
bipush 16
if_icmpne 109
102: aload 0
bipush 6
newarray 8
putfield sun.awt.image.PNGImageDecoder.transparentPixel_16:[B
103: iconst_0
istore 8
start local 8 104: goto 107
105: StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int top top top int
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.transparentPixel_16:[B
iload 8
aload 0
iload 3
iload 8
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getByte:(I)I
i2b
bastore
106: iinc 8 1
StackMap locals:
StackMap stack:
107: iload 8
bipush 6
if_icmplt 105
end local 8 108: goto 126
109: StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int
StackMap stack:
aload 0
110: aload 0
iload 3
iconst_0
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getShort:(I)I
sipush 255
iand
bipush 16
ishl
111: aload 0
iload 3
iconst_2
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getShort:(I)I
sipush 255
iand
bipush 8
ishl
112: ior
113: aload 0
iload 3
iconst_4
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getShort:(I)I
sipush 255
iand
114: ior
115: putfield sun.awt.image.PNGImageDecoder.transparentPixel:I
116: goto 126
117: StackMap locals:
StackMap stack:
aload 0
iload 4
iconst_2
if_icmpne 118
iconst_1
goto 119
StackMap locals:
StackMap stack: sun.awt.image.PNGImageDecoder
118: iconst_0
StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int
StackMap stack: sun.awt.image.PNGImageDecoder int
119: invokevirtual sun.awt.image.PNGImageDecoder.pngassert:(Z)V
120: aload 0
iload 3
invokevirtual sun.awt.image.PNGImageDecoder.getShort:(I)I
istore 8
start local 8 121: sipush 255
aload 0
getfield sun.awt.image.PNGImageDecoder.bitDepth:I
bipush 16
if_icmpne 122
iload 8
bipush 8
ishr
goto 123
StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int top top top int
StackMap stack: int
122: iload 8
StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int top top top int
StackMap stack: int int
123: iand
istore 8
124: aload 0
iload 8
bipush 16
ishl
iload 8
bipush 8
ishl
ior
iload 8
ior
putfield sun.awt.image.PNGImageDecoder.transparentPixel:I
end local 8 125: StackMap locals: sun.awt.image.PNGImageDecoder int byte[] int int
StackMap stack:
goto 126
126: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 127 0 this Lsun/awt/image/PNGImageDecoder;
0 127 1 key I
0 127 2 buf [B
0 127 3 st I
0 127 4 len I
2 24 5 c Ljava/awt/Color;
12 17 6 ix I
21 22 7 t I
55 66 6 tsize I
59 66 7 i I
60 66 8 j I
70 78 6 klen I
75 77 7 tkey Ljava/lang/String;
76 77 8 tvalue Ljava/lang/String;
89 98 7 alen I
104 108 8 i I
121 125 8 t I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
key
buf
st
len
public void produceImage();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=31, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: goto 5
2: StackMap locals: int
StackMap stack:
getstatic sun.awt.image.PNGImageDecoder.signature:[B
iload 1
baload
sipush 255
iand
aload 0
getfield sun.awt.image.PNGImageDecoder.underlyingInputStream:Ljava/io/InputStream;
invokevirtual java.io.InputStream.read:()I
if_icmpeq 4
3: new sun.awt.image.PNGImageDecoder$PNGException
dup
aload 0
ldc "Chunk signature mismatch"
invokespecial sun.awt.image.PNGImageDecoder$PNGException.<init>:(Lsun/awt/image/PNGImageDecoder;Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
5: iload 1
getstatic sun.awt.image.PNGImageDecoder.signature:[B
arraylength
if_icmplt 2
end local 1 6: new java.io.BufferedInputStream
dup
new java.util.zip.InflaterInputStream
dup
aload 0
getfield sun.awt.image.PNGImageDecoder.inputStream:Lsun/awt/image/PNGFilterInputStream;
new java.util.zip.Inflater
dup
invokespecial java.util.zip.Inflater.<init>:()V
invokespecial java.util.zip.InflaterInputStream.<init>:(Ljava/io/InputStream;Ljava/util/zip/Inflater;)V
invokespecial java.io.BufferedInputStream.<init>:(Ljava/io/InputStream;)V
astore 1
start local 1 7: aload 0
invokevirtual sun.awt.image.PNGImageDecoder.getData:()Z
pop
8: aconst_null
astore 2
start local 2 9: aconst_null
astore 3
start local 3 10: aload 0
getfield sun.awt.image.PNGImageDecoder.width:I
istore 4
start local 4 11: iconst_0
istore 6
start local 6 12: aload 0
getfield sun.awt.image.PNGImageDecoder.bitDepth:I
lookupswitch { // 5
1: 13
2: 14
4: 15
8: 16
16: 17
default: 18
}
13: StackMap locals: sun.awt.image.PNGImageDecoder java.io.InputStream byte[] int[] int top int
StackMap stack:
iconst_0
istore 6
goto 19
14: StackMap locals:
StackMap stack:
iconst_1
istore 6
goto 19
15: StackMap locals:
StackMap stack:
iconst_2
istore 6
goto 19
16: StackMap locals:
StackMap stack:
iconst_3
istore 6
goto 19
17: StackMap locals:
StackMap stack:
iconst_4
istore 6
goto 19
18: StackMap locals:
StackMap stack:
new sun.awt.image.PNGImageDecoder$PNGException
dup
aload 0
ldc "invalid depth"
invokespecial sun.awt.image.PNGImageDecoder$PNGException.<init>:(Lsun/awt/image/PNGImageDecoder;Ljava/lang/String;)V
athrow
19: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.interlaceMethod:I
ifeq 21
iload 4
aload 0
getfield sun.awt.image.PNGImageDecoder.height:I
imul
istore 4
aload 0
getfield sun.awt.image.PNGImageDecoder.width:I
istore 5
start local 5 20: goto 22
end local 5 21: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 22: StackMap locals: sun.awt.image.PNGImageDecoder java.io.InputStream byte[] int[] int int int
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.colorType:I
aload 0
getfield sun.awt.image.PNGImageDecoder.bitDepth:I
iconst_3
ishl
ior
istore 7
start local 7 23: aload 0
getfield sun.awt.image.PNGImageDecoder.bitDepth:I
bipush 8
if_icmplt 24
24: StackMap locals: int
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.colorType:I
tableswitch { // 0 - 7
0: 36
1: 58
2: 55
3: 25
4: 55
5: 58
6: 55
7: 25
default: 58
}
25: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.red_map:[B
ifnonnull 26
new sun.awt.image.PNGImageDecoder$PNGException
dup
aload 0
ldc "palette expected"
invokespecial sun.awt.image.PNGImageDecoder$PNGException.<init>:(Lsun/awt/image/PNGImageDecoder;Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.alpha_map:[B
ifnonnull 31
27: aload 0
new java.awt.image.IndexColorModel
dup
aload 0
getfield sun.awt.image.PNGImageDecoder.bitDepth:I
aload 0
getfield sun.awt.image.PNGImageDecoder.red_map:[B
arraylength
28: aload 0
getfield sun.awt.image.PNGImageDecoder.red_map:[B
aload 0
getfield sun.awt.image.PNGImageDecoder.green_map:[B
aload 0
getfield sun.awt.image.PNGImageDecoder.blue_map:[B
invokespecial java.awt.image.IndexColorModel.<init>:(II[B[B[B)V
29: putfield sun.awt.image.PNGImageDecoder.cm:Ljava/awt/image/ColorModel;
30: goto 34
31: StackMap locals:
StackMap stack:
aload 0
new java.awt.image.IndexColorModel
dup
aload 0
getfield sun.awt.image.PNGImageDecoder.bitDepth:I
aload 0
getfield sun.awt.image.PNGImageDecoder.red_map:[B
arraylength
32: aload 0
getfield sun.awt.image.PNGImageDecoder.red_map:[B
aload 0
getfield sun.awt.image.PNGImageDecoder.green_map:[B
aload 0
getfield sun.awt.image.PNGImageDecoder.blue_map:[B
aload 0
getfield sun.awt.image.PNGImageDecoder.alpha_map:[B
invokespecial java.awt.image.IndexColorModel.<init>:(II[B[B[B[B)V
33: putfield sun.awt.image.PNGImageDecoder.cm:Ljava/awt/image/ColorModel;
34: StackMap locals:
StackMap stack:
iload 4
newarray 8
astore 2
35: goto 59
36: StackMap locals:
StackMap stack:
iload 6
iconst_4
if_icmplt 37
iconst_3
goto 38
StackMap locals:
StackMap stack:
37: iload 6
StackMap locals:
StackMap stack: int
38: istore 8
start local 8 39: aload 0
getstatic sun.awt.image.PNGImageDecoder.greyModels:[Ljava/awt/image/ColorModel;
iload 8
aaload
dup_x1
putfield sun.awt.image.PNGImageDecoder.cm:Ljava/awt/image/ColorModel;
ifnonnull 53
40: iconst_1
iconst_1
iload 8
ishl
ishl
istore 9
start local 9 41: iload 9
newarray 8
astore 10
start local 10 42: iconst_0
istore 11
start local 11 43: goto 45
StackMap locals: sun.awt.image.PNGImageDecoder java.io.InputStream byte[] int[] int int int int int int byte[] int
StackMap stack:
44: aload 10
iload 11
sipush 255
iload 11
imul
iload 9
iconst_1
isub
idiv
i2b
bastore
iinc 11 1
StackMap locals:
StackMap stack:
45: iload 11
iload 9
if_icmplt 44
end local 11 46: aload 0
getfield sun.awt.image.PNGImageDecoder.transparentPixel:I
iconst_m1
if_icmpne 49
47: aload 0
new java.awt.image.IndexColorModel
dup
aload 0
getfield sun.awt.image.PNGImageDecoder.bitDepth:I
aload 10
arraylength
aload 10
aload 10
aload 10
invokespecial java.awt.image.IndexColorModel.<init>:(II[B[B[B)V
putfield sun.awt.image.PNGImageDecoder.cm:Ljava/awt/image/ColorModel;
48: goto 52
49: StackMap locals:
StackMap stack:
aload 0
new java.awt.image.IndexColorModel
dup
aload 0
getfield sun.awt.image.PNGImageDecoder.bitDepth:I
aload 10
arraylength
aload 10
aload 10
aload 10
50: aload 0
getfield sun.awt.image.PNGImageDecoder.transparentPixel:I
sipush 255
iand
invokespecial java.awt.image.IndexColorModel.<init>:(II[B[B[BI)V
51: putfield sun.awt.image.PNGImageDecoder.cm:Ljava/awt/image/ColorModel;
52: StackMap locals:
StackMap stack:
getstatic sun.awt.image.PNGImageDecoder.greyModels:[Ljava/awt/image/ColorModel;
iload 8
aload 0
getfield sun.awt.image.PNGImageDecoder.cm:Ljava/awt/image/ColorModel;
aastore
end local 10 end local 9 end local 8 53: StackMap locals:
StackMap stack:
iload 4
newarray 8
astore 2
54: goto 59
55: StackMap locals:
StackMap stack:
aload 0
invokestatic java.awt.image.ColorModel.getRGBdefault:()Ljava/awt/image/ColorModel;
putfield sun.awt.image.PNGImageDecoder.cm:Ljava/awt/image/ColorModel;
56: iload 4
newarray 10
astore 3
57: goto 59
58: StackMap locals:
StackMap stack:
new sun.awt.image.PNGImageDecoder$PNGException
dup
aload 0
ldc "invalid color type"
invokespecial sun.awt.image.PNGImageDecoder$PNGException.<init>:(Lsun/awt/image/PNGImageDecoder;Ljava/lang/String;)V
athrow
59: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.awt.image.PNGImageDecoder.width:I
aload 0
getfield sun.awt.image.PNGImageDecoder.height:I
invokevirtual sun.awt.image.PNGImageDecoder.setDimensions:(II)I
pop
60: aload 0
aload 0
getfield sun.awt.image.PNGImageDecoder.cm:Ljava/awt/image/ColorModel;
invokevirtual sun.awt.image.PNGImageDecoder.setColorModel:(Ljava/awt/image/ColorModel;)I
pop
61: aload 0
getfield sun.awt.image.PNGImageDecoder.interlaceMethod:I
ifeq 63
62: bipush 6
goto 64
63: StackMap locals:
StackMap stack:
bipush 30
64: StackMap locals:
StackMap stack: int
istore 8
start local 8 65: aload 0
iload 8
invokevirtual sun.awt.image.PNGImageDecoder.setHints:(I)I
pop
66: aload 0
invokevirtual sun.awt.image.PNGImageDecoder.headerComplete:()V
67: aload 0
getfield sun.awt.image.PNGImageDecoder.colorType:I
iconst_1
iand
ifeq 68
iconst_1
goto 73
68: StackMap locals: int
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.colorType:I
iconst_2
iand
ifeq 69
iconst_3
goto 70
StackMap locals:
StackMap stack:
69: iconst_1
StackMap locals:
StackMap stack: int
70: aload 0
getfield sun.awt.image.PNGImageDecoder.colorType:I
iconst_4
iand
ifeq 71
iconst_1
goto 72
StackMap locals:
StackMap stack: int
71: iconst_0
StackMap locals: sun.awt.image.PNGImageDecoder java.io.InputStream byte[] int[] int int int int int
StackMap stack: int int
72: iadd
73: StackMap locals:
StackMap stack: int
istore 9
start local 9 74: iload 9
aload 0
getfield sun.awt.image.PNGImageDecoder.bitDepth:I
imul
istore 10
start local 10 75: iload 10
bipush 7
iadd
iconst_3
ishr
istore 11
start local 11 76: aload 0
getfield sun.awt.image.PNGImageDecoder.interlaceMethod:I
ifne 79
iconst_m1
istore 12
start local 12 77: iconst_0
istore 13
start local 13 78: goto 228
end local 13 end local 12 79: StackMap locals: int int int
StackMap stack:
iconst_0
istore 12
start local 12 80: bipush 7
istore 13
start local 13 81: goto 228
82: StackMap locals: int int
StackMap stack:
getstatic sun.awt.image.PNGImageDecoder.startingRow:[B
iload 12
baload
istore 14
start local 14 83: getstatic sun.awt.image.PNGImageDecoder.rowIncrement:[B
iload 12
baload
istore 15
start local 15 84: getstatic sun.awt.image.PNGImageDecoder.colIncrement:[B
iload 12
baload
istore 16
start local 16 85: getstatic sun.awt.image.PNGImageDecoder.blockWidth:[B
iload 12
baload
pop
86: getstatic sun.awt.image.PNGImageDecoder.blockHeight:[B
iload 12
baload
pop
87: getstatic sun.awt.image.PNGImageDecoder.startingCol:[B
iload 12
baload
istore 17
start local 17 88: aload 0
getfield sun.awt.image.PNGImageDecoder.width:I
iload 17
isub
iload 16
iconst_1
isub
iadd
iload 16
idiv
istore 18
start local 18 89: iload 18
iload 10
imul
bipush 7
iadd
iconst_3
ishr
istore 19
start local 19 90: iload 19
ifne 91
goto 228
91: StackMap locals: sun.awt.image.PNGImageDecoder java.io.InputStream byte[] int[] int int int int int int int int int int int int int int int int
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.interlaceMethod:I
ifne 92
92: StackMap locals:
StackMap stack:
iload 5
iload 14
imul
istore 20
start local 20 93: iconst_1
istore 21
start local 21 94: iload 19
newarray 8
astore 22
start local 22 95: iload 19
newarray 8
astore 23
start local 23 96: goto 222
97: StackMap locals: sun.awt.image.PNGImageDecoder java.io.InputStream byte[] int[] int int int int int int int int int int int int int int int int int int byte[] byte[]
StackMap stack:
aload 1
invokevirtual java.io.InputStream.read:()I
istore 24
start local 24 98: iconst_0
istore 25
start local 25 99: goto 103
100: StackMap locals: int int
StackMap stack:
aload 1
aload 22
iload 25
iload 19
iload 25
isub
invokevirtual java.io.InputStream.read:([BII)I
istore 26
start local 26 101: iload 26
ifgt 102
new sun.awt.image.PNGImageDecoder$PNGException
dup
aload 0
ldc "missing data"
invokespecial sun.awt.image.PNGImageDecoder$PNGException.<init>:(Lsun/awt/image/PNGImageDecoder;Ljava/lang/String;)V
athrow
102: StackMap locals: int
StackMap stack:
iload 25
iload 26
iadd
istore 25
end local 26 103: StackMap locals:
StackMap stack:
iload 25
iload 19
if_icmplt 100
end local 25 104: aload 0
aload 22
105: iload 21
ifeq 106
aconst_null
goto 107
StackMap locals: sun.awt.image.PNGImageDecoder java.io.InputStream byte[] int[] int int int int int int int int int int int int int int int int int int byte[] byte[] int
StackMap stack: sun.awt.image.PNGImageDecoder byte[]
106: aload 23
107: StackMap locals: sun.awt.image.PNGImageDecoder java.io.InputStream byte[] int[] int int int int int int int int int int int int int int int int int int byte[] byte[] int
StackMap stack: sun.awt.image.PNGImageDecoder byte[] byte[]
iload 24
iload 19
iload 11
108: invokevirtual sun.awt.image.PNGImageDecoder.filterRow:([B[BIII)V
109: iload 17
istore 25
start local 25 110: iconst_0
istore 26
start local 26 111: iconst_0
istore 27
start local 27 112: goto 210
113: StackMap locals: int int int
StackMap stack:
aload 3
ifnull 188
114: iload 7
lookupswitch { // 6
66: 137
68: 170
70: 115
130: 148
132: 178
134: 126
default: 186
}
115: StackMap locals:
StackMap stack:
aload 3
iload 25
iload 20
iadd
116: aload 22
iload 26
baload
sipush 255
iand
bipush 16
ishl
117: aload 22
iload 26
iconst_1
iadd
baload
sipush 255
iand
bipush 8
ishl
118: ior
119: aload 22
iload 26
iconst_2
iadd
baload
sipush 255
iand
120: ior
121: aload 22
iload 26
iconst_3
iadd
baload
sipush 255
iand
bipush 24
ishl
122: ior
123: iastore
124: iinc 26 4
125: goto 209
126: StackMap locals:
StackMap stack:
aload 3
iload 25
iload 20
iadd
127: aload 22
iload 26
baload
sipush 255
iand
bipush 16
ishl
128: aload 22
iload 26
iconst_2
iadd
baload
sipush 255
iand
bipush 8
ishl
129: ior
130: aload 22
iload 26
iconst_4
iadd
baload
sipush 255
iand
131: ior
132: aload 22
iload 26
bipush 6
iadd
baload
sipush 255
iand
bipush 24
ishl
133: ior
134: iastore
135: iinc 26 8
136: goto 209
137: StackMap locals:
StackMap stack:
aload 22
iload 26
baload
sipush 255
iand
bipush 16
ishl
138: aload 22
iload 26
iconst_1
iadd
baload
sipush 255
iand
bipush 8
ishl
139: ior
140: aload 22
iload 26
iconst_2
iadd
baload
sipush 255
iand
141: ior
142: istore 27
143: iload 27
aload 0
getfield sun.awt.image.PNGImageDecoder.transparentPixel:I
if_icmpeq 145
144: iload 27
ldc -16777216
ior
istore 27
145: StackMap locals:
StackMap stack:
aload 3
iload 25
iload 20
iadd
iload 27
iastore
146: iinc 26 3
147: goto 209
148: StackMap locals:
StackMap stack:
aload 22
iload 26
baload
sipush 255
iand
bipush 16
ishl
149: aload 22
iload 26
iconst_2
iadd
baload
sipush 255
iand
bipush 8
ishl
150: ior
151: aload 22
iload 26
iconst_4
iadd
baload
sipush 255
iand
152: ior
153: istore 27
154: aload 0
getfield sun.awt.image.PNGImageDecoder.transparentPixel_16:[B
ifnull 155
iconst_1
goto 156
StackMap locals:
StackMap stack:
155: iconst_0
StackMap locals:
StackMap stack: int
156: istore 28
start local 28 157: iconst_0
istore 29
start local 29 158: goto 164
159: StackMap locals: int int
StackMap stack:
iload 28
160: aload 22
iload 26
iload 29
iadd
baload
sipush 255
iand
aload 0
getfield sun.awt.image.PNGImageDecoder.transparentPixel_16:[B
iload 29
baload
sipush 255
iand
if_icmpne 161
iconst_1
goto 162
StackMap locals:
StackMap stack: int
161: iconst_0
StackMap locals: sun.awt.image.PNGImageDecoder java.io.InputStream byte[] int[] int int int int int int int int int int int int int int int int int int byte[] byte[] int int int int int int
StackMap stack: int int
162: iand
istore 28
163: iinc 29 1
StackMap locals:
StackMap stack:
164: iload 28
ifeq 165
iload 29
bipush 6
if_icmplt 159
end local 29 165: StackMap locals:
StackMap stack:
iload 28
ifne 167
166: iload 27
ldc -16777216
ior
istore 27
167: StackMap locals:
StackMap stack:
aload 3
iload 25
iload 20
iadd
iload 27
iastore
168: iinc 26 6
169: goto 209
end local 28 170: StackMap locals:
StackMap stack:
aload 22
iload 26
baload
sipush 255
iand
istore 29
start local 29 171: aload 3
iload 25
iload 20
iadd
172: iload 29
bipush 16
ishl
iload 29
bipush 8
ishl
ior
iload 29
ior
173: aload 22
iload 26
iconst_1
iadd
baload
sipush 255
iand
bipush 24
ishl
174: ior
175: iastore
end local 29 176: iinc 26 2
177: goto 209
178: StackMap locals:
StackMap stack:
aload 22
iload 26
baload
sipush 255
iand
istore 29
start local 29 179: aload 3
iload 25
iload 20
iadd
180: iload 29
bipush 16
ishl
iload 29
bipush 8
ishl
ior
iload 29
ior
181: aload 22
iload 26
iconst_2
iadd
baload
sipush 255
iand
bipush 24
ishl
182: ior
183: iastore
end local 29 184: iinc 26 4
185: goto 209
186: StackMap locals:
StackMap stack:
new sun.awt.image.PNGImageDecoder$PNGException
dup
aload 0
ldc "illegal type/depth"
invokespecial sun.awt.image.PNGImageDecoder$PNGException.<init>:(Lsun/awt/image/PNGImageDecoder;Ljava/lang/String;)V
athrow
187: StackMap locals:
StackMap stack:
goto 209
StackMap locals:
StackMap stack:
188: aload 0
getfield sun.awt.image.PNGImageDecoder.bitDepth:I
lookupswitch { // 5
1: 189
2: 194
4: 199
8: 204
16: 206
default: 208
}
189: StackMap locals:
StackMap stack:
aload 2
iload 25
iload 20
iadd
190: aload 22
iload 26
iconst_3
ishr
baload
bipush 7
iload 26
bipush 7
iand
isub
ishr
iconst_1
iand
i2b
191: bastore
192: iinc 26 1
193: goto 209
194: StackMap locals:
StackMap stack:
aload 2
iload 25
iload 20
iadd
195: aload 22
iload 26
iconst_2
ishr
baload
iconst_3
iload 26
iconst_3
iand
isub
iconst_2
imul
ishr
iconst_3
iand
i2b
196: bastore
197: iinc 26 1
198: goto 209
199: StackMap locals:
StackMap stack:
aload 2
iload 25
iload 20
iadd
200: aload 22
iload 26
iconst_1
ishr
baload
iconst_1
iload 26
iconst_1
iand
isub
iconst_4
imul
ishr
bipush 15
iand
i2b
201: bastore
202: iinc 26 1
203: goto 209
204: StackMap locals:
StackMap stack:
aload 2
iload 25
iload 20
iadd
aload 22
iload 26
iinc 26 1
baload
bastore
205: goto 209
206: StackMap locals:
StackMap stack:
aload 2
iload 25
iload 20
iadd
aload 22
iload 26
baload
bastore
iinc 26 2
207: goto 209
208: StackMap locals:
StackMap stack:
new sun.awt.image.PNGImageDecoder$PNGException
dup
aload 0
ldc "illegal type/depth"
invokespecial sun.awt.image.PNGImageDecoder$PNGException.<init>:(Lsun/awt/image/PNGImageDecoder;Ljava/lang/String;)V
athrow
209: StackMap locals:
StackMap stack:
iload 25
iload 16
iadd
istore 25
210: StackMap locals:
StackMap stack:
iload 25
aload 0
getfield sun.awt.image.PNGImageDecoder.width:I
if_icmplt 113
211: aload 0
getfield sun.awt.image.PNGImageDecoder.interlaceMethod:I
ifne 216
212: aload 3
ifnull 215
213: aload 0
iconst_0
iload 14
aload 0
getfield sun.awt.image.PNGImageDecoder.width:I
iconst_1
aload 3
iconst_0
aload 0
getfield sun.awt.image.PNGImageDecoder.width:I
invokevirtual sun.awt.image.PNGImageDecoder.sendPixels:(IIII[III)Z
pop
214: goto 216
215: StackMap locals:
StackMap stack:
aload 0
iconst_0
iload 14
aload 0
getfield sun.awt.image.PNGImageDecoder.width:I
iconst_1
aload 2
iconst_0
aload 0
getfield sun.awt.image.PNGImageDecoder.width:I
invokevirtual sun.awt.image.PNGImageDecoder.sendPixels:(IIII[BII)Z
pop
216: StackMap locals:
StackMap stack:
iload 14
iload 15
iadd
istore 14
217: iload 20
iload 15
iload 5
imul
iadd
istore 20
218: aload 22
astore 28
start local 28 219: aload 23
astore 22
220: aload 28
astore 23
221: iconst_0
istore 21
end local 28 end local 27 end local 26 end local 25 end local 24 222: StackMap locals: sun.awt.image.PNGImageDecoder java.io.InputStream byte[] int[] int int int int int int int int int int int int int int int int int int byte[] byte[]
StackMap stack:
iload 14
aload 0
getfield sun.awt.image.PNGImageDecoder.height:I
if_icmplt 97
223: aload 0
getfield sun.awt.image.PNGImageDecoder.interlaceMethod:I
ifeq 228
224: aload 3
ifnull 227
225: aload 0
iconst_0
iconst_0
aload 0
getfield sun.awt.image.PNGImageDecoder.width:I
aload 0
getfield sun.awt.image.PNGImageDecoder.height:I
aload 3
iconst_0
aload 0
getfield sun.awt.image.PNGImageDecoder.width:I
invokevirtual sun.awt.image.PNGImageDecoder.sendPixels:(IIII[III)Z
pop
226: goto 228
227: StackMap locals:
StackMap stack:
aload 0
iconst_0
iconst_0
aload 0
getfield sun.awt.image.PNGImageDecoder.width:I
aload 0
getfield sun.awt.image.PNGImageDecoder.height:I
aload 2
iconst_0
aload 0
getfield sun.awt.image.PNGImageDecoder.width:I
invokevirtual sun.awt.image.PNGImageDecoder.sendPixels:(IIII[BII)Z
pop
end local 23 end local 22 end local 21 end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 228: StackMap locals: sun.awt.image.PNGImageDecoder java.io.InputStream byte[] int[] int int int int int int int int int int
StackMap stack:
iinc 12 1
iload 12
iload 13
if_icmple 82
229: aload 0
iconst_3
iconst_1
invokevirtual sun.awt.image.PNGImageDecoder.imageComplete:(IZ)I
pop
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 230: goto 244
StackMap locals: sun.awt.image.PNGImageDecoder
StackMap stack: java.io.IOException
231: astore 1
start local 1 232: aload 0
getfield sun.awt.image.PNGImageDecoder.aborted:Z
ifne 236
233: aload 0
ldc "error"
aload 1
invokevirtual sun.awt.image.PNGImageDecoder.property:(Ljava/lang/String;Ljava/lang/Object;)V
234: aload 0
iconst_3
iconst_1
invokevirtual sun.awt.image.PNGImageDecoder.imageComplete:(IZ)I
pop
235: aload 1
athrow
end local 1 236: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.awt.image.PNGImageDecoder.close:()V
237: goto 247
StackMap locals:
StackMap stack: java.lang.Throwable
238: pop
goto 247
239: StackMap locals:
StackMap stack: java.lang.Throwable
astore 30
240: aload 0
invokevirtual sun.awt.image.PNGImageDecoder.close:()V
241: goto 243
StackMap locals: sun.awt.image.PNGImageDecoder top top top top top top top top top top top top top top top top top top top top top top top top top top top top top java.lang.Throwable
StackMap stack: java.lang.Throwable
242: pop
243: StackMap locals:
StackMap stack:
aload 30
athrow
244: StackMap locals: sun.awt.image.PNGImageDecoder
StackMap stack:
aload 0
invokevirtual sun.awt.image.PNGImageDecoder.close:()V
245: goto 247
StackMap locals:
StackMap stack: java.lang.Throwable
246: pop
247: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 248 0 this Lsun/awt/image/PNGImageDecoder;
1 6 1 i I
7 230 1 is Ljava/io/InputStream;
9 230 2 bPixels [B
10 230 3 wPixels [I
11 230 4 pixSize I
20 21 5 rowStride I
22 230 5 rowStride I
12 230 6 logDepth I
23 230 7 combinedType I
39 53 8 llog I
41 53 9 size I
42 53 10 ramp [B
43 46 11 i I
65 230 8 flags I
74 230 9 samplesPerPixel I
75 230 10 bitsPerPixel I
76 230 11 bytesPerPixel I
77 79 12 pass I
80 230 12 pass I
78 79 13 passLimit I
81 230 13 passLimit I
83 228 14 row I
84 228 15 rowInc I
85 228 16 colInc I
88 228 17 sCol I
89 228 18 rowPixelWidth I
90 228 19 rowByteWidth I
93 228 20 rowOffset I
94 228 21 firstRow Z
95 228 22 rowByteBuffer [B
96 228 23 prevRowByteBuffer [B
98 222 24 rowFilter I
99 104 25 rowFillPos I
101 103 26 n I
110 222 25 col I
111 222 26 spos I
112 222 27 pixel I
157 170 28 isTransparent Z
158 165 29 i I
171 176 29 tx I
179 184 29 tx I
219 222 28 T [B
232 236 1 e Ljava/io/IOException;
Exception table:
from to target type
0 230 231 Class java.io.IOException
236 237 238 Class java.lang.Throwable
0 236 239 any
240 241 242 Class java.lang.Throwable
244 245 246 Class java.lang.Throwable
Exceptions:
throws java.io.IOException, sun.awt.image.ImageFormatException
private boolean sendPixels(int, int, int, int, int[], int, int);
descriptor: (IIII[III)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=9, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
iload 1
iload 2
iload 3
iload 4
aload 0
getfield sun.awt.image.PNGImageDecoder.cm:Ljava/awt/image/ColorModel;
1: aload 5
iload 6
iload 7
2: invokevirtual sun.awt.image.PNGImageDecoder.setPixels:(IIIILjava/awt/image/ColorModel;[III)I
istore 8
start local 8 3: iload 8
ifgt 5
4: aload 0
iconst_1
putfield sun.awt.image.PNGImageDecoder.aborted:Z
5: StackMap locals: int
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.aborted:Z
ifeq 6
iconst_0
goto 7
StackMap locals:
StackMap stack:
6: iconst_1
StackMap locals:
StackMap stack: int
7: ireturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/awt/image/PNGImageDecoder;
0 8 1 x I
0 8 2 y I
0 8 3 w I
0 8 4 h I
0 8 5 pixels [I
0 8 6 offset I
0 8 7 pixlength I
3 8 8 count I
MethodParameters:
Name Flags
x
y
w
h
pixels
offset
pixlength
private boolean sendPixels(int, int, int, int, byte[], int, int);
descriptor: (IIII[BII)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=9, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
iload 1
iload 2
iload 3
iload 4
aload 0
getfield sun.awt.image.PNGImageDecoder.cm:Ljava/awt/image/ColorModel;
1: aload 5
iload 6
iload 7
2: invokevirtual sun.awt.image.PNGImageDecoder.setPixels:(IIIILjava/awt/image/ColorModel;[BII)I
istore 8
start local 8 3: iload 8
ifgt 5
4: aload 0
iconst_1
putfield sun.awt.image.PNGImageDecoder.aborted:Z
5: StackMap locals: int
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.aborted:Z
ifeq 6
iconst_0
goto 7
StackMap locals:
StackMap stack:
6: iconst_1
StackMap locals:
StackMap stack: int
7: ireturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/awt/image/PNGImageDecoder;
0 8 1 x I
0 8 2 y I
0 8 3 w I
0 8 4 h I
0 8 5 pixels [B
0 8 6 offset I
0 8 7 pixlength I
3 8 8 count I
MethodParameters:
Name Flags
x
y
w
h
pixels
offset
pixlength
private void filterRow(byte[], byte[], int, int, int);
descriptor: ([B[BIII)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=14, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: iconst_0
istore 6
start local 6 1: iload 3
tableswitch { // 0 - 4
0: 2
1: 3
2: 8
3: 14
4: 29
default: 60
}
2: StackMap locals: int
StackMap stack:
goto 61
3: StackMap locals:
StackMap stack:
iload 5
istore 6
goto 6
4: StackMap locals:
StackMap stack:
aload 1
iload 6
dup2
baload
aload 1
iload 6
iload 5
isub
baload
iadd
i2b
bastore
5: iinc 6 1
StackMap locals:
StackMap stack:
6: iload 6
iload 4
if_icmplt 4
7: goto 61
8: StackMap locals:
StackMap stack:
aload 2
ifnull 61
9: goto 12
10: StackMap locals:
StackMap stack:
aload 1
iload 6
dup2
baload
aload 2
iload 6
baload
iadd
i2b
bastore
11: iinc 6 1
StackMap locals:
StackMap stack:
12: iload 6
iload 4
if_icmplt 10
13: goto 61
14: StackMap locals:
StackMap stack:
aload 2
ifnull 24
15: goto 18
16: StackMap locals:
StackMap stack:
aload 1
iload 6
dup2
baload
sipush 255
aload 2
iload 6
baload
iand
iconst_1
ishr
iadd
i2b
bastore
17: iinc 6 1
StackMap locals:
StackMap stack:
18: iload 6
iload 5
if_icmplt 16
19: goto 22
20: StackMap locals:
StackMap stack:
aload 1
iload 6
dup2
baload
aload 2
iload 6
baload
sipush 255
iand
aload 1
iload 6
iload 5
isub
baload
sipush 255
iand
iadd
iconst_1
ishr
iadd
i2b
bastore
21: iinc 6 1
StackMap locals:
StackMap stack:
22: iload 6
iload 4
if_icmplt 20
23: goto 61
24: StackMap locals:
StackMap stack:
iload 5
istore 6
goto 27
25: StackMap locals:
StackMap stack:
aload 1
iload 6
dup2
baload
aload 1
iload 6
iload 5
isub
baload
sipush 255
iand
iconst_1
ishr
iadd
i2b
bastore
26: iinc 6 1
StackMap locals:
StackMap stack:
27: iload 6
iload 4
if_icmplt 25
28: goto 61
29: StackMap locals:
StackMap stack:
aload 2
ifnull 55
30: goto 33
31: StackMap locals:
StackMap stack:
aload 1
iload 6
dup2
baload
aload 2
iload 6
baload
iadd
i2b
bastore
32: iinc 6 1
StackMap locals:
StackMap stack:
33: iload 6
iload 5
if_icmplt 31
34: goto 53
35: StackMap locals:
StackMap stack:
aload 1
iload 6
iload 5
isub
baload
sipush 255
iand
istore 7
start local 7 36: aload 2
iload 6
baload
sipush 255
iand
istore 8
start local 8 37: aload 2
iload 6
iload 5
isub
baload
sipush 255
iand
istore 9
start local 9 38: iload 7
iload 8
iadd
iload 9
isub
istore 10
start local 10 39: iload 10
iload 7
if_icmple 40
iload 10
iload 7
isub
goto 41
StackMap locals: sun.awt.image.PNGImageDecoder byte[] byte[] int int int int int int int int
StackMap stack:
40: iload 7
iload 10
isub
StackMap locals:
StackMap stack: int
41: istore 11
start local 11 42: iload 10
iload 8
if_icmple 43
iload 10
iload 8
isub
goto 44
StackMap locals: int
StackMap stack:
43: iload 8
iload 10
isub
StackMap locals:
StackMap stack: int
44: istore 12
start local 12 45: iload 10
iload 9
if_icmple 46
iload 10
iload 9
isub
goto 47
StackMap locals: int
StackMap stack:
46: iload 9
iload 10
isub
StackMap locals:
StackMap stack: int
47: istore 13
start local 13 48: aload 1
iload 6
dup2
baload
iload 11
iload 12
if_icmpgt 49
iload 11
iload 13
if_icmpgt 49
iload 7
goto 51
StackMap locals: sun.awt.image.PNGImageDecoder byte[] byte[] int int int int int int int int int int int
StackMap stack: byte[] int int
49: iload 12
iload 13
if_icmpgt 50
iload 8
goto 51
StackMap locals: sun.awt.image.PNGImageDecoder byte[] byte[] int int int int int int int int int int int
StackMap stack: byte[] int int
50: iload 9
StackMap locals: sun.awt.image.PNGImageDecoder byte[] byte[] int int int int int int int int int int int
StackMap stack: byte[] int int int
51: iadd
i2b
bastore
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 52: iinc 6 1
StackMap locals: sun.awt.image.PNGImageDecoder byte[] byte[] int int int int
StackMap stack:
53: iload 6
iload 4
if_icmplt 35
54: goto 61
55: StackMap locals:
StackMap stack:
iload 5
istore 6
goto 58
56: StackMap locals:
StackMap stack:
aload 1
iload 6
dup2
baload
aload 1
iload 6
iload 5
isub
baload
iadd
i2b
bastore
57: iinc 6 1
StackMap locals:
StackMap stack:
58: iload 6
iload 4
if_icmplt 56
59: goto 61
60: StackMap locals:
StackMap stack:
new sun.awt.image.PNGImageDecoder$PNGException
dup
aload 0
ldc "Illegal filter"
invokespecial sun.awt.image.PNGImageDecoder$PNGException.<init>:(Lsun/awt/image/PNGImageDecoder;Ljava/lang/String;)V
athrow
61: StackMap locals:
StackMap stack:
return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 62 0 this Lsun/awt/image/PNGImageDecoder;
0 62 1 rowByteBuffer [B
0 62 2 prevRow [B
0 62 3 rowFilter I
0 62 4 rowByteWidth I
0 62 5 bytesPerSample I
1 62 6 x I
36 52 7 a I
37 52 8 b I
38 52 9 c I
39 52 10 p I
42 52 11 pa I
45 52 12 pb I
48 52 13 pc I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
rowByteBuffer
prevRow
rowFilter
rowByteWidth
bytesPerSample
public void <init>(sun.awt.image.InputStreamImageSource, java.io.InputStream);
descriptor: (Lsun/awt/image/InputStreamImageSource;Ljava/io/InputStream;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial sun.awt.image.ImageDecoder.<init>:(Lsun/awt/image/InputStreamImageSource;Ljava/io/InputStream;)V
1: aload 0
ldc 100000
putfield sun.awt.image.PNGImageDecoder.gamma:I
2: aload 0
iconst_m1
putfield sun.awt.image.PNGImageDecoder.transparentPixel:I
3: aload 0
aconst_null
putfield sun.awt.image.PNGImageDecoder.transparentPixel_16:[B
4: aload 0
sipush 4096
newarray 8
putfield sun.awt.image.PNGImageDecoder.inbuf:[B
5: aload 0
new sun.awt.image.PNGFilterInputStream
dup
aload 0
aload 2
invokespecial sun.awt.image.PNGFilterInputStream.<init>:(Lsun/awt/image/PNGImageDecoder;Ljava/io/InputStream;)V
putfield sun.awt.image.PNGImageDecoder.inputStream:Lsun/awt/image/PNGFilterInputStream;
6: aload 0
aload 0
getfield sun.awt.image.PNGImageDecoder.inputStream:Lsun/awt/image/PNGFilterInputStream;
getfield sun.awt.image.PNGFilterInputStream.underlyingInputStream:Ljava/io/InputStream;
putfield sun.awt.image.PNGImageDecoder.underlyingInputStream:Ljava/io/InputStream;
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/awt/image/PNGImageDecoder;
0 8 1 src Lsun/awt/image/InputStreamImageSource;
0 8 2 input Ljava/io/InputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
src
input
private void fill();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=1
start local 0 0: aload 0
getfield sun.awt.image.PNGImageDecoder.seenEOF:Z
ifne 14
1: aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
ifle 6
aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
aload 0
getfield sun.awt.image.PNGImageDecoder.limit:I
if_icmpge 6
2: aload 0
getfield sun.awt.image.PNGImageDecoder.inbuf:[B
aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
aload 0
getfield sun.awt.image.PNGImageDecoder.inbuf:[B
iconst_0
aload 0
getfield sun.awt.image.PNGImageDecoder.limit:I
aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: aload 0
dup
getfield sun.awt.image.PNGImageDecoder.limit:I
aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
isub
putfield sun.awt.image.PNGImageDecoder.limit:I
4: aload 0
iconst_0
putfield sun.awt.image.PNGImageDecoder.pos:I
5: goto 8
StackMap locals:
StackMap stack:
6: aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
aload 0
getfield sun.awt.image.PNGImageDecoder.limit:I
if_icmplt 8
7: aload 0
iconst_0
putfield sun.awt.image.PNGImageDecoder.pos:I
aload 0
iconst_0
putfield sun.awt.image.PNGImageDecoder.limit:I
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.inbuf:[B
arraylength
istore 1
start local 1 9: goto 13
10: StackMap locals: int
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.underlyingInputStream:Ljava/io/InputStream;
aload 0
getfield sun.awt.image.PNGImageDecoder.inbuf:[B
aload 0
getfield sun.awt.image.PNGImageDecoder.limit:I
iload 1
aload 0
getfield sun.awt.image.PNGImageDecoder.limit:I
isub
invokevirtual java.io.InputStream.read:([BII)I
istore 2
start local 2 11: iload 2
ifgt 12
aload 0
iconst_1
putfield sun.awt.image.PNGImageDecoder.seenEOF:Z
goto 14
12: StackMap locals: int
StackMap stack:
aload 0
dup
getfield sun.awt.image.PNGImageDecoder.limit:I
iload 2
iadd
putfield sun.awt.image.PNGImageDecoder.limit:I
end local 2 13: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.limit:I
iload 1
if_icmplt 10
end local 1 14: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lsun/awt/image/PNGImageDecoder;
9 14 1 bsize I
11 13 2 n I
Exceptions:
throws java.io.IOException
private boolean need(int);
descriptor: (I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.awt.image.PNGImageDecoder.limit:I
aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
isub
iload 1
if_icmplt 1
iconst_1
ireturn
1: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.awt.image.PNGImageDecoder.fill:()V
2: aload 0
getfield sun.awt.image.PNGImageDecoder.limit:I
aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
isub
iload 1
if_icmplt 3
iconst_1
ireturn
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.seenEOF:Z
ifeq 4
iconst_0
ireturn
4: StackMap locals:
StackMap stack:
iload 1
bipush 100
iadd
newarray 8
astore 2
start local 2 5: aload 0
getfield sun.awt.image.PNGImageDecoder.inbuf:[B
aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
aload 2
iconst_0
aload 0
getfield sun.awt.image.PNGImageDecoder.limit:I
aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
6: aload 0
dup
getfield sun.awt.image.PNGImageDecoder.limit:I
aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
isub
putfield sun.awt.image.PNGImageDecoder.limit:I
7: aload 0
iconst_0
putfield sun.awt.image.PNGImageDecoder.pos:I
8: aload 0
aload 2
putfield sun.awt.image.PNGImageDecoder.inbuf:[B
9: aload 0
invokevirtual sun.awt.image.PNGImageDecoder.fill:()V
10: aload 0
getfield sun.awt.image.PNGImageDecoder.limit:I
aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
isub
iload 1
if_icmplt 11
iconst_1
ireturn
StackMap locals: byte[]
StackMap stack:
11: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/awt/image/PNGImageDecoder;
0 12 1 n I
5 12 2 nin [B
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
n
private final int getInt(int);
descriptor: (I)I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.awt.image.PNGImageDecoder.inbuf:[B
iload 1
baload
sipush 255
iand
bipush 24
ishl
1: aload 0
getfield sun.awt.image.PNGImageDecoder.inbuf:[B
iload 1
iconst_1
iadd
baload
sipush 255
iand
bipush 16
ishl
2: ior
3: aload 0
getfield sun.awt.image.PNGImageDecoder.inbuf:[B
iload 1
iconst_2
iadd
baload
sipush 255
iand
bipush 8
ishl
4: ior
5: aload 0
getfield sun.awt.image.PNGImageDecoder.inbuf:[B
iload 1
iconst_3
iadd
baload
sipush 255
iand
6: ior
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/awt/image/PNGImageDecoder;
0 7 1 pos I
MethodParameters:
Name Flags
pos
private final int getShort(int);
descriptor: (I)I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.awt.image.PNGImageDecoder.inbuf:[B
iload 1
baload
sipush 255
iand
bipush 8
ishl
1: aload 0
getfield sun.awt.image.PNGImageDecoder.inbuf:[B
iload 1
iconst_1
iadd
baload
sipush 255
iand
2: ior
i2s
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/awt/image/PNGImageDecoder;
0 3 1 pos I
MethodParameters:
Name Flags
pos
private final int getByte(int);
descriptor: (I)I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.awt.image.PNGImageDecoder.inbuf:[B
iload 1
baload
sipush 255
iand
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/awt/image/PNGImageDecoder;
0 1 1 pos I
MethodParameters:
Name Flags
pos
private final boolean getChunk();
descriptor: ()Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=6, locals=2, args_size=1
start local 0 0: aload 0
iconst_0
putfield sun.awt.image.PNGImageDecoder.chunkLength:I
1: aload 0
bipush 8
invokevirtual sun.awt.image.PNGImageDecoder.need:(I)Z
ifne 2
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
invokevirtual sun.awt.image.PNGImageDecoder.getInt:(I)I
putfield sun.awt.image.PNGImageDecoder.chunkLength:I
3: aload 0
aload 0
aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
iconst_4
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getInt:(I)I
putfield sun.awt.image.PNGImageDecoder.chunkKey:I
4: aload 0
getfield sun.awt.image.PNGImageDecoder.chunkLength:I
ifge 5
new sun.awt.image.PNGImageDecoder$PNGException
dup
aload 0
new java.lang.StringBuilder
dup
ldc "bogus length: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.awt.image.PNGImageDecoder.chunkLength:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial sun.awt.image.PNGImageDecoder$PNGException.<init>:(Lsun/awt/image/PNGImageDecoder;Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.awt.image.PNGImageDecoder.chunkLength:I
bipush 12
iadd
invokevirtual sun.awt.image.PNGImageDecoder.need:(I)Z
ifne 6
iconst_0
ireturn
6: StackMap locals:
StackMap stack:
aload 0
aload 0
aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
bipush 8
iadd
aload 0
getfield sun.awt.image.PNGImageDecoder.chunkLength:I
iadd
invokevirtual sun.awt.image.PNGImageDecoder.getInt:(I)I
putfield sun.awt.image.PNGImageDecoder.chunkCRC:I
7: aload 0
aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
bipush 8
iadd
putfield sun.awt.image.PNGImageDecoder.chunkStart:I
8: aload 0
getfield sun.awt.image.PNGImageDecoder.inbuf:[B
aload 0
getfield sun.awt.image.PNGImageDecoder.pos:I
iconst_4
iadd
aload 0
getfield sun.awt.image.PNGImageDecoder.chunkLength:I
iconst_4
iadd
invokestatic sun.awt.image.PNGImageDecoder.crc:([BII)I
istore 1
start local 1 9: aload 0
getfield sun.awt.image.PNGImageDecoder.chunkCRC:I
iload 1
if_icmpeq 10
getstatic sun.awt.image.PNGImageDecoder.checkCRC:Z
ifeq 10
new sun.awt.image.PNGImageDecoder$PNGException
dup
aload 0
ldc "crc corruption"
invokespecial sun.awt.image.PNGImageDecoder$PNGException.<init>:(Lsun/awt/image/PNGImageDecoder;Ljava/lang/String;)V
athrow
10: StackMap locals: int
StackMap stack:
aload 0
dup
getfield sun.awt.image.PNGImageDecoder.pos:I
aload 0
getfield sun.awt.image.PNGImageDecoder.chunkLength:I
bipush 12
iadd
iadd
putfield sun.awt.image.PNGImageDecoder.pos:I
11: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lsun/awt/image/PNGImageDecoder;
9 12 1 calcCRC I
Exceptions:
throws java.io.IOException
private void readAll();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=1, args_size=1
start local 0 0: goto 2
StackMap locals:
StackMap stack:
1: aload 0
aload 0
getfield sun.awt.image.PNGImageDecoder.chunkKey:I
aload 0
getfield sun.awt.image.PNGImageDecoder.inbuf:[B
aload 0
getfield sun.awt.image.PNGImageDecoder.chunkStart:I
aload 0
getfield sun.awt.image.PNGImageDecoder.chunkLength:I
invokevirtual sun.awt.image.PNGImageDecoder.handleChunk:(I[BII)Z
pop
StackMap locals:
StackMap stack:
2: aload 0
invokevirtual sun.awt.image.PNGImageDecoder.getChunk:()Z
ifne 1
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/awt/image/PNGImageDecoder;
Exceptions:
throws java.io.IOException
boolean getData();
descriptor: ()Z
flags: (0x0000)
Code:
stack=5, locals=1, args_size=1
start local 0 0: goto 3
1: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.awt.image.PNGImageDecoder.chunkKey:I
aload 0
getfield sun.awt.image.PNGImageDecoder.inbuf:[B
aload 0
getfield sun.awt.image.PNGImageDecoder.chunkStart:I
aload 0
getfield sun.awt.image.PNGImageDecoder.chunkLength:I
invokevirtual sun.awt.image.PNGImageDecoder.handleChunk:(I[BII)Z
ifeq 3
2: aload 0
iconst_0
putfield sun.awt.image.PNGImageDecoder.chunkLength:I
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.chunkLength:I
ifne 4
aload 0
invokevirtual sun.awt.image.PNGImageDecoder.getChunk:()Z
ifne 1
4: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.PNGImageDecoder.chunkLength:I
ifle 5
iconst_1
ireturn
StackMap locals:
StackMap stack:
5: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lsun/awt/image/PNGImageDecoder;
Exceptions:
throws java.io.IOException
public static boolean getCheckCRC();
descriptor: ()Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic sun.awt.image.PNGImageDecoder.checkCRC:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
public static void setCheckCRC(boolean);
descriptor: (Z)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iload 0
putstatic sun.awt.image.PNGImageDecoder.checkCRC:Z
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 c Z
MethodParameters:
Name Flags
c
protected void wrc(int);
descriptor: (I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
sipush 255
iand
istore 1
1: iload 1
bipush 32
if_icmple 2
iload 1
bipush 122
if_icmple 3
StackMap locals:
StackMap stack:
2: bipush 63
istore 1
3: StackMap locals:
StackMap stack:
getstatic java.lang.System.out:Ljava/io/PrintStream;
iload 1
invokevirtual java.io.PrintStream.write:(I)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/awt/image/PNGImageDecoder;
0 5 1 c I
MethodParameters:
Name Flags
c
protected void wrk(int);
descriptor: (I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
bipush 24
ishr
invokevirtual sun.awt.image.PNGImageDecoder.wrc:(I)V
1: aload 0
iload 1
bipush 16
ishr
invokevirtual sun.awt.image.PNGImageDecoder.wrc:(I)V
2: aload 0
iload 1
bipush 8
ishr
invokevirtual sun.awt.image.PNGImageDecoder.wrc:(I)V
3: aload 0
iload 1
invokevirtual sun.awt.image.PNGImageDecoder.wrc:(I)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/awt/image/PNGImageDecoder;
0 5 1 n I
MethodParameters:
Name Flags
n
public void print();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield sun.awt.image.PNGImageDecoder.chunkKey:I
invokevirtual sun.awt.image.PNGImageDecoder.wrk:(I)V
1: getstatic java.lang.System.out:Ljava/io/PrintStream;
new java.lang.StringBuilder
dup
ldc " "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.awt.image.PNGImageDecoder.chunkLength:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/awt/image/PNGImageDecoder;
private static int update_crc(int, byte[], int, int);
descriptor: (I[BII)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 0
istore 4
start local 4 1: goto 3
2: StackMap locals: int
StackMap stack:
getstatic sun.awt.image.PNGImageDecoder.crc_table:[I
iload 4
aload 1
iload 2
iinc 2 1
baload
ixor
sipush 255
iand
iaload
iload 4
bipush 8
iushr
ixor
istore 4
3: StackMap locals:
StackMap stack:
iinc 3 -1
iload 3
ifge 2
4: iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 crc I
0 5 1 buf [B
0 5 2 offset I
0 5 3 len I
1 5 4 c I
MethodParameters:
Name Flags
crc
buf
offset
len
private static int crc(byte[], int, int);
descriptor: ([BII)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iconst_m1
aload 0
iload 1
iload 2
invokestatic sun.awt.image.PNGImageDecoder.update_crc:(I[BII)I
iconst_m1
ixor
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 buf [B
0 1 1 offset I
0 1 2 len I
MethodParameters:
Name Flags
buf
offset
len
}
SourceFile: "PNGImageDecoder.java"
NestMembers:
sun.awt.image.PNGImageDecoder$Chromaticities sun.awt.image.PNGImageDecoder$PNGException
InnerClasses:
public Chromaticities = sun.awt.image.PNGImageDecoder$Chromaticities of sun.awt.image.PNGImageDecoder
public PNGException = sun.awt.image.PNGImageDecoder$PNGException of sun.awt.image.PNGImageDecoder