final class com.sun.scenario.animation.AbstractMasterTimer$MainLoop implements com.sun.scenario.DelayedRunnable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.sun.scenario.animation.AbstractMasterTimer$MainLoop
super_class: java.lang.Object
{
private boolean inactive;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private long nextPulseTime;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long lastPulseDuration;
descriptor: J
flags: (0x0002) ACC_PRIVATE
final com.sun.scenario.animation.AbstractMasterTimer this$0;
descriptor: Lcom/sun/scenario/animation/AbstractMasterTimer;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(com.sun.scenario.animation.AbstractMasterTimer);
descriptor: (Lcom/sun/scenario/animation/AbstractMasterTimer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_1
putfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.inactive:Z
2: aload 0
aload 1
invokevirtual com.sun.scenario.animation.AbstractMasterTimer.nanos:()J
putfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.nextPulseTime:J
3: aload 0
ldc -2147483648
putfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.lastPulseDuration:J
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/scenario/animation/AbstractMasterTimer$MainLoop;
MethodParameters:
Name Flags
this$0 final
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
getfield com.sun.scenario.animation.AbstractMasterTimer.paused:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
invokevirtual com.sun.scenario.animation.AbstractMasterTimer.nanos:()J
lstore 1
start local 1 3: aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.nextPulseTime:J
lload 1
lsub
ldc 1000000
ldiv
invokevirtual com.sun.scenario.animation.AbstractMasterTimer.recordStart:(J)V
4: aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
lload 1
invokevirtual com.sun.scenario.animation.AbstractMasterTimer.timePulseImpl:(J)V
5: aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
invokevirtual com.sun.scenario.animation.AbstractMasterTimer.recordEnd:()V
6: aload 0
lload 1
invokevirtual com.sun.scenario.animation.AbstractMasterTimer$MainLoop.updateNextPulseTime:(J)V
7: aload 0
invokevirtual com.sun.scenario.animation.AbstractMasterTimer$MainLoop.updateAnimationRunnable:()V
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/scenario/animation/AbstractMasterTimer$MainLoop;
3 9 1 now J
public long getDelay();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
invokevirtual com.sun.scenario.animation.AbstractMasterTimer.nanos:()J
lstore 1
start local 1 1: aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.nextPulseTime:J
lload 1
lsub
ldc 1000000
ldiv
lstore 3
start local 3 2: lconst_0
lload 3
invokestatic java.lang.Math.max:(JJ)J
lreturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/scenario/animation/AbstractMasterTimer$MainLoop;
1 3 1 now J
2 3 3 timeUntilPulse J
private void updateNextPulseTime(long);
descriptor: (J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
invokevirtual com.sun.scenario.animation.AbstractMasterTimer.nanos:()J
lstore 3
start local 3 1: getstatic com.sun.scenario.animation.AbstractMasterTimer.fullspeed:Z
ifeq 4
2: aload 0
lload 3
putfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.nextPulseTime:J
3: goto 19
4: StackMap locals: long
StackMap stack:
getstatic com.sun.scenario.animation.AbstractMasterTimer.useAdaptivePulse:Z
ifeq 16
5: aload 0
dup
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.nextPulseTime:J
aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
getfield com.sun.scenario.animation.AbstractMasterTimer.PULSE_DURATION_NS:I
i2l
ladd
putfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.nextPulseTime:J
6: lload 3
lload 1
lsub
lstore 5
start local 5 7: lload 5
aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.lastPulseDuration:J
lsub
ldc 500000
lcmp
ifle 9
8: lload 5
ldc 2
ldiv
lstore 5
9: StackMap locals: long
StackMap stack:
lload 5
ldc 2000000
lcmp
ifge 11
10: ldc 2000000
lstore 5
11: StackMap locals:
StackMap stack:
lload 5
aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
getfield com.sun.scenario.animation.AbstractMasterTimer.PULSE_DURATION_NS:I
i2l
lcmp
iflt 13
12: iconst_3
aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
getfield com.sun.scenario.animation.AbstractMasterTimer.PULSE_DURATION_NS:I
imul
iconst_4
idiv
i2l
lstore 5
13: StackMap locals:
StackMap stack:
aload 0
lload 5
putfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.lastPulseDuration:J
14: aload 0
dup
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.nextPulseTime:J
lload 5
lsub
putfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.nextPulseTime:J
end local 5 15: goto 19
16: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.nextPulseTime:J
aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
getfield com.sun.scenario.animation.AbstractMasterTimer.PULSE_DURATION_NS:I
i2l
ladd
aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
getfield com.sun.scenario.animation.AbstractMasterTimer.PULSE_DURATION_NS:I
i2l
ldiv
17: aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
getfield com.sun.scenario.animation.AbstractMasterTimer.PULSE_DURATION_NS:I
i2l
lmul
18: putfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.nextPulseTime:J
19: StackMap locals:
StackMap stack:
return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/sun/scenario/animation/AbstractMasterTimer$MainLoop;
0 20 1 pulseStarted J
1 20 3 now J
7 15 5 pulseDuration J
MethodParameters:
Name Flags
pulseStarted
private void updateAnimationRunnable();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
getfield com.sun.scenario.animation.AbstractMasterTimer.animationTimersLength:I
ifne 1
aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
getfield com.sun.scenario.animation.AbstractMasterTimer.receiversLength:I
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 1
start local 1 3: aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.inactive:Z
iload 1
if_icmpeq 9
4: aload 0
iload 1
putfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.inactive:Z
5: aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.inactive:Z
ifeq 6
aconst_null
goto 7
StackMap locals: int
StackMap stack:
6: aload 0
StackMap locals:
StackMap stack: com.sun.scenario.animation.AbstractMasterTimer$MainLoop
7: astore 2
start local 2 8: aload 0
getfield com.sun.scenario.animation.AbstractMasterTimer$MainLoop.this$0:Lcom/sun/scenario/animation/AbstractMasterTimer;
aload 2
invokevirtual com.sun.scenario.animation.AbstractMasterTimer.postUpdateAnimationRunnable:(Lcom/sun/scenario/DelayedRunnable;)V
end local 2 9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/scenario/animation/AbstractMasterTimer$MainLoop;
3 10 1 newInactive Z
8 9 2 animationRunnable Lcom/sun/scenario/DelayedRunnable;
}
SourceFile: "AbstractMasterTimer.java"
NestHost: com.sun.scenario.animation.AbstractMasterTimer
InnerClasses:
private final MainLoop = com.sun.scenario.animation.AbstractMasterTimer$MainLoop of com.sun.scenario.animation.AbstractMasterTimer