class android.os.TestLooperManager$LooperHolder implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: android.os.TestLooperManager$LooperHolder
super_class: java.lang.Object
{
final android.os.TestLooperManager this$0;
descriptor: Landroid/os/TestLooperManager;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(android.os.TestLooperManager);
descriptor: (Landroid/os/TestLooperManager;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 // android.os.TestLooperManager$LooperHolder this
0: .line 177
aload 0 /* this */
aload 1
putfield android.os.TestLooperManager$LooperHolder.this$0:Landroid/os/TestLooperManager;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // android.os.TestLooperManager$LooperHolder this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/os/TestLooperManager$LooperHolder;
MethodParameters:
Name Flags
this$0 final
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 // android.os.TestLooperManager$LooperHolder this
0: .line 180
aload 0 /* this */
getfield android.os.TestLooperManager$LooperHolder.this$0:Landroid/os/TestLooperManager;
dup
astore 1
monitorenter
1: .line 181
aload 0 /* this */
getfield android.os.TestLooperManager$LooperHolder.this$0:Landroid/os/TestLooperManager;
iconst_1
putfield android.os.TestLooperManager.mLooperBlocked:Z
2: .line 182
aload 0 /* this */
getfield android.os.TestLooperManager$LooperHolder.this$0:Landroid/os/TestLooperManager;
invokevirtual java.lang.Object.notify:()V
3: .line 180
aload 1
monitorexit
4: goto 12
StackMap locals: android.os.TestLooperManager$LooperHolder android.os.TestLooperManager
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: .line 186
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield android.os.TestLooperManager$LooperHolder.this$0:Landroid/os/TestLooperManager;
getfield android.os.TestLooperManager.mExecuteQueue:Ljava/util/concurrent/LinkedBlockingQueue;
invokevirtual java.util.concurrent.LinkedBlockingQueue.take:()Ljava/lang/Object;
checkcast android.os.TestLooperManager$MessageExecution
astore 1 /* take */
start local 1 // android.os.TestLooperManager$MessageExecution take
8: .line 187
aload 1 /* take */
getfield android.os.TestLooperManager$MessageExecution.m:Landroid/os/Message;
ifnull 12
9: .line 188
aload 0 /* this */
aload 1 /* take */
invokevirtual android.os.TestLooperManager$LooperHolder.processMessage:(Landroid/os/TestLooperManager$MessageExecution;)V
end local 1 // android.os.TestLooperManager$MessageExecution take
10: .line 190
goto 12
StackMap locals:
StackMap stack: java.lang.InterruptedException
11: pop
12: .line 184
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield android.os.TestLooperManager$LooperHolder.this$0:Landroid/os/TestLooperManager;
getfield android.os.TestLooperManager.mReleased:Z
ifeq 7
13: .line 193
aload 0 /* this */
getfield android.os.TestLooperManager$LooperHolder.this$0:Landroid/os/TestLooperManager;
dup
astore 1
monitorenter
14: .line 194
aload 0 /* this */
getfield android.os.TestLooperManager$LooperHolder.this$0:Landroid/os/TestLooperManager;
iconst_0
putfield android.os.TestLooperManager.mLooperBlocked:Z
15: .line 193
aload 1
monitorexit
16: goto 19
StackMap locals: android.os.TestLooperManager$LooperHolder android.os.TestLooperManager
StackMap stack: java.lang.Throwable
17: aload 1
monitorexit
18: athrow
19: .line 196
StackMap locals:
StackMap stack:
return
end local 0 // android.os.TestLooperManager$LooperHolder this
LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Landroid/os/TestLooperManager$LooperHolder;
8 10 1 take Landroid/os/TestLooperManager$MessageExecution;
Exception table:
from to target type
1 4 5 any
5 6 5 any
7 10 11 Class java.lang.InterruptedException
14 16 17 any
17 18 17 any
private void processMessage(android.os.TestLooperManager$MessageExecution);
descriptor: (Landroid/os/TestLooperManager$MessageExecution;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 // android.os.TestLooperManager$LooperHolder this
start local 1 // android.os.TestLooperManager$MessageExecution mex
0: .line 199
aload 1 /* mex */
dup
astore 2
monitorenter
1: .line 201
aload 1 /* mex */
getfield android.os.TestLooperManager$MessageExecution.m:Landroid/os/Message;
getfield android.os.Message.target:Landroid/os/Handler;
aload 1 /* mex */
getfield android.os.TestLooperManager$MessageExecution.m:Landroid/os/Message;
invokevirtual android.os.Handler.dispatchMessage:(Landroid/os/Message;)V
2: .line 202
aload 1 /* mex */
aconst_null
putfield android.os.TestLooperManager$MessageExecution.response:Ljava/lang/Throwable;
3: .line 203
goto 6
StackMap locals: android.os.TestLooperManager$LooperHolder android.os.TestLooperManager$MessageExecution android.os.TestLooperManager$MessageExecution
StackMap stack: java.lang.Throwable
4: astore 3 /* t */
start local 3 // java.lang.Throwable t
5: .line 204
aload 1 /* mex */
aload 3 /* t */
putfield android.os.TestLooperManager$MessageExecution.response:Ljava/lang/Throwable;
end local 3 // java.lang.Throwable t
6: .line 206
StackMap locals:
StackMap stack:
aload 1 /* mex */
invokevirtual java.lang.Object.notifyAll:()V
7: .line 199
aload 2
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 2
monitorexit
10: athrow
11: .line 208
StackMap locals:
StackMap stack:
return
end local 1 // android.os.TestLooperManager$MessageExecution mex
end local 0 // android.os.TestLooperManager$LooperHolder this
LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Landroid/os/TestLooperManager$LooperHolder;
0 12 1 mex Landroid/os/TestLooperManager$MessageExecution;
5 6 3 t Ljava/lang/Throwable;
Exception table:
from to target type
1 3 4 Class java.lang.Throwable
1 8 9 any
9 10 9 any
MethodParameters:
Name Flags
mex
}
SourceFile: "TestLooperManager.java"
NestHost: android.os.TestLooperManager
InnerClasses:
private LooperHolder = android.os.TestLooperManager$LooperHolder of android.os.TestLooperManager
private MessageExecution = android.os.TestLooperManager$MessageExecution of android.os.TestLooperManager