public class com.sun.imageio.plugins.png.RowFilter
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.imageio.plugins.png.RowFilter
super_class: java.lang.Object
{
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // com.sun.imageio.plugins.png.RowFilter this
0: .line 28
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.sun.imageio.plugins.png.RowFilter this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/imageio/plugins/png/RowFilter;
private static final int abs(int);
descriptor: (I)I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 // int x
0: .line 31
iload 0 /* x */
ifge 1
iload 0 /* x */
ineg
goto 2
StackMap locals:
StackMap stack:
1: iload 0 /* x */
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 // int x
LocalVariableTable:
Start End Slot Name Signature
0 3 0 x I
MethodParameters:
Name Flags
x
protected static int subFilter(byte[], byte[], int, int);
descriptor: ([B[BII)I
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=3, locals=9, args_size=4
start local 0 // byte[] currRow
start local 1 // byte[] subFilteredRow
start local 2 // int bytesPerPixel
start local 3 // int bytesPerRow
0: .line 39
iconst_0
istore 4 /* badness */
start local 4 // int badness
1: .line 40
iload 2 /* bytesPerPixel */
istore 5 /* i */
start local 5 // int i
2: goto 9
3: .line 41
StackMap locals: int int
StackMap stack:
aload 0 /* currRow */
iload 5 /* i */
baload
sipush 255
iand
istore 6 /* curr */
start local 6 // int curr
4: .line 42
aload 0 /* currRow */
iload 5 /* i */
iload 2 /* bytesPerPixel */
isub
baload
sipush 255
iand
istore 7 /* left */
start local 7 // int left
5: .line 43
iload 6 /* curr */
iload 7 /* left */
isub
istore 8 /* difference */
start local 8 // int difference
6: .line 44
aload 1 /* subFilteredRow */
iload 5 /* i */
iload 8 /* difference */
i2b
bastore
7: .line 46
iload 4 /* badness */
iload 8 /* difference */
invokestatic com.sun.imageio.plugins.png.RowFilter.abs:(I)I
iadd
istore 4 /* badness */
end local 8 // int difference
end local 7 // int left
end local 6 // int curr
8: .line 40
iinc 5 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 5 /* i */
iload 3 /* bytesPerRow */
iload 2 /* bytesPerPixel */
iadd
if_icmplt 3
end local 5 // int i
10: .line 49
iload 4 /* badness */
ireturn
end local 4 // int badness
end local 3 // int bytesPerRow
end local 2 // int bytesPerPixel
end local 1 // byte[] subFilteredRow
end local 0 // byte[] currRow
LocalVariableTable:
Start End Slot Name Signature
0 11 0 currRow [B
0 11 1 subFilteredRow [B
0 11 2 bytesPerPixel I
0 11 3 bytesPerRow I
1 11 4 badness I
2 10 5 i I
4 8 6 curr I
5 8 7 left I
6 8 8 difference I
MethodParameters:
Name Flags
currRow
subFilteredRow
bytesPerPixel
bytesPerRow
protected static int upFilter(byte[], byte[], byte[], int, int);
descriptor: ([B[B[BII)I
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=3, locals=10, args_size=5
start local 0 // byte[] currRow
start local 1 // byte[] prevRow
start local 2 // byte[] upFilteredRow
start local 3 // int bytesPerPixel
start local 4 // int bytesPerRow
0: .line 58
iconst_0
istore 5 /* badness */
start local 5 // int badness
1: .line 59
iload 3 /* bytesPerPixel */
istore 6 /* i */
start local 6 // int i
2: goto 9
3: .line 60
StackMap locals: int int
StackMap stack:
aload 0 /* currRow */
iload 6 /* i */
baload
sipush 255
iand
istore 7 /* curr */
start local 7 // int curr
4: .line 61
aload 1 /* prevRow */
iload 6 /* i */
baload
sipush 255
iand
istore 8 /* up */
start local 8 // int up
5: .line 62
iload 7 /* curr */
iload 8 /* up */
isub
istore 9 /* difference */
start local 9 // int difference
6: .line 63
aload 2 /* upFilteredRow */
iload 6 /* i */
iload 9 /* difference */
i2b
bastore
7: .line 65
iload 5 /* badness */
iload 9 /* difference */
invokestatic com.sun.imageio.plugins.png.RowFilter.abs:(I)I
iadd
istore 5 /* badness */
end local 9 // int difference
end local 8 // int up
end local 7 // int curr
8: .line 59
iinc 6 /* i */ 1
StackMap locals:
StackMap stack:
9: iload 6 /* i */
iload 4 /* bytesPerRow */
iload 3 /* bytesPerPixel */
iadd
if_icmplt 3
end local 6 // int i
10: .line 68
iload 5 /* badness */
ireturn
end local 5 // int badness
end local 4 // int bytesPerRow
end local 3 // int bytesPerPixel
end local 2 // byte[] upFilteredRow
end local 1 // byte[] prevRow
end local 0 // byte[] currRow
LocalVariableTable:
Start End Slot Name Signature
0 11 0 currRow [B
0 11 1 prevRow [B
0 11 2 upFilteredRow [B
0 11 3 bytesPerPixel I
0 11 4 bytesPerRow I
1 11 5 badness I
2 10 6 i I
4 8 7 curr I
5 8 8 up I
6 8 9 difference I
MethodParameters:
Name Flags
currRow
prevRow
upFilteredRow
bytesPerPixel
bytesPerRow
protected final int paethPredictor(int, int, int);
descriptor: (III)I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=2, locals=8, args_size=4
start local 0 // com.sun.imageio.plugins.png.RowFilter this
start local 1 // int a
start local 2 // int b
start local 3 // int c
0: .line 72
iload 1 /* a */
iload 2 /* b */
iadd
iload 3 /* c */
isub
istore 4 /* p */
start local 4 // int p
1: .line 73
iload 4 /* p */
iload 1 /* a */
isub
invokestatic com.sun.imageio.plugins.png.RowFilter.abs:(I)I
istore 5 /* pa */
start local 5 // int pa
2: .line 74
iload 4 /* p */
iload 2 /* b */
isub
invokestatic com.sun.imageio.plugins.png.RowFilter.abs:(I)I
istore 6 /* pb */
start local 6 // int pb
3: .line 75
iload 4 /* p */
iload 3 /* c */
isub
invokestatic com.sun.imageio.plugins.png.RowFilter.abs:(I)I
istore 7 /* pc */
start local 7 // int pc
4: .line 77
iload 5 /* pa */
iload 6 /* pb */
if_icmpgt 6
iload 5 /* pa */
iload 7 /* pc */
if_icmpgt 6
5: .line 78
iload 1 /* a */
ireturn
6: .line 79
StackMap locals: com.sun.imageio.plugins.png.RowFilter int int int int int int int
StackMap stack:
iload 6 /* pb */
iload 7 /* pc */
if_icmpgt 8
7: .line 80
iload 2 /* b */
ireturn
8: .line 82
StackMap locals:
StackMap stack:
iload 3 /* c */
ireturn
end local 7 // int pc
end local 6 // int pb
end local 5 // int pa
end local 4 // int p
end local 3 // int c
end local 2 // int b
end local 1 // int a
end local 0 // com.sun.imageio.plugins.png.RowFilter this
LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/imageio/plugins/png/RowFilter;
0 9 1 a I
0 9 2 b I
0 9 3 c I
1 9 4 p I
2 9 5 pa I
3 9 6 pb I
4 9 7 pc I
MethodParameters:
Name Flags
a
b
c
public int filterRow(int, byte[], byte[], byte[][], int, int);
descriptor: (I[B[B[[BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=17, args_size=7
start local 0 // com.sun.imageio.plugins.png.RowFilter this
start local 1 // int colorType
start local 2 // byte[] currRow
start local 3 // byte[] prevRow
start local 4 // byte[][] scratchRows
start local 5 // int bytesPerRow
start local 6 // int bytesPerPixel
0: .line 94
iload 1 /* colorType */
iconst_3
if_icmpeq 6
1: .line 95
aload 2 /* currRow */
iload 6 /* bytesPerPixel */
2: .line 96
aload 4 /* scratchRows */
iconst_0
aaload
iload 6 /* bytesPerPixel */
3: .line 97
iload 5 /* bytesPerRow */
4: .line 95
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: .line 98
iconst_0
ireturn
6: .line 101
StackMap locals:
StackMap stack:
iconst_5
newarray 10
astore 7 /* filterBadness */
start local 7 // int[] filterBadness
7: .line 102
iconst_0
istore 8 /* i */
start local 8 // int i
8: goto 11
9: .line 103
StackMap locals: int[] int
StackMap stack:
aload 7 /* filterBadness */
iload 8 /* i */
ldc 2147483647
iastore
10: .line 102
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
11: iload 8 /* i */
iconst_5
if_icmplt 9
end local 8 // int i
12: .line 107
iconst_0
istore 8 /* badness */
start local 8 // int badness
13: .line 109
iload 6 /* bytesPerPixel */
istore 9 /* i */
start local 9 // int i
14: goto 18
15: .line 110
StackMap locals: int
StackMap stack:
aload 2 /* currRow */
iload 9 /* i */
baload
sipush 255
iand
istore 10 /* curr */
start local 10 // int curr
16: .line 111
iload 8 /* badness */
iload 10 /* curr */
iadd
istore 8 /* badness */
end local 10 // int curr
17: .line 109
iinc 9 /* i */ 1
StackMap locals:
StackMap stack:
18: iload 9 /* i */
iload 5 /* bytesPerRow */
iload 6 /* bytesPerPixel */
iadd
if_icmplt 15
end local 9 // int i
19: .line 114
aload 7 /* filterBadness */
iconst_0
iload 8 /* badness */
iastore
end local 8 // int badness
20: .line 118
aload 4 /* scratchRows */
iconst_1
aaload
astore 8 /* subFilteredRow */
start local 8 // byte[] subFilteredRow
21: .line 119
aload 2 /* currRow */
22: .line 120
aload 8 /* subFilteredRow */
23: .line 121
iload 6 /* bytesPerPixel */
24: .line 122
iload 5 /* bytesPerRow */
25: .line 119
invokestatic com.sun.imageio.plugins.png.RowFilter.subFilter:([B[BII)I
istore 9 /* badness */
start local 9 // int badness
26: .line 124
aload 7 /* filterBadness */
iconst_1
iload 9 /* badness */
iastore
end local 9 // int badness
end local 8 // byte[] subFilteredRow
27: .line 128
aload 4 /* scratchRows */
iconst_2
aaload
astore 8 /* upFilteredRow */
start local 8 // byte[] upFilteredRow
28: .line 129
aload 2 /* currRow */
29: .line 130
aload 3 /* prevRow */
30: .line 131
aload 8 /* upFilteredRow */
31: .line 132
iload 6 /* bytesPerPixel */
32: .line 133
iload 5 /* bytesPerRow */
33: .line 129
invokestatic com.sun.imageio.plugins.png.RowFilter.upFilter:([B[B[BII)I
istore 9 /* badness */
start local 9 // int badness
34: .line 135
aload 7 /* filterBadness */
iconst_2
iload 9 /* badness */
iastore
end local 9 // int badness
end local 8 // byte[] upFilteredRow
35: .line 139
aload 4 /* scratchRows */
iconst_3
aaload
astore 8 /* averageFilteredRow */
start local 8 // byte[] averageFilteredRow
36: .line 140
iconst_0
istore 9 /* badness */
start local 9 // int badness
37: .line 142
iload 6 /* bytesPerPixel */
istore 10 /* i */
start local 10 // int i
38: goto 46
39: .line 143
StackMap locals: com.sun.imageio.plugins.png.RowFilter int byte[] byte[] byte[][] int int int[] byte[] int int
StackMap stack:
aload 2 /* currRow */
iload 10 /* i */
baload
sipush 255
iand
istore 11 /* curr */
start local 11 // int curr
40: .line 144
aload 2 /* currRow */
iload 10 /* i */
iload 6 /* bytesPerPixel */
isub
baload
sipush 255
iand
istore 12 /* left */
start local 12 // int left
41: .line 145
aload 3 /* prevRow */
iload 10 /* i */
baload
sipush 255
iand
istore 13 /* up */
start local 13 // int up
42: .line 146
iload 11 /* curr */
iload 12 /* left */
iload 13 /* up */
iadd
iconst_2
idiv
isub
istore 14 /* difference */
start local 14 // int difference
43: .line 147
aload 8 /* averageFilteredRow */
iload 10 /* i */
iload 14 /* difference */
i2b
bastore
44: .line 149
iload 9 /* badness */
iload 14 /* difference */
invokestatic com.sun.imageio.plugins.png.RowFilter.abs:(I)I
iadd
istore 9 /* badness */
end local 14 // int difference
end local 13 // int up
end local 12 // int left
end local 11 // int curr
45: .line 142
iinc 10 /* i */ 1
StackMap locals:
StackMap stack:
46: iload 10 /* i */
iload 5 /* bytesPerRow */
iload 6 /* bytesPerPixel */
iadd
if_icmplt 39
end local 10 // int i
47: .line 152
aload 7 /* filterBadness */
iconst_3
iload 9 /* badness */
iastore
end local 9 // int badness
end local 8 // byte[] averageFilteredRow
48: .line 156
aload 4 /* scratchRows */
iconst_4
aaload
astore 8 /* paethFilteredRow */
start local 8 // byte[] paethFilteredRow
49: .line 157
iconst_0
istore 9 /* badness */
start local 9 // int badness
50: .line 159
iload 6 /* bytesPerPixel */
istore 10 /* i */
start local 10 // int i
51: goto 61
52: .line 160
StackMap locals:
StackMap stack:
aload 2 /* currRow */
iload 10 /* i */
baload
sipush 255
iand
istore 11 /* curr */
start local 11 // int curr
53: .line 161
aload 2 /* currRow */
iload 10 /* i */
iload 6 /* bytesPerPixel */
isub
baload
sipush 255
iand
istore 12 /* left */
start local 12 // int left
54: .line 162
aload 3 /* prevRow */
iload 10 /* i */
baload
sipush 255
iand
istore 13 /* up */
start local 13 // int up
55: .line 163
aload 3 /* prevRow */
iload 10 /* i */
iload 6 /* bytesPerPixel */
isub
baload
sipush 255
iand
istore 14 /* upleft */
start local 14 // int upleft
56: .line 164
aload 0 /* this */
iload 12 /* left */
iload 13 /* up */
iload 14 /* upleft */
invokevirtual com.sun.imageio.plugins.png.RowFilter.paethPredictor:(III)I
istore 15 /* predictor */
start local 15 // int predictor
57: .line 165
iload 11 /* curr */
iload 15 /* predictor */
isub
istore 16 /* difference */
start local 16 // int difference
58: .line 166
aload 8 /* paethFilteredRow */
iload 10 /* i */
iload 16 /* difference */
i2b
bastore
59: .line 168
iload 9 /* badness */
iload 16 /* difference */
invokestatic com.sun.imageio.plugins.png.RowFilter.abs:(I)I
iadd
istore 9 /* badness */
end local 16 // int difference
end local 15 // int predictor
end local 14 // int upleft
end local 13 // int up
end local 12 // int left
end local 11 // int curr
60: .line 159
iinc 10 /* i */ 1
StackMap locals:
StackMap stack:
61: iload 10 /* i */
iload 5 /* bytesPerRow */
iload 6 /* bytesPerPixel */
iadd
if_icmplt 52
end local 10 // int i
62: .line 171
aload 7 /* filterBadness */
iconst_4
iload 9 /* badness */
iastore
end local 9 // int badness
end local 8 // byte[] paethFilteredRow
63: .line 174
aload 7 /* filterBadness */
iconst_0
iaload
istore 8 /* minBadness */
start local 8 // int minBadness
64: .line 175
iconst_0
istore 9 /* filterType */
start local 9 // int filterType
65: .line 177
iconst_1
istore 10 /* i */
start local 10 // int i
66: goto 71
67: .line 178
StackMap locals: com.sun.imageio.plugins.png.RowFilter int byte[] byte[] byte[][] int int int[] int int int
StackMap stack:
aload 7 /* filterBadness */
iload 10 /* i */
iaload
iload 8 /* minBadness */
if_icmpge 70
68: .line 179
aload 7 /* filterBadness */
iload 10 /* i */
iaload
istore 8 /* minBadness */
69: .line 180
iload 10 /* i */
istore 9 /* filterType */
70: .line 177
StackMap locals:
StackMap stack:
iinc 10 /* i */ 1
StackMap locals:
StackMap stack:
71: iload 10 /* i */
iconst_5
if_icmplt 67
end local 10 // int i
72: .line 184
iload 9 /* filterType */
ifne 77
73: .line 185
aload 2 /* currRow */
iload 6 /* bytesPerPixel */
74: .line 186
aload 4 /* scratchRows */
iconst_0
aaload
iload 6 /* bytesPerPixel */
75: .line 187
iload 5 /* bytesPerRow */
76: .line 185
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
77: .line 190
StackMap locals:
StackMap stack:
iload 9 /* filterType */
ireturn
end local 9 // int filterType
end local 8 // int minBadness
end local 7 // int[] filterBadness
end local 6 // int bytesPerPixel
end local 5 // int bytesPerRow
end local 4 // byte[][] scratchRows
end local 3 // byte[] prevRow
end local 2 // byte[] currRow
end local 1 // int colorType
end local 0 // com.sun.imageio.plugins.png.RowFilter this
LocalVariableTable:
Start End Slot Name Signature
0 78 0 this Lcom/sun/imageio/plugins/png/RowFilter;
0 78 1 colorType I
0 78 2 currRow [B
0 78 3 prevRow [B
0 78 4 scratchRows [[B
0 78 5 bytesPerRow I
0 78 6 bytesPerPixel I
7 78 7 filterBadness [I
8 12 8 i I
13 20 8 badness I
14 19 9 i I
16 17 10 curr I
21 27 8 subFilteredRow [B
26 27 9 badness I
28 35 8 upFilteredRow [B
34 35 9 badness I
36 48 8 averageFilteredRow [B
37 48 9 badness I
38 47 10 i I
40 45 11 curr I
41 45 12 left I
42 45 13 up I
43 45 14 difference I
49 63 8 paethFilteredRow [B
50 63 9 badness I
51 62 10 i I
53 60 11 curr I
54 60 12 left I
55 60 13 up I
56 60 14 upleft I
57 60 15 predictor I
58 60 16 difference I
64 78 8 minBadness I
65 78 9 filterType I
66 72 10 i I
MethodParameters:
Name Flags
colorType
currRow
prevRow
scratchRows
bytesPerRow
bytesPerPixel
}
SourceFile: "RowFilter.java"