public class sun.awt.image.GifImageDecoder extends sun.awt.image.ImageDecoder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.awt.image.GifImageDecoder
super_class: sun.awt.image.ImageDecoder
{
private static final boolean verbose;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int IMAGESEP;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 44
private static final int EXBLOCK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 33
private static final int EX_GRAPHICS_CONTROL;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 249
private static final int ;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 254
private static final int EX_APPLICATION;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 255
private static final int TERMINATOR;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 59
private static final int TRANSPARENCYMASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int INTERLACEMASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 64
private static final int COLORMAPMASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 128
int num_global_colors;
descriptor: I
flags: (0x0000)
byte[] global_colormap;
descriptor: [B
flags: (0x0000)
int trans_pixel;
descriptor: I
flags: (0x0000)
java.awt.image.IndexColorModel global_model;
descriptor: Ljava/awt/image/IndexColorModel;
flags: (0x0000)
java.util.Hashtable<java.lang.String, java.lang.Object> props;
descriptor: Ljava/util/Hashtable;
flags: (0x0000)
Signature: Ljava/util/Hashtable<Ljava/lang/String;Ljava/lang/Object;>;
byte[] saved_image;
descriptor: [B
flags: (0x0000)
java.awt.image.IndexColorModel saved_model;
descriptor: Ljava/awt/image/IndexColorModel;
flags: (0x0000)
int global_width;
descriptor: I
flags: (0x0000)
int global_height;
descriptor: I
flags: (0x0000)
int global_bgpixel;
descriptor: I
flags: (0x0000)
sun.awt.image.GifFrame curframe;
descriptor: Lsun/awt/image/GifFrame;
flags: (0x0000)
private static final int normalflags;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 30
private static final int interlaceflags;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 29
private short[] prefix;
descriptor: [S
flags: (0x0002) ACC_PRIVATE
private byte[] suffix;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
private byte[] outCode;
descriptor: [B
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=0, locals=0, args_size=0
0: invokestatic sun.awt.image.NativeLibLoader.loadLibraries:()V
1: invokestatic sun.awt.image.GifImageDecoder.initIDs:()V
2: return
LocalVariableTable:
Start End Slot Name Signature
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=3, 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
iconst_m1
putfield sun.awt.image.GifImageDecoder.trans_pixel:I
2: aload 0
new java.util.Hashtable
dup
invokespecial java.util.Hashtable.<init>:()V
putfield sun.awt.image.GifImageDecoder.props:Ljava/util/Hashtable;
3: aload 0
sipush 4096
newarray 9
putfield sun.awt.image.GifImageDecoder.prefix:[S
4: aload 0
sipush 4096
newarray 8
putfield sun.awt.image.GifImageDecoder.suffix:[B
5: aload 0
sipush 4097
newarray 8
putfield sun.awt.image.GifImageDecoder.outCode:[B
6: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/awt/image/GifImageDecoder;
0 7 1 src Lsun/awt/image/InputStreamImageSource;
0 7 2 is Ljava/io/InputStream;
MethodParameters:
Name Flags
src
is
private static void error(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new sun.awt.image.ImageFormatException
dup
aload 0
invokespecial sun.awt.image.ImageFormatException.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 s1 Ljava/lang/String;
Exceptions:
throws sun.awt.image.ImageFormatException
MethodParameters:
Name Flags
s1
private int readBytes(byte[], int, int);
descriptor: ([BII)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: goto 9
1: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.GifImageDecoder.input:Ljava/io/InputStream;
aload 1
iload 2
iload 3
invokevirtual java.io.InputStream.read:([BII)I
istore 4
start local 4 2: iload 4
ifge 4
3: goto 10
4: StackMap locals: int
StackMap stack:
iload 2
iload 4
iadd
istore 2
5: iload 3
iload 4
isub
istore 3
end local 4 6: goto 9
StackMap locals: sun.awt.image.GifImageDecoder byte[] int int
StackMap stack: java.io.IOException
7: pop
8: goto 10
9: StackMap locals:
StackMap stack:
iload 3
ifgt 1
10: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/awt/image/GifImageDecoder;
0 11 1 buf [B
0 11 2 off I
0 11 3 len I
2 6 4 n I
Exception table:
from to target type
1 3 7 Class java.io.IOException
4 6 7 Class java.io.IOException
MethodParameters:
Name Flags
buf
off
len
private static final int (byte[], int);
descriptor: ([BI)I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
baload
sipush 255
iand
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 buf [B
0 1 1 off I
MethodParameters:
Name Flags
buf
off
private static final int (byte[], int);
descriptor: ([BI)I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
baload
sipush 255
iand
aload 0
iload 1
iconst_1
iadd
baload
sipush 255
iand
bipush 8
ishl
ior
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 buf [B
0 1 1 off I
MethodParameters:
Name Flags
buf
off
public void produceImage();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=14, args_size=1
start local 0 0: aload 0
invokevirtual sun.awt.image.GifImageDecoder.readHeader:()V
1: iconst_0
istore 1
start local 1 2: iconst_0
istore 2
start local 2 3: iconst_m1
istore 3
start local 3 4: iconst_0
istore 4
start local 4 5: iconst_m1
istore 5
start local 5 6: iconst_0
istore 6
start local 6 7: iconst_0
istore 7
start local 7 8: goto 96
9: StackMap locals: sun.awt.image.GifImageDecoder int int int int int int int
StackMap stack:
aload 0
getfield sun.awt.image.GifImageDecoder.input:Ljava/io/InputStream;
invokevirtual java.io.InputStream.read:()I
dup
istore 8
start local 8 10: lookupswitch { // 4
-1: 78
33: 11
44: 62
59: 81
default: 78
}
11: StackMap locals: int
StackMap stack:
aload 0
getfield sun.awt.image.GifImageDecoder.input:Ljava/io/InputStream;
invokevirtual java.io.InputStream.read:()I
dup
istore 8
lookupswitch { // 4
-1: 60
249: 12
254: 29
255: 29
default: 29
}
12: StackMap locals:
StackMap stack:
bipush 6
newarray 8
astore 9
start local 9 13: aload 0
aload 9
iconst_0
bipush 6
invokevirtual sun.awt.image.GifImageDecoder.readBytes:([BII)I
ifeq 16
14: aload 0
invokevirtual sun.awt.image.GifImageDecoder.close:()V
15: return
16: StackMap locals: byte[]
StackMap stack:
aload 9
iconst_0
baload
iconst_4
if_icmpne 17
aload 9
iconst_5
baload
ifeq 19
17: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.awt.image.GifImageDecoder.close:()V
18: return
19: StackMap locals:
StackMap stack:
aload 9
iconst_2
invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
bipush 10
imul
istore 5
20: iload 5
ifle 23
iload 7
ifne 23
21: iconst_1
istore 7
22: invokestatic sun.awt.image.ImageFetcher.startingAnimation:()V
23: StackMap locals:
StackMap stack:
aload 9
iconst_1
baload
iconst_2
ishr
bipush 7
iand
istore 4
24: aload 9
iconst_1
baload
iconst_1
iand
ifeq 27
25: aload 0
aload 9
iconst_4
invokestatic sun.awt.image.GifImageDecoder.ExtractByte:([BI)I
putfield sun.awt.image.GifImageDecoder.trans_pixel:I
26: goto 96
27: StackMap locals:
StackMap stack:
aload 0
iconst_m1
putfield sun.awt.image.GifImageDecoder.trans_pixel:I
28: goto 96
end local 9 29: StackMap locals:
StackMap stack:
iconst_0
istore 9
start local 9 30: ldc ""
astore 10
start local 10 31: StackMap locals: int java.lang.String
StackMap stack:
aload 0
getfield sun.awt.image.GifImageDecoder.input:Ljava/io/InputStream;
invokevirtual java.io.InputStream.read:()I
istore 11
start local 11 32: iload 11
ifgt 34
33: goto 54
34: StackMap locals: int
StackMap stack:
iload 11
newarray 8
astore 12
start local 12 35: aload 0
aload 12
iconst_0
iload 11
invokevirtual sun.awt.image.GifImageDecoder.readBytes:([BII)I
ifeq 38
36: aload 0
invokevirtual sun.awt.image.GifImageDecoder.close:()V
37: return
38: StackMap locals: byte[]
StackMap stack:
iload 8
sipush 254
if_icmpne 41
39: new java.lang.StringBuilder
dup
aload 10
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
new java.lang.String
dup
aload 12
iconst_0
invokespecial java.lang.String.<init>:([BI)V
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 10
40: goto 31
StackMap locals:
StackMap stack:
41: iload 8
sipush 255
if_icmpne 31
42: iload 9
ifeq 51
43: iload 11
iconst_3
if_icmpne 50
aload 12
iconst_0
baload
iconst_1
if_icmpne 50
44: iload 6
ifeq 47
45: aload 12
iconst_1
invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
pop
46: goto 51
47: StackMap locals:
StackMap stack:
aload 12
iconst_1
invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
istore 3
48: iconst_1
istore 6
49: goto 51
50: StackMap locals:
StackMap stack:
iconst_0
istore 9
51: StackMap locals:
StackMap stack:
ldc "NETSCAPE2.0"
new java.lang.String
dup
aload 12
iconst_0
invokespecial java.lang.String.<init>:([BI)V
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 31
52: iconst_1
istore 9
end local 12 end local 11 53: goto 31
54: StackMap locals:
StackMap stack:
iload 8
sipush 254
if_icmpne 56
55: aload 0
getfield sun.awt.image.GifImageDecoder.props:Ljava/util/Hashtable;
ldc "comment"
aload 10
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
56: StackMap locals:
StackMap stack:
iload 9
ifeq 96
iload 7
ifne 96
57: iconst_1
istore 7
58: invokestatic sun.awt.image.ImageFetcher.startingAnimation:()V
59: goto 96
end local 10 end local 9 60: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.awt.image.GifImageDecoder.close:()V
61: return
62: StackMap locals:
StackMap stack:
iload 7
ifne 64
63: aload 0
getfield sun.awt.image.GifImageDecoder.input:Ljava/io/InputStream;
iconst_0
invokevirtual java.io.InputStream.mark:(I)V
64: StackMap locals:
StackMap stack:
aload 0
iload 1
ifne 65
iconst_1
goto 66
StackMap locals:
StackMap stack: sun.awt.image.GifImageDecoder
65: iconst_0
66: StackMap locals: sun.awt.image.GifImageDecoder int int int int int int int int
StackMap stack: sun.awt.image.GifImageDecoder int
iload 4
67: iload 5
68: invokevirtual sun.awt.image.GifImageDecoder.readImage:(ZII)Z
69: ifne 75
70: aload 0
invokevirtual sun.awt.image.GifImageDecoder.close:()V
71: return
72: StackMap locals:
StackMap stack: java.lang.Exception
astore 9
start local 9 73: aload 0
invokevirtual sun.awt.image.GifImageDecoder.close:()V
74: return
end local 9 75: StackMap locals:
StackMap stack:
iinc 2 1
76: iinc 1 1
77: goto 96
78: StackMap locals:
StackMap stack:
iload 2
ifne 81
79: aload 0
invokevirtual sun.awt.image.GifImageDecoder.close:()V
80: return
81: StackMap locals:
StackMap stack:
iload 3
ifeq 82
iload 3
iinc 3 -1
iflt 93
82: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
ifnull 85
83: aload 0
getfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
invokevirtual sun.awt.image.GifFrame.dispose:()Z
pop
84: aload 0
aconst_null
putfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
85: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.GifImageDecoder.input:Ljava/io/InputStream;
invokevirtual java.io.InputStream.reset:()V
86: aload 0
aconst_null
putfield sun.awt.image.GifImageDecoder.saved_image:[B
87: aload 0
aconst_null
putfield sun.awt.image.GifImageDecoder.saved_model:Ljava/awt/image/IndexColorModel;
88: iconst_0
istore 2
89: goto 96
90: StackMap locals:
StackMap stack: java.io.IOException
pop
91: aload 0
invokevirtual sun.awt.image.GifImageDecoder.close:()V
92: return
93: StackMap locals:
StackMap stack:
aload 0
iconst_3
iconst_1
invokevirtual sun.awt.image.GifImageDecoder.imageComplete:(IZ)I
pop
94: aload 0
invokevirtual sun.awt.image.GifImageDecoder.close:()V
95: return
end local 8 96: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.GifImageDecoder.aborted:Z
ifeq 9
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 97: goto 101
StackMap locals: sun.awt.image.GifImageDecoder
StackMap stack: java.lang.Throwable
98: astore 13
99: aload 0
invokevirtual sun.awt.image.GifImageDecoder.close:()V
100: aload 13
athrow
101: StackMap locals:
StackMap stack:
aload 0
invokevirtual sun.awt.image.GifImageDecoder.close:()V
102: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 103 0 this Lsun/awt/image/GifImageDecoder;
2 97 1 totalframes I
3 97 2 frameno I
4 97 3 nloops I
5 97 4 disposal_method I
6 97 5 delay I
7 97 6 loopsRead Z
8 97 7 isAnimation Z
10 96 8 code I
13 29 9 buf [B
30 60 9 loop_tag Z
31 60 10 comment Ljava/lang/String;
32 53 11 n I
35 53 12 buf [B
73 75 9 e Ljava/lang/Exception;
Exception table:
from to target type
64 70 72 Class java.lang.Exception
82 89 90 Class java.io.IOException
0 14 98 any
16 17 98 any
19 36 98 any
38 60 98 any
62 70 98 any
72 73 98 any
75 79 98 any
81 91 98 any
93 94 98 any
96 98 98 any
Exceptions:
throws java.io.IOException, sun.awt.image.ImageFormatException
private void ();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=3, args_size=1
start local 0 0: bipush 13
newarray 8
astore 1
start local 1 1: aload 0
aload 1
iconst_0
bipush 13
invokevirtual sun.awt.image.GifImageDecoder.readBytes:([BII)I
ifeq 3
2: new java.io.IOException
dup
invokespecial java.io.IOException.<init>:()V
athrow
3: StackMap locals: byte[]
StackMap stack:
aload 1
iconst_0
baload
bipush 71
if_icmpne 4
aload 1
iconst_1
baload
bipush 73
if_icmpne 4
aload 1
iconst_2
baload
bipush 70
if_icmpeq 5
4: StackMap locals:
StackMap stack:
ldc "not a GIF file."
invokestatic sun.awt.image.GifImageDecoder.error:(Ljava/lang/String;)V
5: StackMap locals:
StackMap stack:
aload 0
aload 1
bipush 6
invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
putfield sun.awt.image.GifImageDecoder.global_width:I
6: aload 0
aload 1
bipush 8
invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
putfield sun.awt.image.GifImageDecoder.global_height:I
7: aload 1
bipush 10
invokestatic sun.awt.image.GifImageDecoder.ExtractByte:([BI)I
istore 2
start local 2 8: iload 2
sipush 128
iand
ifne 15
9: aload 0
iconst_2
putfield sun.awt.image.GifImageDecoder.num_global_colors:I
10: aload 0
iconst_0
putfield sun.awt.image.GifImageDecoder.global_bgpixel:I
11: aload 0
bipush 6
newarray 8
putfield sun.awt.image.GifImageDecoder.global_colormap:[B
12: aload 0
getfield sun.awt.image.GifImageDecoder.global_colormap:[B
iconst_0
aload 0
getfield sun.awt.image.GifImageDecoder.global_colormap:[B
iconst_1
aload 0
getfield sun.awt.image.GifImageDecoder.global_colormap:[B
iconst_2
iconst_0
dup_x2
bastore
dup_x2
bastore
bastore
13: aload 0
getfield sun.awt.image.GifImageDecoder.global_colormap:[B
iconst_3
aload 0
getfield sun.awt.image.GifImageDecoder.global_colormap:[B
iconst_4
aload 0
getfield sun.awt.image.GifImageDecoder.global_colormap:[B
iconst_5
iconst_m1
dup_x2
bastore
dup_x2
bastore
bastore
14: goto 22
15: StackMap locals: int
StackMap stack:
aload 0
iconst_1
iload 2
bipush 7
iand
iconst_1
iadd
ishl
putfield sun.awt.image.GifImageDecoder.num_global_colors:I
16: aload 0
aload 1
bipush 11
invokestatic sun.awt.image.GifImageDecoder.ExtractByte:([BI)I
putfield sun.awt.image.GifImageDecoder.global_bgpixel:I
17: aload 1
bipush 12
baload
ifeq 19
18: aload 0
getfield sun.awt.image.GifImageDecoder.props:Ljava/util/Hashtable;
ldc "aspectratio"
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 1
bipush 12
invokestatic sun.awt.image.GifImageDecoder.ExtractByte:([BI)I
bipush 15
iadd
i2d
ldc 64.0
ddiv
invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.Hashtable.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
19: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.awt.image.GifImageDecoder.num_global_colors:I
iconst_3
imul
newarray 8
putfield sun.awt.image.GifImageDecoder.global_colormap:[B
20: aload 0
aload 0
getfield sun.awt.image.GifImageDecoder.global_colormap:[B
iconst_0
aload 0
getfield sun.awt.image.GifImageDecoder.num_global_colors:I
iconst_3
imul
invokevirtual sun.awt.image.GifImageDecoder.readBytes:([BII)I
ifeq 22
21: new java.io.IOException
dup
invokespecial java.io.IOException.<init>:()V
athrow
22: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.GifImageDecoder.input:Ljava/io/InputStream;
ldc 2147483647
invokevirtual java.io.InputStream.mark:(I)V
23: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lsun/awt/image/GifImageDecoder;
1 24 1 buf [B
8 24 2 ch I
Exceptions:
throws java.io.IOException, sun.awt.image.ImageFormatException
private static native void initIDs();
descriptor: ()V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
private native boolean parseImage(int, int, int, int, boolean, int, byte[], byte[], java.awt.image.IndexColorModel);
descriptor: (IIIIZI[B[BLjava/awt/image/IndexColorModel;)Z
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
x
y
width
height
interlace
initCodeSize
block
rasline
model
private int sendPixels(int, int, int, int, byte[], java.awt.image.ColorModel);
descriptor: (IIII[BLjava/awt/image/ColorModel;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=16, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: iload 2
ifge 3
1: iload 4
iload 2
iadd
istore 4
2: iconst_0
istore 2
3: StackMap locals:
StackMap stack:
iload 2
iload 4
iadd
aload 0
getfield sun.awt.image.GifImageDecoder.global_height:I
if_icmple 5
4: aload 0
getfield sun.awt.image.GifImageDecoder.global_height:I
iload 2
isub
istore 4
5: StackMap locals:
StackMap stack:
iload 4
ifgt 7
6: iconst_1
ireturn
7: StackMap locals:
StackMap stack:
iload 1
ifge 12
8: iload 1
ineg
istore 7
start local 7 9: iload 3
iload 1
iadd
istore 3
10: iconst_0
istore 9
start local 9 11: goto 14
end local 9 end local 7 12: StackMap locals:
StackMap stack:
iconst_0
istore 7
start local 7 13: iload 1
istore 9
start local 9 14: StackMap locals: sun.awt.image.GifImageDecoder int int int int byte[] java.awt.image.ColorModel int top int
StackMap stack:
iload 9
iload 3
iadd
aload 0
getfield sun.awt.image.GifImageDecoder.global_width:I
if_icmple 16
15: aload 0
getfield sun.awt.image.GifImageDecoder.global_width:I
iload 9
isub
istore 3
16: StackMap locals:
StackMap stack:
iload 3
ifgt 18
17: iconst_1
ireturn
18: StackMap locals:
StackMap stack:
iload 7
iload 3
iadd
istore 8
start local 8 19: iload 2
aload 0
getfield sun.awt.image.GifImageDecoder.global_width:I
imul
iload 9
iadd
istore 10
start local 10 20: aload 0
getfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
getfield sun.awt.image.GifFrame.disposal_method:I
iconst_1
if_icmpne 21
iconst_1
goto 22
StackMap locals: sun.awt.image.GifImageDecoder int int int int byte[] java.awt.image.ColorModel int int int int
StackMap stack:
21: iconst_0
StackMap locals:
StackMap stack: int
22: istore 11
start local 11 23: aload 0
getfield sun.awt.image.GifImageDecoder.trans_pixel:I
iflt 65
aload 0
getfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
getfield sun.awt.image.GifFrame.initialframe:Z
ifne 65
24: aload 0
getfield sun.awt.image.GifImageDecoder.saved_image:[B
ifnull 36
aload 6
aload 0
getfield sun.awt.image.GifImageDecoder.saved_model:Ljava/awt/image/IndexColorModel;
invokevirtual java.awt.image.ColorModel.equals:(Ljava/lang/Object;)Z
ifeq 36
25: iload 7
istore 12
start local 12 26: goto 34
27: StackMap locals: int int
StackMap stack:
aload 5
iload 12
baload
istore 13
start local 13 28: iload 13
sipush 255
iand
aload 0
getfield sun.awt.image.GifImageDecoder.trans_pixel:I
if_icmpne 31
29: aload 5
iload 12
aload 0
getfield sun.awt.image.GifImageDecoder.saved_image:[B
iload 10
baload
bastore
30: goto 33
StackMap locals: int
StackMap stack:
31: iload 11
ifeq 33
32: aload 0
getfield sun.awt.image.GifImageDecoder.saved_image:[B
iload 10
iload 13
bastore
end local 13 33: StackMap locals:
StackMap stack:
iinc 12 1
iinc 10 1
StackMap locals:
StackMap stack:
34: iload 12
iload 8
if_icmplt 27
end local 12 35: goto 67
36: StackMap locals:
StackMap stack:
iconst_m1
istore 12
start local 12 37: iconst_1
istore 13
start local 13 38: iload 7
istore 14
start local 14 39: goto 57
40: StackMap locals: int int int
StackMap stack:
aload 5
iload 14
baload
istore 15
start local 15 41: iload 15
sipush 255
iand
aload 0
getfield sun.awt.image.GifImageDecoder.trans_pixel:I
if_icmpne 52
42: iload 12
iflt 50
43: aload 0
iload 1
iload 12
iadd
iload 2
44: iload 14
iload 12
isub
iconst_1
45: aload 6
aload 5
46: iload 12
iconst_0
47: invokevirtual sun.awt.image.GifImageDecoder.setPixels:(IIIILjava/awt/image/ColorModel;[BII)I
istore 13
48: iload 13
ifne 50
49: goto 58
50: StackMap locals: int
StackMap stack:
iconst_m1
istore 12
51: goto 56
52: StackMap locals:
StackMap stack:
iload 12
ifge 54
53: iload 14
istore 12
54: StackMap locals:
StackMap stack:
iload 11
ifeq 56
55: aload 0
getfield sun.awt.image.GifImageDecoder.saved_image:[B
iload 10
iload 15
bastore
end local 15 56: StackMap locals:
StackMap stack:
iinc 14 1
iinc 10 1
StackMap locals:
StackMap stack:
57: iload 14
iload 8
if_icmplt 40
end local 14 58: StackMap locals:
StackMap stack:
iload 12
iflt 64
59: aload 0
iload 1
iload 12
iadd
iload 2
60: iload 8
iload 12
isub
iconst_1
61: aload 6
aload 5
62: iload 12
iconst_0
63: invokevirtual sun.awt.image.GifImageDecoder.setPixels:(IIIILjava/awt/image/ColorModel;[BII)I
istore 13
64: StackMap locals:
StackMap stack:
iload 13
ireturn
end local 13 end local 12 65: StackMap locals:
StackMap stack:
iload 11
ifeq 67
66: aload 5
iload 7
aload 0
getfield sun.awt.image.GifImageDecoder.saved_image:[B
iload 10
iload 3
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
67: StackMap locals:
StackMap stack:
aload 0
iload 9
iload 2
iload 3
iload 4
aload 6
68: aload 5
iload 7
iconst_0
69: invokevirtual sun.awt.image.GifImageDecoder.setPixels:(IIIILjava/awt/image/ColorModel;[BII)I
istore 12
start local 12 70: iload 12
ireturn
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 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 71 0 this Lsun/awt/image/GifImageDecoder;
0 71 1 x I
0 71 2 y I
0 71 3 width I
0 71 4 height I
0 71 5 rasline [B
0 71 6 model Ljava/awt/image/ColorModel;
9 12 7 rasbeg I
13 71 7 rasbeg I
19 71 8 rasend I
11 12 9 x2 I
14 71 9 x2 I
20 71 10 off I
23 71 11 save Z
26 35 12 i I
28 33 13 pixel B
37 65 12 runstart I
38 65 13 count I
39 58 14 i I
41 56 15 pixel B
70 71 12 count I
MethodParameters:
Name Flags
x
y
width
height
rasline
model
private boolean readImage(boolean, int, int);
descriptor: (ZII)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=12, locals=17, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
ifnull 3
aload 0
getfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
invokevirtual sun.awt.image.GifFrame.dispose:()Z
ifne 3
1: aload 0
invokevirtual sun.awt.image.GifImageDecoder.abort:()V
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
lconst_0
lstore 4
start local 4 4: sipush 259
newarray 8
astore 6
start local 6 5: aload 0
aload 6
iconst_0
bipush 10
invokevirtual sun.awt.image.GifImageDecoder.readBytes:([BII)I
ifeq 7
6: new java.io.IOException
dup
invokespecial java.io.IOException.<init>:()V
athrow
7: StackMap locals: long byte[]
StackMap stack:
aload 6
iconst_0
invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
istore 7
start local 7 8: aload 6
iconst_2
invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
istore 8
start local 8 9: aload 6
iconst_4
invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
istore 9
start local 9 10: aload 6
bipush 6
invokestatic sun.awt.image.GifImageDecoder.ExtractWord:([BI)I
istore 10
start local 10 11: iload 9
ifne 13
aload 0
getfield sun.awt.image.GifImageDecoder.global_width:I
ifeq 13
12: aload 0
getfield sun.awt.image.GifImageDecoder.global_width:I
iload 7
isub
istore 9
13: StackMap locals: sun.awt.image.GifImageDecoder int int int long byte[] int int int int
StackMap stack:
iload 10
ifne 15
aload 0
getfield sun.awt.image.GifImageDecoder.global_height:I
ifeq 15
14: aload 0
getfield sun.awt.image.GifImageDecoder.global_height:I
iload 8
isub
istore 10
15: StackMap locals:
StackMap stack:
aload 6
bipush 8
baload
bipush 64
iand
ifeq 16
iconst_1
goto 17
StackMap locals:
StackMap stack:
16: iconst_0
StackMap locals:
StackMap stack: int
17: istore 11
start local 11 18: aload 0
getfield sun.awt.image.GifImageDecoder.global_model:Ljava/awt/image/IndexColorModel;
astore 12
start local 12 19: aload 6
bipush 8
baload
sipush 128
iand
ifeq 34
20: iconst_1
aload 6
bipush 8
baload
bipush 7
iand
iconst_1
iadd
ishl
istore 13
start local 13 21: iload 13
iconst_3
imul
newarray 8
astore 14
start local 14 22: aload 14
iconst_0
aload 6
bipush 9
baload
bastore
23: aload 0
aload 14
iconst_1
iload 13
iconst_3
imul
iconst_1
isub
invokevirtual sun.awt.image.GifImageDecoder.readBytes:([BII)I
ifeq 25
24: new java.io.IOException
dup
invokespecial java.io.IOException.<init>:()V
athrow
25: StackMap locals: sun.awt.image.GifImageDecoder int int int long byte[] int int int int int java.awt.image.IndexColorModel int byte[]
StackMap stack:
aload 0
aload 6
bipush 9
iconst_1
invokevirtual sun.awt.image.GifImageDecoder.readBytes:([BII)I
ifeq 27
26: new java.io.IOException
dup
invokespecial java.io.IOException.<init>:()V
athrow
27: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.GifImageDecoder.trans_pixel:I
iload 13
if_icmplt 30
28: aload 0
getfield sun.awt.image.GifImageDecoder.trans_pixel:I
iconst_1
iadd
istore 13
29: aload 14
iload 13
invokestatic sun.awt.image.GifImageDecoder.grow_colormap:([BI)[B
astore 14
30: StackMap locals:
StackMap stack:
new java.awt.image.IndexColorModel
dup
bipush 8
iload 13
aload 14
31: iconst_0
iconst_0
aload 0
getfield sun.awt.image.GifImageDecoder.trans_pixel:I
32: invokespecial java.awt.image.IndexColorModel.<init>:(II[BIZI)V
astore 12
end local 14 end local 13 33: goto 43
StackMap locals:
StackMap stack:
34: aload 12
ifnull 36
35: aload 0
getfield sun.awt.image.GifImageDecoder.trans_pixel:I
aload 12
invokevirtual java.awt.image.IndexColorModel.getTransparentPixel:()I
if_icmpeq 43
36: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.GifImageDecoder.trans_pixel:I
aload 0
getfield sun.awt.image.GifImageDecoder.num_global_colors:I
if_icmplt 39
37: aload 0
aload 0
getfield sun.awt.image.GifImageDecoder.trans_pixel:I
iconst_1
iadd
putfield sun.awt.image.GifImageDecoder.num_global_colors:I
38: aload 0
aload 0
getfield sun.awt.image.GifImageDecoder.global_colormap:[B
aload 0
getfield sun.awt.image.GifImageDecoder.num_global_colors:I
invokestatic sun.awt.image.GifImageDecoder.grow_colormap:([BI)[B
putfield sun.awt.image.GifImageDecoder.global_colormap:[B
39: StackMap locals:
StackMap stack:
new java.awt.image.IndexColorModel
dup
bipush 8
aload 0
getfield sun.awt.image.GifImageDecoder.num_global_colors:I
aload 0
getfield sun.awt.image.GifImageDecoder.global_colormap:[B
40: iconst_0
iconst_0
aload 0
getfield sun.awt.image.GifImageDecoder.trans_pixel:I
41: invokespecial java.awt.image.IndexColorModel.<init>:(II[BIZI)V
astore 12
42: aload 0
aload 12
putfield sun.awt.image.GifImageDecoder.global_model:Ljava/awt/image/IndexColorModel;
43: StackMap locals:
StackMap stack:
iload 1
ifeq 50
44: aload 0
getfield sun.awt.image.GifImageDecoder.global_width:I
ifne 45
aload 0
iload 9
putfield sun.awt.image.GifImageDecoder.global_width:I
45: StackMap locals:
StackMap stack:
aload 0
getfield sun.awt.image.GifImageDecoder.global_height:I
ifne 46
aload 0
iload 10
putfield sun.awt.image.GifImageDecoder.global_height:I
46: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.awt.image.GifImageDecoder.global_width:I
aload 0
getfield sun.awt.image.GifImageDecoder.global_height:I
invokevirtual sun.awt.image.GifImageDecoder.setDimensions:(II)I
pop
47: aload 0
aload 0
getfield sun.awt.image.GifImageDecoder.props:Ljava/util/Hashtable;
invokevirtual sun.awt.image.GifImageDecoder.setProperties:(Ljava/util/Hashtable;)I
pop
48: aload 0
aload 12
invokevirtual sun.awt.image.GifImageDecoder.setColorModel:(Ljava/awt/image/ColorModel;)I
pop
49: aload 0
invokevirtual sun.awt.image.GifImageDecoder.headerComplete:()V
50: StackMap locals:
StackMap stack:
iload 2
iconst_1
if_icmpne 68
aload 0
getfield sun.awt.image.GifImageDecoder.saved_image:[B
ifnonnull 68
51: aload 0
aload 0
getfield sun.awt.image.GifImageDecoder.global_width:I
aload 0
getfield sun.awt.image.GifImageDecoder.global_height:I
imul
newarray 8
putfield sun.awt.image.GifImageDecoder.saved_image:[B
52: iload 10
aload 0
getfield sun.awt.image.GifImageDecoder.global_height:I
if_icmpge 68
aload 12
ifnull 68
53: aload 12
invokevirtual java.awt.image.IndexColorModel.getTransparentPixel:()I
i2b
istore 13
start local 13 54: iload 13
iflt 68
55: aload 0
getfield sun.awt.image.GifImageDecoder.global_width:I
newarray 8
astore 14
start local 14 56: iconst_0
istore 15
start local 15 57: goto 60
58: StackMap locals: int byte[] int
StackMap stack:
aload 14
iload 15
iload 13
bastore
59: iinc 15 1
StackMap locals:
StackMap stack:
60: iload 15
aload 0
getfield sun.awt.image.GifImageDecoder.global_width:I
if_icmplt 58
end local 15 61: aload 0
iconst_0
iconst_0
aload 0
getfield sun.awt.image.GifImageDecoder.global_width:I
iload 8
62: aload 12
aload 14
iconst_0
iconst_0
63: invokevirtual sun.awt.image.GifImageDecoder.setPixels:(IIIILjava/awt/image/ColorModel;[BII)I
pop
64: aload 0
iconst_0
iload 8
iload 10
iadd
aload 0
getfield sun.awt.image.GifImageDecoder.global_width:I
65: aload 0
getfield sun.awt.image.GifImageDecoder.global_height:I
iload 10
isub
iload 8
isub
aload 12
aload 14
66: iconst_0
iconst_0
67: invokevirtual sun.awt.image.GifImageDecoder.setPixels:(IIIILjava/awt/image/ColorModel;[BII)I
pop
end local 14 end local 13 68: StackMap locals:
StackMap stack:
iload 11
ifeq 69
bipush 29
goto 70
StackMap locals:
StackMap stack:
69: bipush 30
StackMap locals:
StackMap stack: int
70: istore 13
start local 13 71: aload 0
iload 13
invokevirtual sun.awt.image.GifImageDecoder.setHints:(I)I
pop
72: aload 0
73: new sun.awt.image.GifFrame
dup
aload 0
iload 2
iload 3
74: aload 0
getfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
ifnonnull 75
iconst_1
goto 76
StackMap locals: sun.awt.image.GifImageDecoder int int int long byte[] int int int int int java.awt.image.IndexColorModel int
StackMap stack: sun.awt.image.GifImageDecoder new 73 new 73 sun.awt.image.GifImageDecoder int int
75: iconst_0
StackMap locals: sun.awt.image.GifImageDecoder int int int long byte[] int int int int int java.awt.image.IndexColorModel int
StackMap stack: sun.awt.image.GifImageDecoder new 73 new 73 sun.awt.image.GifImageDecoder int int int
76: aload 12
77: iload 7
iload 8
iload 9
iload 10
invokespecial sun.awt.image.GifFrame.<init>:(Lsun/awt/image/GifImageDecoder;IIZLjava/awt/image/IndexColorModel;IIII)V
78: putfield sun.awt.image.GifImageDecoder.curframe:Lsun/awt/image/GifFrame;
79: iload 9
newarray 8
astore 14
start local 14 80: aload 6
bipush 9
invokestatic sun.awt.image.GifImageDecoder.ExtractByte:([BI)I
istore 15
start local 15 81: iload 15
bipush 12
if_icmplt 83
82: iconst_0
ireturn
83: StackMap locals: byte[] int
StackMap stack:
aload 0
iload 7
iload 8
iload 9
iload 10
84: iload 11
iload 15
85: aload 6
aload 14
aload 12
86: invokevirtual sun.awt.image.GifImageDecoder.parseImage:(IIIIZI[B[BLjava/awt/image/IndexColorModel;)Z
istore 16
start local 16 87: iload 16
ifne 89
88: aload 0
invokevirtual sun.awt.image.GifImageDecoder.abort:()V
89: StackMap locals: int
StackMap stack:
iload 16
ireturn
end local 16 end local 15 end local 14 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 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 90 0 this Lsun/awt/image/GifImageDecoder;
0 90 1 first Z
0 90 2 disposal_method I
0 90 3 delay I
4 90 4 tm J
5 90 6 block [B
8 90 7 x I
9 90 8 y I
10 90 9 width I
11 90 10 height I
18 90 11 interlace Z
19 90 12 model Ljava/awt/image/IndexColorModel;
21 33 13 num_local_colors I
22 33 14 local_colormap [B
54 68 13 tpix B
56 68 14 trans_rasline [B
57 61 15 i I
71 90 13 hints I
80 90 14 rasline [B
81 90 15 initCodeSize I
87 90 16 ret Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
first
disposal_method
delay
public static byte[] grow_colormap(byte[], int);
descriptor: ([BI)[B
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: iload 1
iconst_3
imul
newarray 8
astore 2
start local 2 1: aload 0
iconst_0
aload 2
iconst_0
aload 0
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 colormap [B
0 3 1 newlen I
1 3 2 newcm [B
MethodParameters:
Name Flags
colormap
newlen
}
SourceFile: "GifImageDecoder.java"