public abstract class sun.awt.GlobalCursorManager
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: sun.awt.GlobalCursorManager
super_class: java.lang.Object
{
private final sun.awt.GlobalCursorManager$NativeUpdater nativeUpdater;
descriptor: Lsun/awt/GlobalCursorManager$NativeUpdater;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long lastUpdateMillis;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private final java.lang.Object lastUpdateLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void updateCursorImmediately();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield sun.awt.GlobalCursorManager.nativeUpdater:Lsun/awt/GlobalCursorManager$NativeUpdater;
dup
astore 1
monitorenter
1: aload 0
getfield sun.awt.GlobalCursorManager.nativeUpdater:Lsun/awt/GlobalCursorManager$NativeUpdater;
iconst_0
putfield sun.awt.GlobalCursorManager$NativeUpdater.pending:Z
2: aload 1
monitorexit
3: goto 6
StackMap locals: sun.awt.GlobalCursorManager sun.awt.GlobalCursorManager$NativeUpdater
StackMap stack: java.lang.Throwable
4: aload 1
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual sun.awt.GlobalCursorManager._updateCursor:(Z)V
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/awt/GlobalCursorManager;
Exception table:
from to target type
1 3 4 any
4 5 4 any
public void updateCursorImmediately(java.awt.event.InputEvent);
descriptor: (Ljava/awt/event/InputEvent;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.awt.GlobalCursorManager.lastUpdateLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 1
invokevirtual java.awt.event.InputEvent.getWhen:()J
aload 0
getfield sun.awt.GlobalCursorManager.lastUpdateMillis:J
lcmp
iflt 2
iconst_1
goto 3
StackMap locals: sun.awt.GlobalCursorManager java.awt.event.InputEvent top java.lang.Object
StackMap stack:
2: iconst_0
StackMap locals:
StackMap stack: int
3: istore 2
start local 2 4: aload 3
monitorexit
5: goto 8
end local 2 StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 3
monitorexit
7: athrow
start local 2 8: StackMap locals: sun.awt.GlobalCursorManager java.awt.event.InputEvent int
StackMap stack:
iload 2
ifeq 10
9: aload 0
iconst_1
invokevirtual sun.awt.GlobalCursorManager._updateCursor:(Z)V
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lsun/awt/GlobalCursorManager;
0 11 1 e Ljava/awt/event/InputEvent;
4 6 2 shouldUpdate Z
8 11 2 shouldUpdate Z
Exception table:
from to target type
1 5 6 any
6 7 6 any
MethodParameters:
Name Flags
e
public void updateCursorLater(java.awt.Component);
descriptor: (Ljava/awt/Component;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.awt.GlobalCursorManager.nativeUpdater:Lsun/awt/GlobalCursorManager$NativeUpdater;
aload 1
new java.awt.event.InvocationEvent
dup
1: invokestatic java.awt.Toolkit.getDefaultToolkit:()Ljava/awt/Toolkit;
aload 0
getfield sun.awt.GlobalCursorManager.nativeUpdater:Lsun/awt/GlobalCursorManager$NativeUpdater;
invokespecial java.awt.event.InvocationEvent.<init>:(Ljava/lang/Object;Ljava/lang/Runnable;)V
2: invokevirtual sun.awt.GlobalCursorManager$NativeUpdater.postIfNotPending:(Ljava/awt/Component;Ljava/awt/event/InvocationEvent;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/awt/GlobalCursorManager;
0 4 1 heavy Ljava/awt/Component;
MethodParameters:
Name Flags
heavy
protected void <init>();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new sun.awt.GlobalCursorManager$NativeUpdater
dup
aload 0
invokespecial sun.awt.GlobalCursorManager$NativeUpdater.<init>:(Lsun/awt/GlobalCursorManager;)V
putfield sun.awt.GlobalCursorManager.nativeUpdater:Lsun/awt/GlobalCursorManager$NativeUpdater;
2: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield sun.awt.GlobalCursorManager.lastUpdateLock:Ljava/lang/Object;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/awt/GlobalCursorManager;
protected abstract void setCursor(java.awt.Component, java.awt.Cursor, boolean);
descriptor: (Ljava/awt/Component;Ljava/awt/Cursor;Z)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
comp
cursor
useCache
protected abstract void getCursorPos(java.awt.Point);
descriptor: (Ljava/awt/Point;)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
p
protected abstract java.awt.Point getLocationOnScreen(java.awt.Component);
descriptor: (Ljava/awt/Component;)Ljava/awt/Point;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
com
protected abstract java.awt.Component findHeavyweightUnderCursor(boolean);
descriptor: (Z)Ljava/awt/Component;
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
useCache
private void _updateCursor(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.awt.GlobalCursorManager.lastUpdateLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokestatic java.lang.System.currentTimeMillis:()J
putfield sun.awt.GlobalCursorManager.lastUpdateMillis:J
2: aload 2
monitorexit
3: goto 6
StackMap locals: sun.awt.GlobalCursorManager int java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
aconst_null
astore 2
start local 2 7: aconst_null
astore 3
start local 3 8: aload 0
iload 1
invokevirtual sun.awt.GlobalCursorManager.findHeavyweightUnderCursor:(Z)Ljava/awt/Component;
astore 4
start local 4 9: aload 4
ifnonnull 12
10: aload 0
invokevirtual sun.awt.GlobalCursorManager.updateCursorOutOfJava:()V
11: return
12: StackMap locals: java.awt.Point java.awt.Point java.awt.Component
StackMap stack:
aload 4
instanceof java.awt.Window
ifeq 15
13: invokestatic sun.awt.AWTAccessor.getComponentAccessor:()Lsun/awt/AWTAccessor$ComponentAccessor;
aload 4
invokeinterface sun.awt.AWTAccessor$ComponentAccessor.getLocation:(Ljava/awt/Component;)Ljava/awt/Point;
astore 3
14: goto 17
StackMap locals:
StackMap stack:
15: aload 4
instanceof java.awt.Container
ifeq 17
16: aload 0
aload 4
invokevirtual sun.awt.GlobalCursorManager.getLocationOnScreen:(Ljava/awt/Component;)Ljava/awt/Point;
astore 3
17: StackMap locals:
StackMap stack:
aload 3
ifnull 27
18: new java.awt.Point
dup
invokespecial java.awt.Point.<init>:()V
astore 2
19: aload 0
aload 2
invokevirtual sun.awt.GlobalCursorManager.getCursorPos:(Ljava/awt/Point;)V
20: invokestatic sun.awt.AWTAccessor.getContainerAccessor:()Lsun/awt/AWTAccessor$ContainerAccessor;
21: aload 4
checkcast java.awt.Container
22: aload 2
getfield java.awt.Point.x:I
aload 3
getfield java.awt.Point.x:I
isub
aload 2
getfield java.awt.Point.y:I
aload 3
getfield java.awt.Point.y:I
isub
iconst_0
23: invokeinterface sun.awt.AWTAccessor$ContainerAccessor.findComponentAt:(Ljava/awt/Container;IIZ)Ljava/awt/Component;
24: astore 5
start local 5 25: aload 5
ifnull 27
26: aload 5
astore 4
end local 5 27: StackMap locals:
StackMap stack:
aload 0
aload 4
invokestatic sun.awt.AWTAccessor.getComponentAccessor:()Lsun/awt/AWTAccessor$ComponentAccessor;
aload 4
invokeinterface sun.awt.AWTAccessor$ComponentAccessor.getCursor:(Ljava/awt/Component;)Ljava/awt/Cursor;
iload 1
invokevirtual sun.awt.GlobalCursorManager.setCursor:(Ljava/awt/Component;Ljava/awt/Cursor;Z)V
28: goto 30
end local 4 StackMap locals: sun.awt.GlobalCursorManager int java.awt.Point java.awt.Point
StackMap stack: java.awt.IllegalComponentStateException
29: pop
30: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Lsun/awt/GlobalCursorManager;
0 31 1 useCache Z
7 31 2 queryPos Ljava/awt/Point;
8 31 3 p Ljava/awt/Point;
9 29 4 comp Ljava/awt/Component;
25 27 5 c Ljava/awt/Component;
Exception table:
from to target type
1 3 4 any
4 5 4 any
8 11 29 Class java.awt.IllegalComponentStateException
12 28 29 Class java.awt.IllegalComponentStateException
MethodParameters:
Name Flags
useCache
protected void updateCursorOutOfJava();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/awt/GlobalCursorManager;
}
SourceFile: "GlobalCursorManager.java"
NestMembers:
sun.awt.GlobalCursorManager$NativeUpdater
InnerClasses:
public abstract ComponentAccessor = sun.awt.AWTAccessor$ComponentAccessor of sun.awt.AWTAccessor
public abstract ContainerAccessor = sun.awt.AWTAccessor$ContainerAccessor of sun.awt.AWTAccessor
NativeUpdater = sun.awt.GlobalCursorManager$NativeUpdater of sun.awt.GlobalCursorManager