public abstract class sun.awt.CustomCursor extends java.awt.Cursor
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: sun.awt.CustomCursor
super_class: java.awt.Cursor
{
protected java.awt.Image image;
descriptor: Ljava/awt/Image;
flags: (0x0004) ACC_PROTECTED
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=10, locals=13, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 3
invokespecial java.awt.Cursor.<init>:(Ljava/lang/String;)V
1: aload 0
aload 1
putfield sun.awt.CustomCursor.image:Ljava/awt/Image;
2: invokestatic java.awt.Toolkit.getDefaultToolkit:()Ljava/awt/Toolkit;
astore 4
start local 4 3: new java.awt.Canvas
dup
invokespecial java.awt.Canvas.<init>:()V
astore 5
start local 5 4: new java.awt.MediaTracker
dup
aload 5
invokespecial java.awt.MediaTracker.<init>:(Ljava/awt/Component;)V
astore 6
start local 6 5: aload 6
aload 1
iconst_0
invokevirtual java.awt.MediaTracker.addImage:(Ljava/awt/Image;I)V
6: aload 6
invokevirtual java.awt.MediaTracker.waitForAll:()V
7: goto 9
StackMap locals: sun.awt.CustomCursor java.awt.Image java.awt.Point java.lang.String java.awt.Toolkit java.awt.Component java.awt.MediaTracker
StackMap stack: java.lang.InterruptedException
8: pop
9: StackMap locals:
StackMap stack:
aload 1
aload 5
invokevirtual java.awt.Image.getWidth:(Ljava/awt/image/ImageObserver;)I
istore 7
start local 7 10: aload 1
aload 5
invokevirtual java.awt.Image.getHeight:(Ljava/awt/image/ImageObserver;)I
istore 8
start local 8 11: aload 6
invokevirtual java.awt.MediaTracker.isErrorAny:()Z
ifne 12
iload 7
iflt 12
iload 8
ifge 13
12: StackMap locals: int int
StackMap stack:
aload 2
aload 2
iconst_0
dup_x1
putfield java.awt.Point.y:I
putfield java.awt.Point.x:I
13: StackMap locals:
StackMap stack:
aload 4
iload 7
iload 8
invokevirtual java.awt.Toolkit.getBestCursorSize:(II)Ljava/awt/Dimension;
astore 9
start local 9 14: aload 9
getfield java.awt.Dimension.width:I
iload 7
if_icmpne 15
aload 9
getfield java.awt.Dimension.height:I
iload 8
if_icmpeq 22
15: StackMap locals: java.awt.Dimension
StackMap stack:
aload 9
getfield java.awt.Dimension.width:I
ifeq 22
aload 9
getfield java.awt.Dimension.height:I
ifeq 22
16: aload 1
aload 9
getfield java.awt.Dimension.width:I
17: aload 9
getfield java.awt.Dimension.height:I
18: iconst_1
19: invokevirtual java.awt.Image.getScaledInstance:(III)Ljava/awt/Image;
astore 1
20: aload 9
getfield java.awt.Dimension.width:I
istore 7
21: aload 9
getfield java.awt.Dimension.height:I
istore 8
22: StackMap locals:
StackMap stack:
aload 2
getfield java.awt.Point.x:I
iload 7
if_icmpge 23
aload 2
getfield java.awt.Point.y:I
iload 8
if_icmpge 23
aload 2
getfield java.awt.Point.x:I
iflt 23
aload 2
getfield java.awt.Point.y:I
ifge 24
23: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
ldc "invalid hotSpot"
invokespecial java.lang.IndexOutOfBoundsException.<init>:(Ljava/lang/String;)V
athrow
24: StackMap locals:
StackMap stack:
iload 7
iload 8
imul
newarray 10
astore 10
start local 10 25: aload 1
invokevirtual java.awt.Image.getSource:()Ljava/awt/image/ImageProducer;
astore 11
start local 11 26: new java.awt.image.PixelGrabber
dup
aload 11
iconst_0
iconst_0
iload 7
iload 8
27: aload 10
iconst_0
iload 7
28: invokespecial java.awt.image.PixelGrabber.<init>:(Ljava/awt/image/ImageProducer;IIII[III)V
astore 12
start local 12 29: aload 12
invokevirtual java.awt.image.PixelGrabber.grabPixels:()Z
pop
30: goto 32
StackMap locals: sun.awt.CustomCursor java.awt.Image java.awt.Point java.lang.String java.awt.Toolkit java.awt.Component java.awt.MediaTracker int int java.awt.Dimension int[] java.awt.image.ImageProducer java.awt.image.PixelGrabber
StackMap stack: java.lang.InterruptedException
31: pop
32: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.awt.CustomCursor.image:Ljava/awt/Image;
aload 10
iload 7
iload 8
aload 2
getfield java.awt.Point.x:I
aload 2
getfield java.awt.Point.y:I
invokevirtual sun.awt.CustomCursor.createNativeCursor:(Ljava/awt/Image;[IIIII)V
33: return
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 34 0 this Lsun/awt/CustomCursor;
0 34 1 cursor Ljava/awt/Image;
0 34 2 hotSpot Ljava/awt/Point;
0 34 3 name Ljava/lang/String;
3 34 4 toolkit Ljava/awt/Toolkit;
4 34 5 c Ljava/awt/Component;
5 34 6 tracker Ljava/awt/MediaTracker;
10 34 7 width I
11 34 8 height I
14 34 9 nativeSize Ljava/awt/Dimension;
25 34 10 pixels [I
26 34 11 ip Ljava/awt/image/ImageProducer;
29 34 12 pg Ljava/awt/image/PixelGrabber;
Exception table:
from to target type
6 7 8 Class java.lang.InterruptedException
29 30 31 Class java.lang.InterruptedException
Exceptions:
throws java.lang.IndexOutOfBoundsException
MethodParameters:
Name Flags
cursor
hotSpot
name
protected abstract void createNativeCursor(java.awt.Image, int[], int, int, int, int);
descriptor: (Ljava/awt/Image;[IIIII)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
im
pixels
width
height
xHotSpot
yHotSpot
}
SourceFile: "CustomCursor.java"