public class sun.awt.X11.XCustomCursor extends sun.awt.X11CustomCursor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.awt.X11.XCustomCursor
super_class: sun.awt.X11CustomCursor
{
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.X11.XCustomCursor 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.X11CustomCursor.<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.X11.XCustomCursor this
LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/awt/X11/XCustomCursor;
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
static java.awt.Dimension getBestCursorSize(int, int);
descriptor: (II)Ljava/awt/Dimension;
flags: (0x0008) ACC_STATIC
Code:
stack=10, locals=8, args_size=2
start local 0 // int preferredWidth
start local 1 // int preferredHeight
0: .line 58
invokestatic sun.awt.X11.XToolkit.awtLock:()V
1: .line 60
invokestatic sun.awt.X11.XToolkit.getDisplay:()J
lstore 3 /* display */
start local 3 // long display
2: .line 61
lload 3 /* display */
3: .line 62
lload 3 /* display */
invokestatic sun.awt.X11.XlibWrapper.DefaultScreen:(J)J
4: .line 61
invokestatic sun.awt.X11.XlibWrapper.RootWindow:(JJ)J
lstore 5 /* root_window */
start local 5 // long root_window
5: .line 64
lload 3 /* display */
lload 5 /* root_window */
iload 0 /* preferredWidth */
invokestatic java.lang.Math.abs:(I)I
iload 1 /* preferredHeight */
invokestatic java.lang.Math.abs:(I)I
getstatic sun.awt.X11.XlibWrapper.larg1:J
getstatic sun.awt.X11.XlibWrapper.larg2:J
invokestatic sun.awt.X11.XlibWrapper.XQueryBestCursor:(JJIIJJ)Z
pop
6: .line 65
new java.awt.Dimension
dup
getstatic sun.awt.X11.XlibWrapper.unsafe:Ljdk/internal/misc/Unsafe;
getstatic sun.awt.X11.XlibWrapper.larg1:J
invokevirtual jdk.internal.misc.Unsafe.getInt:(J)I
getstatic sun.awt.X11.XlibWrapper.unsafe:Ljdk/internal/misc/Unsafe;
getstatic sun.awt.X11.XlibWrapper.larg2:J
invokevirtual jdk.internal.misc.Unsafe.getInt:(J)I
invokespecial java.awt.Dimension.<init>:(II)V
astore 2 /* d */
end local 5 // long root_window
end local 3 // long display
start local 2 // java.awt.Dimension d
7: .line 66
goto 11
end local 2 // java.awt.Dimension d
8: .line 67
StackMap locals:
StackMap stack: java.lang.Throwable
astore 7
9: .line 68
invokestatic sun.awt.X11.XToolkit.awtUnlock:()V
10: .line 69
aload 7
athrow
start local 2 // java.awt.Dimension d
11: .line 68
StackMap locals: java.awt.Dimension
StackMap stack:
invokestatic sun.awt.X11.XToolkit.awtUnlock:()V
12: .line 70
aload 2 /* d */
areturn
end local 2 // java.awt.Dimension d
end local 1 // int preferredHeight
end local 0 // int preferredWidth
LocalVariableTable:
Start End Slot Name Signature
0 13 0 preferredWidth I
0 13 1 preferredHeight I
7 8 2 d Ljava/awt/Dimension;
11 13 2 d Ljava/awt/Dimension;
2 7 3 display J
5 7 5 root_window J
Exception table:
from to target type
1 8 8 any
MethodParameters:
Name Flags
preferredWidth
preferredHeight
protected void createCursor(byte[], byte[], int, int, int, int, int, int);
descriptor: ([B[BIIIIII)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=12, locals=28, args_size=9
start local 0 // sun.awt.X11.XCustomCursor this
start local 1 // byte[] xorMask
start local 2 // byte[] andMask
start local 3 // int width
start local 4 // int height
start local 5 // int fcolor
start local 6 // int bcolor
start local 7 // int xHotSpot
start local 8 // int yHotSpot
0: .line 78
invokestatic sun.awt.X11.XToolkit.awtLock:()V
1: .line 80
invokestatic sun.awt.X11.XToolkit.getDisplay:()J
lstore 9 /* display */
start local 9 // long display
2: .line 81
lload 9 /* display */
3: .line 82
lload 9 /* display */
invokestatic sun.awt.X11.XlibWrapper.DefaultScreen:(J)J
4: .line 81
invokestatic sun.awt.X11.XlibWrapper.RootWindow:(JJ)J
lstore 11 /* root_window */
start local 11 // long root_window
5: .line 84
invokestatic sun.awt.X11.XToolkit.getDefaultXColormap:()J
lstore 13 /* colormap */
start local 13 // long colormap
6: .line 85
new sun.awt.X11.XColor
dup
invokespecial sun.awt.X11.XColor.<init>:()V
astore 15 /* fore_color */
start local 15 // sun.awt.X11.XColor fore_color
7: .line 87
aload 15 /* fore_color */
bipush 7
invokevirtual sun.awt.X11.XColor.set_flags:(B)V
8: .line 88
aload 15 /* fore_color */
iload 5 /* fcolor */
bipush 16
ishr
sipush 255
iand
bipush 8
ishl
i2s
invokevirtual sun.awt.X11.XColor.set_red:(S)V
9: .line 89
aload 15 /* fore_color */
iload 5 /* fcolor */
bipush 8
ishr
sipush 255
iand
bipush 8
ishl
i2s
invokevirtual sun.awt.X11.XColor.set_green:(S)V
10: .line 90
aload 15 /* fore_color */
iload 5 /* fcolor */
iconst_0
ishr
sipush 255
iand
bipush 8
ishl
i2s
invokevirtual sun.awt.X11.XColor.set_blue:(S)V
11: .line 92
lload 9 /* display */
lload 13 /* colormap */
aload 15 /* fore_color */
getfield sun.awt.X11.XColor.pData:J
invokestatic sun.awt.X11.XlibWrapper.XAllocColor:(JJJ)Z
pop
12: .line 95
new sun.awt.X11.XColor
dup
invokespecial sun.awt.X11.XColor.<init>:()V
astore 16 /* back_color */
start local 16 // sun.awt.X11.XColor back_color
13: .line 96
aload 16 /* back_color */
bipush 7
invokevirtual sun.awt.X11.XColor.set_flags:(B)V
14: .line 98
aload 16 /* back_color */
iload 6 /* bcolor */
bipush 16
ishr
sipush 255
iand
bipush 8
ishl
i2s
invokevirtual sun.awt.X11.XColor.set_red:(S)V
15: .line 99
aload 16 /* back_color */
iload 6 /* bcolor */
bipush 8
ishr
sipush 255
iand
bipush 8
ishl
i2s
invokevirtual sun.awt.X11.XColor.set_green:(S)V
16: .line 100
aload 16 /* back_color */
iload 6 /* bcolor */
iconst_0
ishr
sipush 255
iand
bipush 8
ishl
i2s
invokevirtual sun.awt.X11.XColor.set_blue:(S)V
17: .line 102
lload 9 /* display */
lload 13 /* colormap */
aload 16 /* back_color */
getfield sun.awt.X11.XColor.pData:J
invokestatic sun.awt.X11.XlibWrapper.XAllocColor:(JJJ)Z
pop
18: .line 105
aload 1 /* xorMask */
invokestatic sun.awt.X11.Native.toData:([B)J
lstore 17 /* nativeXorMask */
start local 17 // long nativeXorMask
19: .line 106
lload 9 /* display */
lload 11 /* root_window */
lload 17 /* nativeXorMask */
iload 3 /* width */
iload 4 /* height */
invokestatic sun.awt.X11.XlibWrapper.XCreateBitmapFromData:(JJJII)J
lstore 19 /* source */
start local 19 // long source
20: .line 108
aload 2 /* andMask */
invokestatic sun.awt.X11.Native.toData:([B)J
lstore 21 /* nativeAndMask */
start local 21 // long nativeAndMask
21: .line 109
lload 9 /* display */
lload 11 /* root_window */
lload 21 /* nativeAndMask */
iload 3 /* width */
iload 4 /* height */
invokestatic sun.awt.X11.XlibWrapper.XCreateBitmapFromData:(JJJII)J
lstore 23 /* mask */
start local 23 // long mask
22: .line 111
lload 9 /* display */
lload 19 /* source */
lload 23 /* mask */
aload 15 /* fore_color */
getfield sun.awt.X11.XColor.pData:J
aload 16 /* back_color */
getfield sun.awt.X11.XColor.pData:J
iload 7 /* xHotSpot */
iload 8 /* yHotSpot */
invokestatic sun.awt.X11.XlibWrapper.XCreatePixmapCursor:(JJJJJII)J
lstore 25 /* cursor */
start local 25 // long cursor
23: .line 113
getstatic sun.awt.X11.XlibWrapper.unsafe:Ljdk/internal/misc/Unsafe;
lload 17 /* nativeXorMask */
invokevirtual jdk.internal.misc.Unsafe.freeMemory:(J)V
24: .line 114
getstatic sun.awt.X11.XlibWrapper.unsafe:Ljdk/internal/misc/Unsafe;
lload 21 /* nativeAndMask */
invokevirtual jdk.internal.misc.Unsafe.freeMemory:(J)V
25: .line 115
lload 9 /* display */
lload 19 /* source */
invokestatic sun.awt.X11.XlibWrapper.XFreePixmap:(JJ)V
26: .line 116
lload 9 /* display */
lload 23 /* mask */
invokestatic sun.awt.X11.XlibWrapper.XFreePixmap:(JJ)V
27: .line 117
aload 16 /* back_color */
invokevirtual sun.awt.X11.XColor.dispose:()V
28: .line 118
aload 15 /* fore_color */
invokevirtual sun.awt.X11.XColor.dispose:()V
29: .line 120
aload 0 /* this */
lload 25 /* cursor */
invokestatic sun.awt.X11.XGlobalCursorManager.setPData:(Ljava/awt/Cursor;J)V
end local 25 // long cursor
end local 23 // long mask
end local 21 // long nativeAndMask
end local 19 // long source
end local 17 // long nativeXorMask
end local 16 // sun.awt.X11.XColor back_color
end local 15 // sun.awt.X11.XColor fore_color
end local 13 // long colormap
end local 11 // long root_window
end local 9 // long display
30: .line 121
goto 34
31: .line 122
StackMap locals:
StackMap stack: java.lang.Throwable
astore 27
32: .line 123
invokestatic sun.awt.X11.XToolkit.awtUnlock:()V
33: .line 124
aload 27
athrow
34: .line 123
StackMap locals:
StackMap stack:
invokestatic sun.awt.X11.XToolkit.awtUnlock:()V
35: .line 126
return
end local 8 // int yHotSpot
end local 7 // int xHotSpot
end local 6 // int bcolor
end local 5 // int fcolor
end local 4 // int height
end local 3 // int width
end local 2 // byte[] andMask
end local 1 // byte[] xorMask
end local 0 // sun.awt.X11.XCustomCursor this
LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lsun/awt/X11/XCustomCursor;
0 36 1 xorMask [B
0 36 2 andMask [B
0 36 3 width I
0 36 4 height I
0 36 5 fcolor I
0 36 6 bcolor I
0 36 7 xHotSpot I
0 36 8 yHotSpot I
2 30 9 display J
5 30 11 root_window J
6 30 13 colormap J
7 30 15 fore_color Lsun/awt/X11/XColor;
13 30 16 back_color Lsun/awt/X11/XColor;
19 30 17 nativeXorMask J
20 30 19 source J
21 30 21 nativeAndMask J
22 30 23 mask J
23 30 25 cursor J
Exception table:
from to target type
1 31 31 any
MethodParameters:
Name Flags
xorMask
andMask
width
height
fcolor
bcolor
xHotSpot
yHotSpot
}
SourceFile: "XCustomCursor.java"