final class com.sun.media.sound.EventDispatcher implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.sun.media.sound.EventDispatcher
super_class: java.lang.Object
{
private static final int AUTO_CLOSE_TIME;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5000
private final java.util.ArrayList<com.sun.media.sound.EventDispatcher$EventInfo> eventQueue;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Lcom/sun/media/sound/EventDispatcher$EventInfo;>;
private java.lang.Thread thread;
descriptor: Ljava/lang/Thread;
flags: (0x0002) ACC_PRIVATE
private final java.util.ArrayList<com.sun.media.sound.EventDispatcher$ClipInfo> autoClosingClips;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Lcom/sun/media/sound/EventDispatcher$ClipInfo;>;
private final java.util.ArrayList<com.sun.media.sound.EventDispatcher$LineMonitor> lineMonitors;
descriptor: Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/ArrayList<Lcom/sun/media/sound/EventDispatcher$LineMonitor;>;
static final int LINE_MONITOR_TIME;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 400
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.sun.media.sound.EventDispatcher.eventQueue:Ljava/util/ArrayList;
2: aload 0
aconst_null
putfield com.sun.media.sound.EventDispatcher.thread:Ljava/lang/Thread;
3: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.sun.media.sound.EventDispatcher.autoClosingClips:Ljava/util/ArrayList;
4: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.sun.media.sound.EventDispatcher.lineMonitors:Ljava/util/ArrayList;
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/media/sound/EventDispatcher;
synchronized void start();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.EventDispatcher.thread:Ljava/lang/Thread;
ifnonnull 7
1: aload 0
aload 0
2: ldc "Java Sound Event Dispatcher"
3: iconst_1
4: iconst_m1
5: iconst_1
6: invokestatic com.sun.media.sound.JSSecurityManager.createThread:(Ljava/lang/Runnable;Ljava/lang/String;ZIZ)Ljava/lang/Thread;
putfield com.sun.media.sound.EventDispatcher.thread:Ljava/lang/Thread;
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/media/sound/EventDispatcher;
void processEvent(com.sun.media.sound.EventDispatcher$EventInfo);
descriptor: (Lcom/sun/media/sound/EventDispatcher$EventInfo;)V
flags: (0x0000)
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.sun.media.sound.EventDispatcher$EventInfo.getListenerCount:()I
istore 2
start local 2 1: aload 1
invokevirtual com.sun.media.sound.EventDispatcher$EventInfo.getEvent:()Ljava/lang/Object;
instanceof javax.sound.sampled.LineEvent
ifeq 11
2: aload 1
invokevirtual com.sun.media.sound.EventDispatcher$EventInfo.getEvent:()Ljava/lang/Object;
checkcast javax.sound.sampled.LineEvent
astore 3
start local 3 3: iconst_0
istore 4
start local 4 4: goto 9
5: StackMap locals: int javax.sound.sampled.LineEvent int
StackMap stack:
aload 1
iload 4
invokevirtual com.sun.media.sound.EventDispatcher$EventInfo.getListener:(I)Ljava/lang/Object;
checkcast javax.sound.sampled.LineListener
aload 3
invokeinterface javax.sound.sampled.LineListener.update:(Ljavax/sound/sampled/LineEvent;)V
6: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
7: astore 5
8: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
iload 2
if_icmplt 5
end local 4 10: return
end local 3 11: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.sun.media.sound.EventDispatcher$EventInfo.getEvent:()Ljava/lang/Object;
instanceof javax.sound.midi.MetaMessage
ifeq 21
12: aload 1
invokevirtual com.sun.media.sound.EventDispatcher$EventInfo.getEvent:()Ljava/lang/Object;
checkcast javax.sound.midi.MetaMessage
astore 3
start local 3 13: iconst_0
istore 4
start local 4 14: goto 19
15: StackMap locals: javax.sound.midi.MetaMessage int
StackMap stack:
aload 1
iload 4
invokevirtual com.sun.media.sound.EventDispatcher$EventInfo.getListener:(I)Ljava/lang/Object;
checkcast javax.sound.midi.MetaEventListener
aload 3
invokeinterface javax.sound.midi.MetaEventListener.meta:(Ljavax/sound/midi/MetaMessage;)V
16: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
17: astore 5
18: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
19: iload 4
iload 2
if_icmplt 15
end local 4 20: return
end local 3 21: StackMap locals:
StackMap stack:
aload 1
invokevirtual com.sun.media.sound.EventDispatcher$EventInfo.getEvent:()Ljava/lang/Object;
instanceof javax.sound.midi.ShortMessage
ifeq 33
22: aload 1
invokevirtual com.sun.media.sound.EventDispatcher$EventInfo.getEvent:()Ljava/lang/Object;
checkcast javax.sound.midi.ShortMessage
astore 3
start local 3 23: aload 3
invokevirtual javax.sound.midi.ShortMessage.getStatus:()I
istore 4
start local 4 24: iload 4
sipush 240
iand
sipush 176
if_icmpne 32
25: iconst_0
istore 5
start local 5 26: goto 31
27: StackMap locals: javax.sound.midi.ShortMessage int int
StackMap stack:
aload 1
iload 5
invokevirtual com.sun.media.sound.EventDispatcher$EventInfo.getListener:(I)Ljava/lang/Object;
checkcast javax.sound.midi.ControllerEventListener
aload 3
invokeinterface javax.sound.midi.ControllerEventListener.controlChange:(Ljavax/sound/midi/ShortMessage;)V
28: goto 30
StackMap locals:
StackMap stack: java.lang.Throwable
29: astore 6
30: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
31: iload 5
iload 2
if_icmplt 27
end local 5 32: StackMap locals:
StackMap stack:
return
end local 4 end local 3 33: StackMap locals:
StackMap stack:
new java.lang.StringBuilder
dup
ldc "Unknown event type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual com.sun.media.sound.EventDispatcher$EventInfo.getEvent:()Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic com.sun.media.sound.Printer.err:(Ljava/lang/String;)V
34: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 35 0 this Lcom/sun/media/sound/EventDispatcher;
0 35 1 eventInfo Lcom/sun/media/sound/EventDispatcher$EventInfo;
1 35 2 count I
3 11 3 event Ljavax/sound/sampled/LineEvent;
4 10 4 i I
13 21 3 event Ljavax/sound/midi/MetaMessage;
14 20 4 i I
23 33 3 event Ljavax/sound/midi/ShortMessage;
24 33 4 status I
26 32 5 i I
Exception table:
from to target type
5 6 7 Class java.lang.Throwable
15 16 17 Class java.lang.Throwable
27 28 29 Class java.lang.Throwable
MethodParameters:
Name Flags
eventInfo
void dispatchEvents();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aload 0
dup
astore 2
monitorenter
2: aload 0
getfield com.sun.media.sound.EventDispatcher.eventQueue:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
ifne 12
3: aload 0
getfield com.sun.media.sound.EventDispatcher.autoClosingClips:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
ifgt 4
aload 0
getfield com.sun.media.sound.EventDispatcher.lineMonitors:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
ifle 9
4: StackMap locals: com.sun.media.sound.EventDispatcher$EventInfo com.sun.media.sound.EventDispatcher
StackMap stack:
sipush 5000
istore 3
start local 3 5: aload 0
getfield com.sun.media.sound.EventDispatcher.lineMonitors:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
ifle 7
6: sipush 400
istore 3
7: StackMap locals: int
StackMap stack:
aload 0
iload 3
i2l
invokevirtual java.lang.Object.wait:(J)V
end local 3 8: goto 12
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual java.lang.Object.wait:()V
10: goto 12
StackMap locals:
StackMap stack: java.lang.InterruptedException
11: pop
12: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.EventDispatcher.eventQueue:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
ifle 14
13: aload 0
getfield com.sun.media.sound.EventDispatcher.eventQueue:Ljava/util/ArrayList;
iconst_0
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
checkcast com.sun.media.sound.EventDispatcher$EventInfo
astore 1
14: StackMap locals:
StackMap stack:
aload 2
monitorexit
15: goto 18
StackMap locals:
StackMap stack: java.lang.Throwable
16: aload 2
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
aload 1
ifnull 21
19: aload 0
aload 1
invokevirtual com.sun.media.sound.EventDispatcher.processEvent:(Lcom/sun/media/sound/EventDispatcher$EventInfo;)V
20: goto 25
21: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.EventDispatcher.autoClosingClips:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
ifle 23
22: aload 0
invokevirtual com.sun.media.sound.EventDispatcher.closeAutoClosingClips:()V
23: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.EventDispatcher.lineMonitors:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
ifle 25
24: aload 0
invokevirtual com.sun.media.sound.EventDispatcher.monitorLines:()V
25: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/sun/media/sound/EventDispatcher;
1 26 1 eventInfo Lcom/sun/media/sound/EventDispatcher$EventInfo;
5 8 3 waitTime I
Exception table:
from to target type
2 10 11 Class java.lang.InterruptedException
2 15 16 any
16 17 16 any
private synchronized void postEvent(com.sun.media.sound.EventDispatcher$EventInfo);
descriptor: (Lcom/sun/media/sound/EventDispatcher$EventInfo;)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.media.sound.EventDispatcher.eventQueue:Ljava/util/ArrayList;
aload 1
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
1: aload 0
invokevirtual java.lang.Object.notifyAll:()V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/media/sound/EventDispatcher;
0 3 1 eventInfo Lcom/sun/media/sound/EventDispatcher$EventInfo;
MethodParameters:
Name Flags
eventInfo
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.media.sound.EventDispatcher.dispatchEvents:()V
1: goto 0
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 1
3: goto 0
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/media/sound/EventDispatcher;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
void sendAudioEvents(, java.util.List<java.lang.Object>);
descriptor: (Ljava/lang/Object;Ljava/util/List;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 2
1: aload 2
invokeinterface java.util.List.size:()I
ifne 3
2: StackMap locals:
StackMap stack:
return
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.media.sound.EventDispatcher.start:()V
4: new com.sun.media.sound.EventDispatcher$EventInfo
dup
aload 0
aload 1
aload 2
invokespecial com.sun.media.sound.EventDispatcher$EventInfo.<init>:(Lcom/sun/media/sound/EventDispatcher;Ljava/lang/Object;Ljava/util/List;)V
astore 3
start local 3 5: aload 0
aload 3
invokevirtual com.sun.media.sound.EventDispatcher.postEvent:(Lcom/sun/media/sound/EventDispatcher$EventInfo;)V
6: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/media/sound/EventDispatcher;
0 7 1 event Ljava/lang/Object;
0 7 2 listeners Ljava/util/List<Ljava/lang/Object;>;
5 7 3 eventInfo Lcom/sun/media/sound/EventDispatcher$EventInfo;
Signature: (Ljava/lang/Object;Ljava/util/List<Ljava/lang/Object;>;)V
MethodParameters:
Name Flags
event
listeners
private void closeAutoClosingClips();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.EventDispatcher.autoClosingClips:Ljava/util/ArrayList;
dup
astore 1
monitorenter
1: invokestatic java.lang.System.currentTimeMillis:()J
lstore 2
start local 2 2: aload 0
getfield com.sun.media.sound.EventDispatcher.autoClosingClips:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
istore 4
start local 4 3: goto 13
4: StackMap locals: java.util.ArrayList long int
StackMap stack:
aload 0
getfield com.sun.media.sound.EventDispatcher.autoClosingClips:Ljava/util/ArrayList;
iload 4
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast com.sun.media.sound.EventDispatcher$ClipInfo
astore 5
start local 5 5: aload 5
lload 2
invokevirtual com.sun.media.sound.EventDispatcher$ClipInfo.isExpired:(J)Z
ifeq 12
6: aload 5
invokevirtual com.sun.media.sound.EventDispatcher$ClipInfo.getClip:()Lcom/sun/media/sound/AutoClosingClip;
astore 6
start local 6 7: aload 6
invokeinterface com.sun.media.sound.AutoClosingClip.isOpen:()Z
ifeq 8
aload 6
invokeinterface com.sun.media.sound.AutoClosingClip.isAutoClosing:()Z
ifne 10
8: StackMap locals: com.sun.media.sound.EventDispatcher$ClipInfo com.sun.media.sound.AutoClosingClip
StackMap stack:
aload 0
getfield com.sun.media.sound.EventDispatcher.autoClosingClips:Ljava/util/ArrayList;
iload 4
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
pop
9: goto 12
10: StackMap locals:
StackMap stack:
aload 6
invokeinterface com.sun.media.sound.AutoClosingClip.isRunning:()Z
ifne 12
aload 6
invokeinterface com.sun.media.sound.AutoClosingClip.isActive:()Z
ifne 12
aload 6
invokeinterface com.sun.media.sound.AutoClosingClip.isAutoClosing:()Z
ifeq 12
11: aload 6
invokeinterface com.sun.media.sound.AutoClosingClip.close:()V
end local 6 end local 5 12: StackMap locals:
StackMap stack:
iinc 4 -1
StackMap locals:
StackMap stack:
13: iload 4
ifge 4
end local 4 end local 2 14: aload 1
monitorexit
15: goto 18
StackMap locals: com.sun.media.sound.EventDispatcher java.util.ArrayList
StackMap stack: java.lang.Throwable
16: aload 1
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/sun/media/sound/EventDispatcher;
2 14 2 currTime J
3 14 4 i I
5 12 5 info Lcom/sun/media/sound/EventDispatcher$ClipInfo;
7 12 6 clip Lcom/sun/media/sound/AutoClosingClip;
Exception table:
from to target type
1 15 16 any
16 17 16 any
private int getAutoClosingClipIndex(com.sun.media.sound.AutoClosingClip);
descriptor: (Lcom/sun/media/sound/AutoClosingClip;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.media.sound.EventDispatcher.autoClosingClips:Ljava/util/ArrayList;
dup
astore 2
monitorenter
1: aload 0
getfield com.sun.media.sound.EventDispatcher.autoClosingClips:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
iconst_1
isub
istore 3
start local 3 2: goto 7
3: StackMap locals: java.util.ArrayList int
StackMap stack:
aload 1
aload 0
getfield com.sun.media.sound.EventDispatcher.autoClosingClips:Ljava/util/ArrayList;
iload 3
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast com.sun.media.sound.EventDispatcher$ClipInfo
invokevirtual com.sun.media.sound.EventDispatcher$ClipInfo.getClip:()Lcom/sun/media/sound/AutoClosingClip;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 6
4: iload 3
aload 2
monitorexit
5: ireturn
6: StackMap locals:
StackMap stack:
iinc 3 -1
StackMap locals:
StackMap stack:
7: iload 3
ifge 3
end local 3 8: aload 2
monitorexit
9: goto 12
StackMap locals: com.sun.media.sound.EventDispatcher com.sun.media.sound.AutoClosingClip java.util.ArrayList
StackMap stack: java.lang.Throwable
10: aload 2
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
iconst_m1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/media/sound/EventDispatcher;
0 13 1 clip Lcom/sun/media/sound/AutoClosingClip;
2 8 3 i I
Exception table:
from to target type
1 5 10 any
6 9 10 any
10 11 10 any
MethodParameters:
Name Flags
clip
void autoClosingClipOpened(com.sun.media.sound.AutoClosingClip);
descriptor: (Lcom/sun/media/sound/AutoClosingClip;)V
flags: (0x0000)
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: iconst_0
istore 2
start local 2 1: aload 0
getfield com.sun.media.sound.EventDispatcher.autoClosingClips:Ljava/util/ArrayList;
dup
astore 3
monitorenter
2: aload 0
aload 1
invokevirtual com.sun.media.sound.EventDispatcher.getAutoClosingClipIndex:(Lcom/sun/media/sound/AutoClosingClip;)I
istore 2
3: iload 2
iconst_m1
if_icmpne 5
4: aload 0
getfield com.sun.media.sound.EventDispatcher.autoClosingClips:Ljava/util/ArrayList;
new com.sun.media.sound.EventDispatcher$ClipInfo
dup
aload 0
aload 1
invokespecial com.sun.media.sound.EventDispatcher$ClipInfo.<init>:(Lcom/sun/media/sound/EventDispatcher;Lcom/sun/media/sound/AutoClosingClip;)V
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
5: StackMap locals: int java.util.ArrayList
StackMap stack:
aload 3
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
iload 2
iconst_m1
if_icmpne 16
10: aload 0
dup
astore 3
monitorenter
11: aload 0
invokevirtual java.lang.Object.notifyAll:()V
12: aload 3
monitorexit
13: goto 16
StackMap locals: com.sun.media.sound.EventDispatcher com.sun.media.sound.AutoClosingClip int com.sun.media.sound.EventDispatcher
StackMap stack: java.lang.Throwable
14: aload 3
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/media/sound/EventDispatcher;
0 17 1 clip Lcom/sun/media/sound/AutoClosingClip;
1 17 2 index I
Exception table:
from to target type
2 6 7 any
7 8 7 any
11 13 14 any
14 15 14 any
MethodParameters:
Name Flags
clip
void autoClosingClipClosed(com.sun.media.sound.AutoClosingClip);
descriptor: (Lcom/sun/media/sound/AutoClosingClip;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.media.sound.EventDispatcher.autoClosingClips:Ljava/util/ArrayList;
dup
astore 2
monitorenter
1: aload 0
aload 1
invokevirtual com.sun.media.sound.EventDispatcher.getAutoClosingClipIndex:(Lcom/sun/media/sound/AutoClosingClip;)I
istore 3
start local 3 2: iload 3
iconst_m1
if_icmpeq 4
3: aload 0
getfield com.sun.media.sound.EventDispatcher.autoClosingClips:Ljava/util/ArrayList;
iload 3
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
pop
end local 3 4: StackMap locals: java.util.ArrayList
StackMap stack:
aload 2
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/media/sound/EventDispatcher;
0 9 1 clip Lcom/sun/media/sound/AutoClosingClip;
2 4 3 index I
Exception table:
from to target type
1 5 6 any
6 7 6 any
MethodParameters:
Name Flags
clip
private void monitorLines();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.EventDispatcher.lineMonitors:Ljava/util/ArrayList;
dup
astore 1
monitorenter
1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: java.util.ArrayList int
StackMap stack:
aload 0
getfield com.sun.media.sound.EventDispatcher.lineMonitors:Ljava/util/ArrayList;
iload 2
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast com.sun.media.sound.EventDispatcher$LineMonitor
invokeinterface com.sun.media.sound.EventDispatcher$LineMonitor.checkLine:()V
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 0
getfield com.sun.media.sound.EventDispatcher.lineMonitors:Ljava/util/ArrayList;
invokevirtual java.util.ArrayList.size:()I
if_icmplt 3
end local 2 6: aload 1
monitorexit
7: goto 10
StackMap locals: com.sun.media.sound.EventDispatcher java.util.ArrayList
StackMap stack: java.lang.Throwable
8: aload 1
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/sun/media/sound/EventDispatcher;
2 6 2 i I
Exception table:
from to target type
1 7 8 any
8 9 8 any
void addLineMonitor(com.sun.media.sound.EventDispatcher$LineMonitor);
descriptor: (Lcom/sun/media/sound/EventDispatcher$LineMonitor;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.media.sound.EventDispatcher.lineMonitors:Ljava/util/ArrayList;
dup
astore 2
monitorenter
1: aload 0
getfield com.sun.media.sound.EventDispatcher.lineMonitors:Ljava/util/ArrayList;
aload 1
invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
iflt 4
2: aload 2
monitorexit
3: return
4: StackMap locals: java.util.ArrayList
StackMap stack:
aload 0
getfield com.sun.media.sound.EventDispatcher.lineMonitors:Ljava/util/ArrayList;
aload 1
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
5: aload 2
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
dup
astore 2
monitorenter
10: aload 0
invokevirtual java.lang.Object.notifyAll:()V
11: aload 2
monitorexit
12: goto 15
StackMap locals: com.sun.media.sound.EventDispatcher com.sun.media.sound.EventDispatcher$LineMonitor com.sun.media.sound.EventDispatcher
StackMap stack: java.lang.Throwable
13: aload 2
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/sun/media/sound/EventDispatcher;
0 16 1 lm Lcom/sun/media/sound/EventDispatcher$LineMonitor;
Exception table:
from to target type
1 3 7 any
4 6 7 any
7 8 7 any
10 12 13 any
13 14 13 any
MethodParameters:
Name Flags
lm
void removeLineMonitor(com.sun.media.sound.EventDispatcher$LineMonitor);
descriptor: (Lcom/sun/media/sound/EventDispatcher$LineMonitor;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.media.sound.EventDispatcher.lineMonitors:Ljava/util/ArrayList;
dup
astore 2
monitorenter
1: aload 0
getfield com.sun.media.sound.EventDispatcher.lineMonitors:Ljava/util/ArrayList;
aload 1
invokevirtual java.util.ArrayList.indexOf:(Ljava/lang/Object;)I
ifge 4
2: aload 2
monitorexit
3: return
4: StackMap locals: java.util.ArrayList
StackMap stack:
aload 0
getfield com.sun.media.sound.EventDispatcher.lineMonitors:Ljava/util/ArrayList;
aload 1
invokevirtual java.util.ArrayList.remove:(Ljava/lang/Object;)Z
pop
5: aload 2
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 2
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/media/sound/EventDispatcher;
0 10 1 lm Lcom/sun/media/sound/EventDispatcher$LineMonitor;
Exception table:
from to target type
1 3 7 any
4 6 7 any
7 8 7 any
MethodParameters:
Name Flags
lm
}
SourceFile: "EventDispatcher.java"
NestMembers:
com.sun.media.sound.EventDispatcher$ClipInfo com.sun.media.sound.EventDispatcher$EventInfo com.sun.media.sound.EventDispatcher$LineMonitor
InnerClasses:
private ClipInfo = com.sun.media.sound.EventDispatcher$ClipInfo of com.sun.media.sound.EventDispatcher
private EventInfo = com.sun.media.sound.EventDispatcher$EventInfo of com.sun.media.sound.EventDispatcher
abstract LineMonitor = com.sun.media.sound.EventDispatcher$LineMonitor of com.sun.media.sound.EventDispatcher