public abstract class sun.awt.X11CustomCursor extends sun.awt.CustomCursor
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: sun.awt.X11CustomCursor
super_class: sun.awt.CustomCursor
{
public void <init>(java.awt.Image, java.awt.Point, java.lang.String);
descriptor: (Ljava/awt/Image;Ljava/awt/Point;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 // sun.awt.X11CustomCursor this
start local 1 // java.awt.Image cursor
start local 2 // java.awt.Point hotSpot
start local 3 // java.lang.String name
0: .line 43
aload 0 /* this */
aload 1 /* cursor */
aload 2 /* hotSpot */
aload 3 /* name */
invokespecial sun.awt.CustomCursor.<init>:(Ljava/awt/Image;Ljava/awt/Point;Ljava/lang/String;)V
1: .line 44
return
end local 3 // java.lang.String name
end local 2 // java.awt.Point hotSpot
end local 1 // java.awt.Image cursor
end local 0 // sun.awt.X11CustomCursor this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/awt/X11CustomCursor;
0 2 1 cursor Ljava/awt/Image;
0 2 2 hotSpot Ljava/awt/Point;
0 2 3 name Ljava/lang/String;
Exceptions:
throws java.lang.IndexOutOfBoundsException
MethodParameters:
Name Flags
cursor
hotSpot
name
protected void createNativeCursor(java.awt.Image, int[], int, int, int, int);
descriptor: (Ljava/awt/Image;[IIIII)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=9, locals=35, args_size=7
start local 0 // sun.awt.X11CustomCursor this
start local 1 // java.awt.Image im
start local 2 // int[] pixels
start local 3 // int width
start local 4 // int height
start local 5 // int xHotSpot
start local 6 // int yHotSpot
0: .line 63
aload 2 /* pixels */
arraylength
newarray 10
astore 7 /* tmp */
start local 7 // int[] tmp
1: .line 64
iconst_0
istore 8 /* i */
start local 8 // int i
2: goto 8
3: .line 65
StackMap locals: int[] int
StackMap stack:
aload 2 /* pixels */
iload 8 /* i */
iaload
ldc -16777216
iand
ifne 6
4: .line 66
aload 7 /* tmp */
iload 8 /* i */
iconst_m1
iastore
5: .line 67
goto 7
6: .line 68
StackMap locals:
StackMap stack:
aload 7 /* tmp */
iload 8 /* i */
aload 2 /* pixels */
iload 8 /* i */
iaload
ldc 16777215
iand
iastore
7: .line 64
StackMap locals:
StackMap stack:
iinc 8 /* i */ 1
StackMap locals:
StackMap stack:
8: iload 8 /* i */
aload 2 /* pixels */
arraylength
if_icmplt 3
end local 8 // int i
9: .line 71
aload 7 /* tmp */
invokestatic java.util.Arrays.sort:([I)V
10: .line 73
iconst_0
istore 8 /* fc */
start local 8 // int fc
11: .line 74
ldc 16777215
istore 9 /* bc */
start local 9 // int bc
12: .line 75
aload 2 /* pixels */
arraylength
anewarray sun.awt.X11CustomCursor$1CCount
astore 10 /* cols */
start local 10 // sun.awt.X11CustomCursor$1CCount[] cols
13: .line 77
iconst_0
istore 11 /* is */
start local 11 // int is
14: .line 78
iconst_0
istore 12 /* numColors */
start local 12 // int numColors
15: .line 79
goto 20
16: .line 80
StackMap locals: sun.awt.X11CustomCursor java.awt.Image int[] int int int int int[] int int sun.awt.X11CustomCursor$1CCount[] int int
StackMap stack:
aload 7 /* tmp */
iload 11 /* is */
iaload
iconst_m1
if_icmpeq 19
17: .line 81
aload 10 /* cols */
iload 12 /* numColors */
iinc 12 /* numColors */ 1
new sun.awt.X11CustomCursor$1CCount
dup
aload 0 /* this */
aload 7 /* tmp */
iload 11 /* is */
iaload
iconst_1
invokespecial sun.awt.X11CustomCursor$1CCount.<init>:(Lsun/awt/X11CustomCursor;II)V
aastore
18: .line 82
goto 21
19: .line 84
StackMap locals:
StackMap stack:
iinc 11 /* is */ 1
20: .line 79
StackMap locals:
StackMap stack:
iload 11 /* is */
aload 2 /* pixels */
arraylength
if_icmplt 16
21: .line 87
StackMap locals:
StackMap stack:
iload 11 /* is */
iconst_1
iadd
istore 13 /* i */
start local 13 // int i
22: goto 28
23: .line 88
StackMap locals: int
StackMap stack:
aload 7 /* tmp */
iload 13 /* i */
iaload
aload 10 /* cols */
iload 12 /* numColors */
iconst_1
isub
aaload
getfield sun.awt.X11CustomCursor$1CCount.color:I
if_icmpeq 26
24: .line 89
aload 10 /* cols */
iload 12 /* numColors */
iinc 12 /* numColors */ 1
new sun.awt.X11CustomCursor$1CCount
dup
aload 0 /* this */
aload 7 /* tmp */
iload 13 /* i */
iaload
iconst_1
invokespecial sun.awt.X11CustomCursor$1CCount.<init>:(Lsun/awt/X11CustomCursor;II)V
aastore
25: .line 90
goto 27
26: .line 91
StackMap locals:
StackMap stack:
aload 10 /* cols */
iload 12 /* numColors */
iconst_1
isub
aaload
dup
getfield sun.awt.X11CustomCursor$1CCount.count:I
iconst_1
iadd
putfield sun.awt.X11CustomCursor$1CCount.count:I
27: .line 87
StackMap locals:
StackMap stack:
iinc 13 /* i */ 1
StackMap locals:
StackMap stack:
28: iload 13 /* i */
aload 2 /* pixels */
arraylength
if_icmplt 23
end local 13 // int i
29: .line 94
aload 10 /* cols */
iconst_0
iload 12 /* numColors */
invokestatic java.util.Arrays.sort:([Ljava/lang/Object;II)V
30: .line 96
iload 12 /* numColors */
ifle 31
aload 10 /* cols */
iconst_0
aaload
getfield sun.awt.X11CustomCursor$1CCount.color:I
istore 8 /* fc */
31: .line 97
StackMap locals:
StackMap stack:
iload 8 /* fc */
bipush 16
ishr
sipush 255
iand
istore 13 /* fcr */
start local 13 // int fcr
32: .line 98
iload 8 /* fc */
bipush 8
ishr
sipush 255
iand
istore 14 /* fcg */
start local 14 // int fcg
33: .line 99
iload 8 /* fc */
iconst_0
ishr
sipush 255
iand
istore 15 /* fcb */
start local 15 // int fcb
34: .line 101
iconst_0
istore 16 /* rdis */
start local 16 // int rdis
35: .line 102
iconst_0
istore 17 /* gdis */
start local 17 // int gdis
36: .line 103
iconst_0
istore 18 /* bdis */
start local 18 // int bdis
37: .line 104
iconst_1
istore 19 /* j */
start local 19 // int j
38: goto 46
39: .line 105
StackMap locals: sun.awt.X11CustomCursor java.awt.Image int[] int int int int int[] int int sun.awt.X11CustomCursor$1CCount[] int int int int int int int int int
StackMap stack:
aload 10 /* cols */
iload 19 /* j */
aaload
getfield sun.awt.X11CustomCursor$1CCount.color:I
bipush 16
ishr
sipush 255
iand
istore 20 /* rr */
start local 20 // int rr
40: .line 106
aload 10 /* cols */
iload 19 /* j */
aaload
getfield sun.awt.X11CustomCursor$1CCount.color:I
bipush 8
ishr
sipush 255
iand
istore 21 /* gg */
start local 21 // int gg
41: .line 107
aload 10 /* cols */
iload 19 /* j */
aaload
getfield sun.awt.X11CustomCursor$1CCount.color:I
iconst_0
ishr
sipush 255
iand
istore 22 /* bb */
start local 22 // int bb
42: .line 108
iload 16 /* rdis */
aload 10 /* cols */
iload 19 /* j */
aaload
getfield sun.awt.X11CustomCursor$1CCount.count:I
iload 20 /* rr */
imul
iadd
istore 16 /* rdis */
43: .line 109
iload 17 /* gdis */
aload 10 /* cols */
iload 19 /* j */
aaload
getfield sun.awt.X11CustomCursor$1CCount.count:I
iload 21 /* gg */
imul
iadd
istore 17 /* gdis */
44: .line 110
iload 18 /* bdis */
aload 10 /* cols */
iload 19 /* j */
aaload
getfield sun.awt.X11CustomCursor$1CCount.count:I
iload 22 /* bb */
imul
iadd
istore 18 /* bdis */
end local 22 // int bb
end local 21 // int gg
end local 20 // int rr
45: .line 104
iinc 19 /* j */ 1
StackMap locals:
StackMap stack:
46: iload 19 /* j */
iload 12 /* numColors */
if_icmplt 39
end local 19 // int j
47: .line 112
aload 2 /* pixels */
arraylength
iload 12 /* numColors */
ifle 48
aload 10 /* cols */
iconst_0
aaload
getfield sun.awt.X11CustomCursor$1CCount.count:I
goto 49
StackMap locals: sun.awt.X11CustomCursor java.awt.Image int[] int int int int int[] int int sun.awt.X11CustomCursor$1CCount[] int int int int int int int int
StackMap stack: int
48: iconst_0
StackMap locals: sun.awt.X11CustomCursor java.awt.Image int[] int int int int int[] int int sun.awt.X11CustomCursor$1CCount[] int int int int int int int int
StackMap stack: int int
49: isub
istore 19 /* rest */
start local 19 // int rest
50: .line 114
iload 19 /* rest */
ifle 54
51: .line 115
iload 16 /* rdis */
iload 19 /* rest */
idiv
iload 13 /* fcr */
isub
istore 16 /* rdis */
52: .line 116
iload 17 /* gdis */
iload 19 /* rest */
idiv
iload 14 /* fcg */
isub
istore 17 /* gdis */
53: .line 117
iload 18 /* bdis */
iload 19 /* rest */
idiv
iload 15 /* fcb */
isub
istore 18 /* bdis */
54: .line 119
StackMap locals: int
StackMap stack:
iload 16 /* rdis */
iload 16 /* rdis */
imul
iload 17 /* gdis */
iload 17 /* gdis */
imul
iadd
iload 18 /* bdis */
iload 18 /* bdis */
imul
iadd
iconst_2
idiv
istore 16 /* rdis */
55: .line 122
iconst_1
istore 20 /* j */
start local 20 // int j
56: goto 65
57: .line 123
StackMap locals: int
StackMap stack:
aload 10 /* cols */
iload 20 /* j */
aaload
getfield sun.awt.X11CustomCursor$1CCount.color:I
bipush 16
ishr
sipush 255
iand
istore 21 /* rr */
start local 21 // int rr
58: .line 124
aload 10 /* cols */
iload 20 /* j */
aaload
getfield sun.awt.X11CustomCursor$1CCount.color:I
bipush 8
ishr
sipush 255
iand
istore 22 /* gg */
start local 22 // int gg
59: .line 125
aload 10 /* cols */
iload 20 /* j */
aaload
getfield sun.awt.X11CustomCursor$1CCount.color:I
iconst_0
ishr
sipush 255
iand
istore 23 /* bb */
start local 23 // int bb
60: .line 127
iload 21 /* rr */
iload 13 /* fcr */
isub
iload 21 /* rr */
iload 13 /* fcr */
isub
imul
iload 22 /* gg */
iload 14 /* fcg */
isub
iload 22 /* gg */
iload 14 /* fcg */
isub
imul
iadd
iload 23 /* bb */
iload 15 /* fcb */
isub
iload 23 /* bb */
iload 15 /* fcb */
isub
imul
iadd
61: .line 128
iload 16 /* rdis */
if_icmplt 64
62: .line 129
aload 10 /* cols */
iload 20 /* j */
aaload
getfield sun.awt.X11CustomCursor$1CCount.color:I
istore 9 /* bc */
63: .line 130
goto 66
end local 23 // int bb
end local 22 // int gg
end local 21 // int rr
64: .line 122
StackMap locals:
StackMap stack:
iinc 20 /* j */ 1
StackMap locals:
StackMap stack:
65: iload 20 /* j */
iload 12 /* numColors */
if_icmplt 57
end local 20 // int j
66: .line 133
StackMap locals:
StackMap stack:
iload 9 /* bc */
bipush 16
ishr
sipush 255
iand
istore 20 /* bcr */
start local 20 // int bcr
67: .line 134
iload 9 /* bc */
bipush 8
ishr
sipush 255
iand
istore 21 /* bcg */
start local 21 // int bcg
68: .line 135
iload 9 /* bc */
iconst_0
ishr
sipush 255
iand
istore 22 /* bcb */
start local 22 // int bcb
69: .line 144
iload 3 /* width */
bipush 7
iadd
bipush 8
idiv
istore 23 /* wNByte */
start local 23 // int wNByte
70: .line 145
iload 23 /* wNByte */
iload 4 /* height */
imul
istore 24 /* tNByte */
start local 24 // int tNByte
71: .line 146
iload 24 /* tNByte */
newarray 8
astore 25 /* xorMask */
start local 25 // byte[] xorMask
72: .line 147
iload 24 /* tNByte */
newarray 8
astore 26 /* andMask */
start local 26 // byte[] andMask
73: .line 149
iconst_0
istore 27 /* i */
start local 27 // int i
74: goto 91
75: .line 150
StackMap locals: sun.awt.X11CustomCursor java.awt.Image int[] int int int int int[] int int sun.awt.X11CustomCursor$1CCount[] int int int int int int int int int int int int int int byte[] byte[] int
StackMap stack:
iconst_1
iload 27 /* i */
bipush 8
irem
ishl
istore 28 /* omask */
start local 28 // int omask
76: .line 151
iconst_0
istore 29 /* j */
start local 29 // int j
77: goto 89
78: .line 152
StackMap locals: int int
StackMap stack:
iload 29 /* j */
iload 3 /* width */
imul
iload 27 /* i */
iadd
istore 30 /* ip */
start local 30 // int ip
79: .line 153
iload 29 /* j */
iload 23 /* wNByte */
imul
iload 27 /* i */
bipush 8
idiv
iadd
istore 31 /* ibyte */
start local 31 // int ibyte
80: .line 155
aload 2 /* pixels */
iload 30 /* ip */
iaload
ldc -16777216
iand
ifeq 82
81: .line 156
aload 26 /* andMask */
iload 31 /* ibyte */
dup2
baload
iload 28 /* omask */
ior
i2b
bastore
82: .line 159
StackMap locals: int int
StackMap stack:
aload 2 /* pixels */
iload 30 /* ip */
iaload
bipush 16
ishr
sipush 255
iand
istore 32 /* pr */
start local 32 // int pr
83: .line 160
aload 2 /* pixels */
iload 30 /* ip */
iaload
bipush 8
ishr
sipush 255
iand
istore 33 /* pg */
start local 33 // int pg
84: .line 161
aload 2 /* pixels */
iload 30 /* ip */
iaload
iconst_0
ishr
sipush 255
iand
istore 34 /* pb */
start local 34 // int pb
85: .line 162
iload 32 /* pr */
iload 13 /* fcr */
isub
iload 32 /* pr */
iload 13 /* fcr */
isub
imul
iload 33 /* pg */
iload 14 /* fcg */
isub
iload 33 /* pg */
iload 14 /* fcg */
isub
imul
iadd
iload 34 /* pb */
iload 15 /* fcb */
isub
iload 34 /* pb */
iload 15 /* fcb */
isub
imul
iadd
86: .line 163
iload 32 /* pr */
iload 20 /* bcr */
isub
iload 32 /* pr */
iload 20 /* bcr */
isub
imul
iload 33 /* pg */
iload 21 /* bcg */
isub
iload 33 /* pg */
iload 21 /* bcg */
isub
imul
iadd
iload 34 /* pb */
iload 22 /* bcb */
isub
iload 34 /* pb */
iload 22 /* bcb */
isub
imul
iadd
if_icmpgt 88
87: .line 165
aload 25 /* xorMask */
iload 31 /* ibyte */
dup2
baload
iload 28 /* omask */
ior
i2b
bastore
end local 34 // int pb
end local 33 // int pg
end local 32 // int pr
end local 31 // int ibyte
end local 30 // int ip
88: .line 151
StackMap locals:
StackMap stack:
iinc 29 /* j */ 1
StackMap locals:
StackMap stack:
89: iload 29 /* j */
iload 4 /* height */
if_icmplt 78
end local 29 // int j
end local 28 // int omask
90: .line 149
iinc 27 /* i */ 1
StackMap locals:
StackMap stack:
91: iload 27 /* i */
iload 3 /* width */
if_icmplt 75
end local 27 // int i
92: .line 170
aload 0 /* this */
aload 25 /* xorMask */
aload 26 /* andMask */
bipush 8
iload 23 /* wNByte */
imul
iload 4 /* height */
iload 8 /* fc */
iload 9 /* bc */
iload 5 /* xHotSpot */
iload 6 /* yHotSpot */
invokevirtual sun.awt.X11CustomCursor.createCursor:([B[BIIIIII)V
93: .line 171
return
end local 26 // byte[] andMask
end local 25 // byte[] xorMask
end local 24 // int tNByte
end local 23 // int wNByte
end local 22 // int bcb
end local 21 // int bcg
end local 20 // int bcr
end local 19 // int rest
end local 18 // int bdis
end local 17 // int gdis
end local 16 // int rdis
end local 15 // int fcb
end local 14 // int fcg
end local 13 // int fcr
end local 12 // int numColors
end local 11 // int is
end local 10 // sun.awt.X11CustomCursor$1CCount[] cols
end local 9 // int bc
end local 8 // int fc
end local 7 // int[] tmp
end local 6 // int yHotSpot
end local 5 // int xHotSpot
end local 4 // int height
end local 3 // int width
end local 2 // int[] pixels
end local 1 // java.awt.Image im
end local 0 // sun.awt.X11CustomCursor this
LocalVariableTable:
Start End Slot Name Signature
0 94 0 this Lsun/awt/X11CustomCursor;
0 94 1 im Ljava/awt/Image;
0 94 2 pixels [I
0 94 3 width I
0 94 4 height I
0 94 5 xHotSpot I
0 94 6 yHotSpot I
1 94 7 tmp [I
2 9 8 i I
11 94 8 fc I
12 94 9 bc I
13 94 10 cols [Lsun/awt/X11CustomCursor$1CCount;
14 94 11 is I
15 94 12 numColors I
22 29 13 i I
32 94 13 fcr I
33 94 14 fcg I
34 94 15 fcb I
35 94 16 rdis I
36 94 17 gdis I
37 94 18 bdis I
38 47 19 j I
40 45 20 rr I
41 45 21 gg I
42 45 22 bb I
50 94 19 rest I
56 66 20 j I
58 64 21 rr I
59 64 22 gg I
60 64 23 bb I
67 94 20 bcr I
68 94 21 bcg I
69 94 22 bcb I
70 94 23 wNByte I
71 94 24 tNByte I
72 94 25 xorMask [B
73 94 26 andMask [B
74 92 27 i I
76 90 28 omask I
77 90 29 j I
79 88 30 ip I
80 88 31 ibyte I
83 88 32 pr I
84 88 33 pg I
85 88 34 pb I
MethodParameters:
Name Flags
im
pixels
width
height
xHotSpot
yHotSpot
protected abstract void createCursor(byte[], byte[], int, int, int, int, int, int);
descriptor: ([B[BIIIIII)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
xorMask
andMask
width
height
fcolor
bcolor
xHotSpot
yHotSpot
}
SourceFile: "X11CustomCursor.java"
NestMembers:
sun.awt.X11CustomCursor$1CCount
InnerClasses:
CCount = sun.awt.X11CustomCursor$1CCount