public final class android.os.MessageQueue
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.os.MessageQueue
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "MessageQueue"

  private static final boolean DEBUG;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private final boolean mQuitAllowed;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private long mPtr;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  android.os.Message mMessages;
    descriptor: Landroid/os/Message;
    flags: (0x0000) 

  private final java.util.ArrayList<android.os.MessageQueue$IdleHandler> mIdleHandlers;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/ArrayList<Landroid/os/MessageQueue$IdleHandler;>;

  private android.util.SparseArray<android.os.MessageQueue$FileDescriptorRecord> mFileDescriptorRecords;
    descriptor: Landroid/util/SparseArray;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/util/SparseArray<Landroid/os/MessageQueue$FileDescriptorRecord;>;

  private android.os.MessageQueue$IdleHandler[] mPendingIdleHandlers;
    descriptor: [Landroid/os/MessageQueue$IdleHandler;
    flags: (0x0002) ACC_PRIVATE

  private boolean mQuitting;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private boolean mBlocked;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private int mNextBarrierToken;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private static native long nativeInit();
    descriptor: ()J
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  private static native void nativeDestroy(long);
    descriptor: (J)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      ptr   

  private native void nativePollOnce(long, int);
    descriptor: (JI)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
               Name  Flags
      ptr            
      timeoutMillis  

  private static native void nativeWake(long);
    descriptor: (J)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      ptr   

  private static native boolean nativeIsPolling(long);
    descriptor: (J)Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      ptr   

  private static native void nativeSetFileDescriptorEvents(long, int, int);
    descriptor: (JII)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
        Name  Flags
      ptr     
      fd      
      events  

  void <init>(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.os.MessageQueue this
        start local 1 // boolean quitAllowed
         0: .line 70
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.os.MessageQueue.mIdleHandlers:Ljava/util/ArrayList;
         2: .line 71
            aload 0 /* this */
            iload 1 /* quitAllowed */
            putfield android.os.MessageQueue.mQuitAllowed:Z
         3: .line 72
            aload 0 /* this */
            invokestatic android.os.MessageQueue.nativeInit:()J
            putfield android.os.MessageQueue.mPtr:J
         4: .line 73
            return
        end local 1 // boolean quitAllowed
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Landroid/os/MessageQueue;
            0    5     1  quitAllowed  Z
    MethodParameters:
             Name  Flags
      quitAllowed  

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // android.os.MessageQueue this
         0: .line 78
            aload 0 /* this */
            invokevirtual android.os.MessageQueue.dispose:()V
         1: .line 79
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 1
         3: .line 80
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         4: .line 81
            aload 1
            athrow
         5: .line 80
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         6: .line 82
            return
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/os/MessageQueue;
      Exception table:
        from    to  target  type
           0     2       2  any
    Exceptions:
      throws java.lang.Throwable

  private void dispose();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.os.MessageQueue this
         0: .line 87
            aload 0 /* this */
            getfield android.os.MessageQueue.mPtr:J
            lconst_0
            lcmp
            ifeq 3
         1: .line 88
            aload 0 /* this */
            getfield android.os.MessageQueue.mPtr:J
            invokestatic android.os.MessageQueue.nativeDestroy:(J)V
         2: .line 89
            aload 0 /* this */
            lconst_0
            putfield android.os.MessageQueue.mPtr:J
         3: .line 91
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/os/MessageQueue;

  public boolean isIdle();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // android.os.MessageQueue this
         0: .line 101
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 102
            invokestatic android.os.SystemClock.uptimeMillis:()J
            lstore 2 /* now */
        start local 2 // long now
         2: .line 103
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            ifnull 3
            lload 2 /* now */
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            getfield android.os.Message.when:J
            lcmp
            iflt 3
            iconst_0
            goto 4
      StackMap locals: android.os.MessageQueue long
      StackMap stack:
         3: iconst_1
      StackMap locals:
      StackMap stack: int
         4: aload 1
            monitorexit
         5: ireturn
        end local 2 // long now
         6: .line 101
      StackMap locals: android.os.MessageQueue android.os.MessageQueue
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         7: athrow
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/os/MessageQueue;
            2    6     2   now  J
      Exception table:
        from    to  target  type
           1     5       6  any
           6     7       6  any

  public void addIdleHandler(android.os.MessageQueue$IdleHandler);
    descriptor: (Landroid/os/MessageQueue$IdleHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.os.MessageQueue this
        start local 1 // android.os.MessageQueue$IdleHandler handler
         0: .line 118
            aload 1 /* handler */
            ifnonnull 2
         1: .line 119
            new java.lang.NullPointerException
            dup
            ldc "Can't add a null IdleHandler"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 121
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         3: .line 122
            aload 0 /* this */
            getfield android.os.MessageQueue.mIdleHandlers:Ljava/util/ArrayList;
            aload 1 /* handler */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         4: .line 121
            aload 2
            monitorexit
         5: goto 8
      StackMap locals: android.os.MessageQueue android.os.MessageQueue$IdleHandler android.os.MessageQueue
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 124
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.os.MessageQueue$IdleHandler handler
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Landroid/os/MessageQueue;
            0    9     1  handler  Landroid/os/MessageQueue$IdleHandler;
      Exception table:
        from    to  target  type
           3     5       6  any
           6     7       6  any
    MethodParameters:
         Name  Flags
      handler  

  public void removeIdleHandler(android.os.MessageQueue$IdleHandler);
    descriptor: (Landroid/os/MessageQueue$IdleHandler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.os.MessageQueue this
        start local 1 // android.os.MessageQueue$IdleHandler handler
         0: .line 136
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 137
            aload 0 /* this */
            getfield android.os.MessageQueue.mIdleHandlers:Ljava/util/ArrayList;
            aload 1 /* handler */
            invokevirtual java.util.ArrayList.remove:(Ljava/lang/Object;)Z
            pop
         2: .line 136
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: android.os.MessageQueue android.os.MessageQueue$IdleHandler android.os.MessageQueue
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 139
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.os.MessageQueue$IdleHandler handler
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Landroid/os/MessageQueue;
            0    7     1  handler  Landroid/os/MessageQueue$IdleHandler;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
         Name  Flags
      handler  

  public boolean isPolling();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.os.MessageQueue this
         0: .line 153
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 154
            aload 0 /* this */
            invokevirtual android.os.MessageQueue.isPollingLocked:()Z
            aload 1
            monitorexit
         2: ireturn
         3: .line 153
      StackMap locals: android.os.MessageQueue android.os.MessageQueue
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         4: athrow
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/os/MessageQueue;
      Exception table:
        from    to  target  type
           1     2       3  any
           3     4       3  any

  private boolean isPollingLocked();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.os.MessageQueue this
         0: .line 161
            aload 0 /* this */
            getfield android.os.MessageQueue.mQuitting:Z
            ifne 1
            aload 0 /* this */
            getfield android.os.MessageQueue.mPtr:J
            invokestatic android.os.MessageQueue.nativeIsPolling:(J)Z
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/os/MessageQueue;

  public void addOnFileDescriptorEventListener(java.io.FileDescriptor, int, android.os.MessageQueue$OnFileDescriptorEventListener);
    descriptor: (Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // android.os.MessageQueue this
        start local 1 // java.io.FileDescriptor fd
        start local 2 // int events
        start local 3 // android.os.MessageQueue$OnFileDescriptorEventListener listener
         0: .line 190
            aload 1 /* fd */
            ifnonnull 2
         1: .line 191
            new java.lang.IllegalArgumentException
            dup
            ldc "fd must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 193
      StackMap locals:
      StackMap stack:
            aload 3 /* listener */
            ifnonnull 4
         3: .line 194
            new java.lang.IllegalArgumentException
            dup
            ldc "listener must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 197
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         5: .line 198
            aload 0 /* this */
            aload 1 /* fd */
            iload 2 /* events */
            aload 3 /* listener */
            invokevirtual android.os.MessageQueue.updateOnFileDescriptorEventListenerLocked:(Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V
         6: .line 197
            aload 4
            monitorexit
         7: goto 10
      StackMap locals: android.os.MessageQueue java.io.FileDescriptor int android.os.MessageQueue$OnFileDescriptorEventListener android.os.MessageQueue
      StackMap stack: java.lang.Throwable
         8: aload 4
            monitorexit
         9: athrow
        10: .line 200
      StackMap locals:
      StackMap stack:
            return
        end local 3 // android.os.MessageQueue$OnFileDescriptorEventListener listener
        end local 2 // int events
        end local 1 // java.io.FileDescriptor fd
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Landroid/os/MessageQueue;
            0   11     1        fd  Ljava/io/FileDescriptor;
            0   11     2    events  I
            0   11     3  listener  Landroid/os/MessageQueue$OnFileDescriptorEventListener;
      Exception table:
        from    to  target  type
           5     7       8  any
           8     9       8  any
    MethodParameters:
          Name  Flags
      fd        
      events    
      listener  

  public void removeOnFileDescriptorEventListener(java.io.FileDescriptor);
    descriptor: (Ljava/io/FileDescriptor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.os.MessageQueue this
        start local 1 // java.io.FileDescriptor fd
         0: .line 215
            aload 1 /* fd */
            ifnonnull 2
         1: .line 216
            new java.lang.IllegalArgumentException
            dup
            ldc "fd must not be null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 219
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         3: .line 220
            aload 0 /* this */
            aload 1 /* fd */
            iconst_0
            aconst_null
            invokevirtual android.os.MessageQueue.updateOnFileDescriptorEventListenerLocked:(Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V
         4: .line 219
            aload 2
            monitorexit
         5: goto 8
      StackMap locals: android.os.MessageQueue java.io.FileDescriptor android.os.MessageQueue
      StackMap stack: java.lang.Throwable
         6: aload 2
            monitorexit
         7: athrow
         8: .line 222
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.io.FileDescriptor fd
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Landroid/os/MessageQueue;
            0    9     1    fd  Ljava/io/FileDescriptor;
      Exception table:
        from    to  target  type
           3     5       6  any
           6     7       6  any
    MethodParameters:
      Name  Flags
      fd    

  private void updateOnFileDescriptorEventListenerLocked(java.io.FileDescriptor, int, android.os.MessageQueue$OnFileDescriptorEventListener);
    descriptor: (Ljava/io/FileDescriptor;ILandroid/os/MessageQueue$OnFileDescriptorEventListener;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // android.os.MessageQueue this
         0: .line 226
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tThe method getInt$() is undefined for the type FileDescriptor\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/os/MessageQueue;
    MethodParameters:
          Name  Flags
      fd        
      events    
      listener  

  private int dispatchEvents(int, int);
    descriptor: (II)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=10, args_size=3
        start local 0 // android.os.MessageQueue this
        start local 1 // int fd
        start local 2 // int events
         0: .line 268
            aload 0 /* this */
            dup
            astore 7
            monitorenter
         1: .line 269
            aload 0 /* this */
            getfield android.os.MessageQueue.mFileDescriptorRecords:Landroid/util/SparseArray;
            iload 1 /* fd */
            invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
            checkcast android.os.MessageQueue$FileDescriptorRecord
            astore 3 /* record */
        start local 3 // android.os.MessageQueue$FileDescriptorRecord record
         2: .line 270
            aload 3 /* record */
            ifnonnull 5
         3: .line 271
            aload 7
            monitorexit
         4: iconst_0
            ireturn
         5: .line 274
      StackMap locals: android.os.MessageQueue int int android.os.MessageQueue$FileDescriptorRecord top top top android.os.MessageQueue
      StackMap stack:
            aload 3 /* record */
            getfield android.os.MessageQueue$FileDescriptorRecord.mEvents:I
            istore 4 /* oldWatchedEvents */
        start local 4 // int oldWatchedEvents
         6: .line 275
            iload 2 /* events */
            iload 4 /* oldWatchedEvents */
            iand
            istore 2 /* events */
         7: .line 276
            iload 2 /* events */
            ifne 10
         8: .line 277
            iload 4 /* oldWatchedEvents */
            aload 7
            monitorexit
         9: ireturn
        10: .line 280
      StackMap locals: android.os.MessageQueue int int android.os.MessageQueue$FileDescriptorRecord int top top android.os.MessageQueue
      StackMap stack:
            aload 3 /* record */
            getfield android.os.MessageQueue$FileDescriptorRecord.mListener:Landroid/os/MessageQueue$OnFileDescriptorEventListener;
            astore 5 /* listener */
        start local 5 // android.os.MessageQueue$OnFileDescriptorEventListener listener
        11: .line 281
            aload 3 /* record */
            getfield android.os.MessageQueue$FileDescriptorRecord.mSeq:I
            istore 6 /* seq */
        start local 6 // int seq
        12: .line 268
            aload 7
            monitorexit
        13: goto 16
        end local 6 // int seq
        end local 5 // android.os.MessageQueue$OnFileDescriptorEventListener listener
        end local 4 // int oldWatchedEvents
        end local 3 // android.os.MessageQueue$FileDescriptorRecord record
      StackMap locals: android.os.MessageQueue int int top top top top android.os.MessageQueue
      StackMap stack: java.lang.Throwable
        14: aload 7
            monitorexit
        15: athrow
        start local 3 // android.os.MessageQueue$FileDescriptorRecord record
        start local 4 // int oldWatchedEvents
        start local 5 // android.os.MessageQueue$OnFileDescriptorEventListener listener
        start local 6 // int seq
        16: .line 285
      StackMap locals: android.os.MessageQueue int int android.os.MessageQueue$FileDescriptorRecord int android.os.MessageQueue$OnFileDescriptorEventListener int
      StackMap stack:
            aload 5 /* listener */
        17: .line 286
            aload 3 /* record */
            getfield android.os.MessageQueue$FileDescriptorRecord.mDescriptor:Ljava/io/FileDescriptor;
            iload 2 /* events */
        18: .line 285
            invokeinterface android.os.MessageQueue$OnFileDescriptorEventListener.onFileDescriptorEvents:(Ljava/io/FileDescriptor;I)I
            istore 7 /* newWatchedEvents */
        start local 7 // int newWatchedEvents
        19: .line 287
            iload 7 /* newWatchedEvents */
            ifeq 21
        20: .line 288
            iload 7 /* newWatchedEvents */
            iconst_4
            ior
            istore 7 /* newWatchedEvents */
        21: .line 293
      StackMap locals: int
      StackMap stack:
            iload 7 /* newWatchedEvents */
            iload 4 /* oldWatchedEvents */
            if_icmpeq 33
        22: .line 294
            aload 0 /* this */
            dup
            astore 8
            monitorenter
        23: .line 295
            aload 0 /* this */
            getfield android.os.MessageQueue.mFileDescriptorRecords:Landroid/util/SparseArray;
            iload 1 /* fd */
            invokevirtual android.util.SparseArray.indexOfKey:(I)I
            istore 9 /* index */
        start local 9 // int index
        24: .line 296
            iload 9 /* index */
            iflt 29
            aload 0 /* this */
            getfield android.os.MessageQueue.mFileDescriptorRecords:Landroid/util/SparseArray;
            iload 9 /* index */
            invokevirtual android.util.SparseArray.valueAt:(I)Ljava/lang/Object;
            aload 3 /* record */
            if_acmpne 29
        25: .line 297
            aload 3 /* record */
            getfield android.os.MessageQueue$FileDescriptorRecord.mSeq:I
            iload 6 /* seq */
            if_icmpne 29
        26: .line 298
            aload 3 /* record */
            iload 7 /* newWatchedEvents */
            putfield android.os.MessageQueue$FileDescriptorRecord.mEvents:I
        27: .line 299
            iload 7 /* newWatchedEvents */
            ifne 29
        28: .line 300
            aload 0 /* this */
            getfield android.os.MessageQueue.mFileDescriptorRecords:Landroid/util/SparseArray;
            iload 9 /* index */
            invokevirtual android.util.SparseArray.removeAt:(I)V
        end local 9 // int index
        29: .line 294
      StackMap locals: android.os.MessageQueue
      StackMap stack:
            aload 8
            monitorexit
        30: goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
        31: aload 8
            monitorexit
        32: athrow
        33: .line 307
      StackMap locals:
      StackMap stack:
            iload 7 /* newWatchedEvents */
            ireturn
        end local 7 // int newWatchedEvents
        end local 6 // int seq
        end local 5 // android.os.MessageQueue$OnFileDescriptorEventListener listener
        end local 4 // int oldWatchedEvents
        end local 3 // android.os.MessageQueue$FileDescriptorRecord record
        end local 2 // int events
        end local 1 // int fd
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   34     0              this  Landroid/os/MessageQueue;
            0   34     1                fd  I
            0   34     2            events  I
            2   14     3            record  Landroid/os/MessageQueue$FileDescriptorRecord;
           16   34     3            record  Landroid/os/MessageQueue$FileDescriptorRecord;
            6   14     4  oldWatchedEvents  I
           16   34     4  oldWatchedEvents  I
           11   14     5          listener  Landroid/os/MessageQueue$OnFileDescriptorEventListener;
           16   34     5          listener  Landroid/os/MessageQueue$OnFileDescriptorEventListener;
           12   14     6               seq  I
           16   34     6               seq  I
           19   34     7  newWatchedEvents  I
           24   29     9             index  I
      Exception table:
        from    to  target  type
           1     4      14  any
           5     9      14  any
          10    13      14  any
          14    15      14  any
          23    30      31  any
          31    32      31  any
    MethodParameters:
        Name  Flags
      fd      
      events  

  android.os.Message next();
    descriptor: ()Landroid/os/Message;
    flags: (0x0000) 
    Code:
      stack=4, locals=10, args_size=1
        start local 0 // android.os.MessageQueue this
         0: .line 314
            aload 0 /* this */
            getfield android.os.MessageQueue.mPtr:J
            lstore 1 /* ptr */
        start local 1 // long ptr
         1: .line 315
            lload 1 /* ptr */
            lconst_0
            lcmp
            ifne 3
         2: .line 316
            aconst_null
            areturn
         3: .line 319
      StackMap locals: long
      StackMap stack:
            iconst_m1
            istore 3 /* pendingIdleHandlerCount */
        start local 3 // int pendingIdleHandlerCount
         4: .line 320
            iconst_0
            istore 4 /* nextPollTimeoutMillis */
        start local 4 // int nextPollTimeoutMillis
         5: .line 322
      StackMap locals: int int
      StackMap stack:
            iload 4 /* nextPollTimeoutMillis */
            ifeq 7
         6: .line 323
            invokestatic android.os.Binder.flushPendingCommands:()V
         7: .line 326
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* ptr */
            iload 4 /* nextPollTimeoutMillis */
            invokevirtual android.os.MessageQueue.nativePollOnce:(JI)V
         8: .line 328
            aload 0 /* this */
            dup
            astore 5
            monitorenter
         9: .line 330
            invokestatic android.os.SystemClock.uptimeMillis:()J
            lstore 6 /* now */
        start local 6 // long now
        10: .line 331
            aconst_null
            astore 8 /* prevMsg */
        start local 8 // android.os.Message prevMsg
        11: .line 332
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            astore 9 /* msg */
        start local 9 // android.os.Message msg
        12: .line 333
            aload 9 /* msg */
            ifnull 16
            aload 9 /* msg */
            getfield android.os.Message.target:Landroid/os/Handler;
            ifnonnull 16
        13: .line 336
      StackMap locals: android.os.MessageQueue long int int android.os.MessageQueue long android.os.Message android.os.Message
      StackMap stack:
            aload 9 /* msg */
            astore 8 /* prevMsg */
        14: .line 337
            aload 9 /* msg */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 9 /* msg */
        15: .line 338
            aload 9 /* msg */
            ifnull 16
            aload 9 /* msg */
            invokevirtual android.os.Message.isAsynchronous:()Z
            ifeq 13
        16: .line 340
      StackMap locals:
      StackMap stack:
            aload 9 /* msg */
            ifnull 29
        17: .line 341
            lload 6 /* now */
            aload 9 /* msg */
            getfield android.os.Message.when:J
            lcmp
            ifge 20
        18: .line 343
            aload 9 /* msg */
            getfield android.os.Message.when:J
            lload 6 /* now */
            lsub
            ldc 2147483647
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            istore 4 /* nextPollTimeoutMillis */
        19: .line 344
            goto 30
        20: .line 346
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.os.MessageQueue.mBlocked:Z
        21: .line 347
            aload 8 /* prevMsg */
            ifnull 24
        22: .line 348
            aload 8 /* prevMsg */
            aload 9 /* msg */
            getfield android.os.Message.next:Landroid/os/Message;
            putfield android.os.Message.next:Landroid/os/Message;
        23: .line 349
            goto 25
        24: .line 350
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 9 /* msg */
            getfield android.os.Message.next:Landroid/os/Message;
            putfield android.os.MessageQueue.mMessages:Landroid/os/Message;
        25: .line 352
      StackMap locals:
      StackMap stack:
            aload 9 /* msg */
            aconst_null
            putfield android.os.Message.next:Landroid/os/Message;
        26: .line 354
            aload 9 /* msg */
            invokevirtual android.os.Message.markInUse:()V
        27: .line 355
            aload 9 /* msg */
            aload 5
            monitorexit
        28: areturn
        29: .line 359
      StackMap locals:
      StackMap stack:
            iconst_m1
            istore 4 /* nextPollTimeoutMillis */
        30: .line 363
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.os.MessageQueue.mQuitting:Z
            ifeq 34
        31: .line 364
            aload 0 /* this */
            invokevirtual android.os.MessageQueue.dispose:()V
        32: .line 365
            aload 5
            monitorexit
        33: aconst_null
            areturn
        34: .line 371
      StackMap locals:
      StackMap stack:
            iload 3 /* pendingIdleHandlerCount */
            ifge 37
        35: .line 372
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            ifnull 36
            lload 6 /* now */
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            getfield android.os.Message.when:J
            lcmp
            ifge 37
        36: .line 373
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.os.MessageQueue.mIdleHandlers:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.size:()I
            istore 3 /* pendingIdleHandlerCount */
        37: .line 375
      StackMap locals:
      StackMap stack:
            iload 3 /* pendingIdleHandlerCount */
            ifgt 41
        38: .line 377
            aload 0 /* this */
            iconst_1
            putfield android.os.MessageQueue.mBlocked:Z
        39: .line 378
            aload 5
            monitorexit
        40: goto 5
        41: .line 381
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.os.MessageQueue.mPendingIdleHandlers:[Landroid/os/MessageQueue$IdleHandler;
            ifnonnull 43
        42: .line 382
            aload 0 /* this */
            iload 3 /* pendingIdleHandlerCount */
            iconst_4
            invokestatic java.lang.Math.max:(II)I
            anewarray android.os.MessageQueue$IdleHandler
            putfield android.os.MessageQueue.mPendingIdleHandlers:[Landroid/os/MessageQueue$IdleHandler;
        43: .line 384
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.os.MessageQueue.mIdleHandlers:Ljava/util/ArrayList;
            aload 0 /* this */
            getfield android.os.MessageQueue.mPendingIdleHandlers:[Landroid/os/MessageQueue$IdleHandler;
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast android.os.MessageQueue$IdleHandler[]
            putfield android.os.MessageQueue.mPendingIdleHandlers:[Landroid/os/MessageQueue$IdleHandler;
        end local 9 // android.os.Message msg
        end local 8 // android.os.Message prevMsg
        end local 6 // long now
        44: .line 328
            aload 5
            monitorexit
        45: goto 48
      StackMap locals: android.os.MessageQueue long int int android.os.MessageQueue
      StackMap stack: java.lang.Throwable
        46: aload 5
            monitorexit
        47: athrow
        48: .line 389
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        49: goto 65
        50: .line 390
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield android.os.MessageQueue.mPendingIdleHandlers:[Landroid/os/MessageQueue$IdleHandler;
            iload 5 /* i */
            aaload
            astore 6 /* idler */
        start local 6 // android.os.MessageQueue$IdleHandler idler
        51: .line 391
            aload 0 /* this */
            getfield android.os.MessageQueue.mPendingIdleHandlers:[Landroid/os/MessageQueue$IdleHandler;
            iload 5 /* i */
            aconst_null
            aastore
        52: .line 393
            iconst_0
            istore 7 /* keep */
        start local 7 // boolean keep
        53: .line 395
            aload 6 /* idler */
            invokeinterface android.os.MessageQueue$IdleHandler.queueIdle:()Z
            istore 7 /* keep */
        54: .line 396
            goto 57
      StackMap locals: android.os.MessageQueue long int int int android.os.MessageQueue$IdleHandler int
      StackMap stack: java.lang.Throwable
        55: astore 8 /* t */
        start local 8 // java.lang.Throwable t
        56: .line 397
            ldc "MessageQueue"
            ldc "IdleHandler threw exception"
            aload 8 /* t */
            invokestatic android.util.Log.wtf:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 8 // java.lang.Throwable t
        57: .line 400
      StackMap locals:
      StackMap stack:
            iload 7 /* keep */
            ifne 64
        58: .line 401
            aload 0 /* this */
            dup
            astore 8
            monitorenter
        59: .line 402
            aload 0 /* this */
            getfield android.os.MessageQueue.mIdleHandlers:Ljava/util/ArrayList;
            aload 6 /* idler */
            invokevirtual java.util.ArrayList.remove:(Ljava/lang/Object;)Z
            pop
        60: .line 401
            aload 8
            monitorexit
        61: goto 64
      StackMap locals: android.os.MessageQueue long int int int android.os.MessageQueue$IdleHandler int android.os.MessageQueue
      StackMap stack: java.lang.Throwable
        62: aload 8
            monitorexit
        63: athrow
        end local 7 // boolean keep
        end local 6 // android.os.MessageQueue$IdleHandler idler
        64: .line 389
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        65: iload 5 /* i */
            iload 3 /* pendingIdleHandlerCount */
            if_icmplt 50
        end local 5 // int i
        66: .line 408
            iconst_0
            istore 3 /* pendingIdleHandlerCount */
        67: .line 412
            iconst_0
            istore 4 /* nextPollTimeoutMillis */
        68: .line 321
            goto 5
        end local 4 // int nextPollTimeoutMillis
        end local 3 // int pendingIdleHandlerCount
        end local 1 // long ptr
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot                     Name  Signature
            0   69     0                     this  Landroid/os/MessageQueue;
            1   69     1                      ptr  J
            4   69     3  pendingIdleHandlerCount  I
            5   69     4    nextPollTimeoutMillis  I
           10   44     6                      now  J
           11   44     8                  prevMsg  Landroid/os/Message;
           12   44     9                      msg  Landroid/os/Message;
           49   66     5                        i  I
           51   64     6                    idler  Landroid/os/MessageQueue$IdleHandler;
           53   64     7                     keep  Z
           56   57     8                        t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           9    28      46  any
          29    33      46  any
          34    40      46  any
          41    45      46  any
          46    47      46  any
          53    54      55  Class java.lang.Throwable
          59    61      62  any
          62    63      62  any

  void quit(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.os.MessageQueue this
        start local 1 // boolean safe
         0: .line 417
            aload 0 /* this */
            getfield android.os.MessageQueue.mQuitAllowed:Z
            ifne 2
         1: .line 418
            new java.lang.IllegalStateException
            dup
            ldc "Main thread not allowed to quit."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 421
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         3: .line 422
            aload 0 /* this */
            getfield android.os.MessageQueue.mQuitting:Z
            ifeq 6
         4: .line 423
            aload 2
            monitorexit
         5: return
         6: .line 425
      StackMap locals: android.os.MessageQueue
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.os.MessageQueue.mQuitting:Z
         7: .line 427
            iload 1 /* safe */
            ifeq 10
         8: .line 428
            aload 0 /* this */
            invokevirtual android.os.MessageQueue.removeAllFutureMessagesLocked:()V
         9: .line 429
            goto 11
        10: .line 430
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.os.MessageQueue.removeAllMessagesLocked:()V
        11: .line 434
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.os.MessageQueue.mPtr:J
            invokestatic android.os.MessageQueue.nativeWake:(J)V
        12: .line 421
            aload 2
            monitorexit
        13: goto 16
      StackMap locals:
      StackMap stack: java.lang.Throwable
        14: aload 2
            monitorexit
        15: athrow
        16: .line 436
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean safe
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Landroid/os/MessageQueue;
            0   17     1  safe  Z
      Exception table:
        from    to  target  type
           3     5      14  any
           6    13      14  any
          14    15      14  any
    MethodParameters:
      Name  Flags
      safe  

  public int postSyncBarrier();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.os.MessageQueue this
         0: .line 462
            aload 0 /* this */
            invokestatic android.os.SystemClock.uptimeMillis:()J
            invokevirtual android.os.MessageQueue.postSyncBarrier:(J)I
            ireturn
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/os/MessageQueue;

  private int postSyncBarrier(long);
    descriptor: (J)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // android.os.MessageQueue this
        start local 1 // long when
         0: .line 468
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         1: .line 469
            aload 0 /* this */
            dup
            getfield android.os.MessageQueue.mNextBarrierToken:I
            dup_x1
            iconst_1
            iadd
            putfield android.os.MessageQueue.mNextBarrierToken:I
            istore 4 /* token */
        start local 4 // int token
         2: .line 470
            invokestatic android.os.Message.obtain:()Landroid/os/Message;
            astore 5 /* msg */
        start local 5 // android.os.Message msg
         3: .line 471
            aload 5 /* msg */
            invokevirtual android.os.Message.markInUse:()V
         4: .line 472
            aload 5 /* msg */
            lload 1 /* when */
            putfield android.os.Message.when:J
         5: .line 473
            aload 5 /* msg */
            iload 4 /* token */
            putfield android.os.Message.arg1:I
         6: .line 475
            aconst_null
            astore 6 /* prev */
        start local 6 // android.os.Message prev
         7: .line 476
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            astore 7 /* p */
        start local 7 // android.os.Message p
         8: .line 477
            lload 1 /* when */
            lconst_0
            lcmp
            ifeq 13
         9: .line 478
            goto 12
        10: .line 479
      StackMap locals: android.os.MessageQueue long android.os.MessageQueue int android.os.Message android.os.Message android.os.Message
      StackMap stack:
            aload 7 /* p */
            astore 6 /* prev */
        11: .line 480
            aload 7 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 7 /* p */
        12: .line 478
      StackMap locals:
      StackMap stack:
            aload 7 /* p */
            ifnull 13
            aload 7 /* p */
            getfield android.os.Message.when:J
            lload 1 /* when */
            lcmp
            ifle 10
        13: .line 483
      StackMap locals:
      StackMap stack:
            aload 6 /* prev */
            ifnull 17
        14: .line 484
            aload 5 /* msg */
            aload 7 /* p */
            putfield android.os.Message.next:Landroid/os/Message;
        15: .line 485
            aload 6 /* prev */
            aload 5 /* msg */
            putfield android.os.Message.next:Landroid/os/Message;
        16: .line 486
            goto 19
        17: .line 487
      StackMap locals:
      StackMap stack:
            aload 5 /* msg */
            aload 7 /* p */
            putfield android.os.Message.next:Landroid/os/Message;
        18: .line 488
            aload 0 /* this */
            aload 5 /* msg */
            putfield android.os.MessageQueue.mMessages:Landroid/os/Message;
        19: .line 490
      StackMap locals:
      StackMap stack:
            iload 4 /* token */
            aload 3
            monitorexit
        20: ireturn
        end local 7 // android.os.Message p
        end local 6 // android.os.Message prev
        end local 5 // android.os.Message msg
        end local 4 // int token
        21: .line 468
      StackMap locals: android.os.MessageQueue long android.os.MessageQueue
      StackMap stack: java.lang.Throwable
            aload 3
            monitorexit
        22: athrow
        end local 1 // long when
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   23     0   this  Landroid/os/MessageQueue;
            0   23     1   when  J
            2   21     4  token  I
            3   21     5    msg  Landroid/os/Message;
            7   21     6   prev  Landroid/os/Message;
            8   21     7      p  Landroid/os/Message;
      Exception table:
        from    to  target  type
           1    20      21  any
          21    22      21  any
    MethodParameters:
      Name  Flags
      when  

  public void removeSyncBarrier(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // android.os.MessageQueue this
        start local 1 // int token
         0: .line 507
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         1: .line 508
            aconst_null
            astore 3 /* prev */
        start local 3 // android.os.Message prev
         2: .line 509
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            astore 4 /* p */
        start local 4 // android.os.Message p
         3: .line 510
            goto 6
         4: .line 511
      StackMap locals: android.os.MessageQueue android.os.Message android.os.Message
      StackMap stack:
            aload 4 /* p */
            astore 3 /* prev */
         5: .line 512
            aload 4 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 4 /* p */
         6: .line 510
      StackMap locals:
      StackMap stack:
            aload 4 /* p */
            ifnull 7
            aload 4 /* p */
            getfield android.os.Message.target:Landroid/os/Handler;
            ifnonnull 4
            aload 4 /* p */
            getfield android.os.Message.arg1:I
            iload 1 /* token */
            if_icmpne 4
         7: .line 514
      StackMap locals:
      StackMap stack:
            aload 4 /* p */
            ifnonnull 9
         8: .line 515
            new java.lang.IllegalStateException
            dup
            ldc "The specified message queue synchronization  barrier token has not been posted or has already been removed."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 519
      StackMap locals:
      StackMap stack:
            aload 3 /* prev */
            ifnull 13
        10: .line 520
            aload 3 /* prev */
            aload 4 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            putfield android.os.Message.next:Landroid/os/Message;
        11: .line 521
            iconst_0
            istore 5 /* needWake */
        start local 5 // boolean needWake
        12: .line 522
            goto 17
        end local 5 // boolean needWake
        13: .line 523
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 4 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            putfield android.os.MessageQueue.mMessages:Landroid/os/Message;
        14: .line 524
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            ifnull 15
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            getfield android.os.Message.target:Landroid/os/Handler;
            ifnonnull 15
            iconst_0
            goto 16
      StackMap locals:
      StackMap stack:
        15: iconst_1
      StackMap locals:
      StackMap stack: int
        16: istore 5 /* needWake */
        start local 5 // boolean needWake
        17: .line 526
      StackMap locals: int
      StackMap stack:
            aload 4 /* p */
            invokevirtual android.os.Message.recycleUnchecked:()V
        18: .line 530
            iload 5 /* needWake */
            ifeq 20
            aload 0 /* this */
            getfield android.os.MessageQueue.mQuitting:Z
            ifne 20
        19: .line 531
            aload 0 /* this */
            getfield android.os.MessageQueue.mPtr:J
            invokestatic android.os.MessageQueue.nativeWake:(J)V
        end local 5 // boolean needWake
        end local 4 // android.os.Message p
        end local 3 // android.os.Message prev
        20: .line 507
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
        21: goto 24
      StackMap locals:
      StackMap stack: java.lang.Throwable
        22: aload 2
            monitorexit
        23: athrow
        24: .line 534
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int token
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   25     0      this  Landroid/os/MessageQueue;
            0   25     1     token  I
            2   20     3      prev  Landroid/os/Message;
            3   20     4         p  Landroid/os/Message;
           12   13     5  needWake  Z
           17   20     5  needWake  Z
      Exception table:
        from    to  target  type
           1    21      22  any
          22    23      22  any
    MethodParameters:
       Name  Flags
      token  

  boolean enqueueMessage(android.os.Message, long);
    descriptor: (Landroid/os/Message;J)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=8, args_size=3
        start local 0 // android.os.MessageQueue this
        start local 1 // android.os.Message msg
        start local 2 // long when
         0: .line 537
            aload 1 /* msg */
            getfield android.os.Message.target:Landroid/os/Handler;
            ifnonnull 2
         1: .line 538
            new java.lang.IllegalArgumentException
            dup
            ldc "Message must have a target."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 540
      StackMap locals:
      StackMap stack:
            aload 1 /* msg */
            invokevirtual android.os.Message.isInUse:()Z
            ifeq 4
         3: .line 541
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* msg */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " This message is already in use."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 544
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         5: .line 545
            aload 0 /* this */
            getfield android.os.MessageQueue.mQuitting:Z
            ifeq 13
         6: .line 546
            new java.lang.IllegalStateException
            dup
         7: .line 547
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 1 /* msg */
            getfield android.os.Message.target:Landroid/os/Handler;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " sending message to a Handler on a dead thread"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 546
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            astore 5 /* e */
        start local 5 // java.lang.IllegalStateException e
         9: .line 548
            ldc "MessageQueue"
            aload 5 /* e */
            invokevirtual java.lang.IllegalStateException.getMessage:()Ljava/lang/String;
            aload 5 /* e */
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        10: .line 549
            aload 1 /* msg */
            invokevirtual android.os.Message.recycle:()V
        11: .line 550
            aload 4
            monitorexit
        12: iconst_0
            ireturn
        end local 5 // java.lang.IllegalStateException e
        13: .line 553
      StackMap locals: android.os.MessageQueue
      StackMap stack:
            aload 1 /* msg */
            invokevirtual android.os.Message.markInUse:()V
        14: .line 554
            aload 1 /* msg */
            lload 2 /* when */
            putfield android.os.Message.when:J
        15: .line 555
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            astore 5 /* p */
        start local 5 // android.os.Message p
        16: .line 557
            aload 5 /* p */
            ifnull 17
            lload 2 /* when */
            lconst_0
            lcmp
            ifeq 17
            lload 2 /* when */
            aload 5 /* p */
            getfield android.os.Message.when:J
            lcmp
            ifge 21
        17: .line 559
      StackMap locals: android.os.Message
      StackMap stack:
            aload 1 /* msg */
            aload 5 /* p */
            putfield android.os.Message.next:Landroid/os/Message;
        18: .line 560
            aload 0 /* this */
            aload 1 /* msg */
            putfield android.os.MessageQueue.mMessages:Landroid/os/Message;
        19: .line 561
            aload 0 /* this */
            getfield android.os.MessageQueue.mBlocked:Z
            istore 6 /* needWake */
        start local 6 // boolean needWake
        20: .line 562
            goto 33
        end local 6 // boolean needWake
        21: .line 566
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.os.MessageQueue.mBlocked:Z
            ifeq 22
            aload 5 /* p */
            getfield android.os.Message.target:Landroid/os/Handler;
            ifnonnull 22
            aload 1 /* msg */
            invokevirtual android.os.Message.isAsynchronous:()Z
            ifeq 22
            iconst_1
            goto 23
      StackMap locals:
      StackMap stack:
        22: iconst_0
      StackMap locals:
      StackMap stack: int
        23: istore 6 /* needWake */
        start local 6 // boolean needWake
        24: .line 569
      StackMap locals: int
      StackMap stack:
            aload 5 /* p */
            astore 7 /* prev */
        start local 7 // android.os.Message prev
        25: .line 570
            aload 5 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 5 /* p */
        26: .line 571
            aload 5 /* p */
            ifnull 31
            lload 2 /* when */
            aload 5 /* p */
            getfield android.os.Message.when:J
            lcmp
            ifge 28
        27: .line 572
            goto 31
        28: .line 574
      StackMap locals: android.os.Message
      StackMap stack:
            iload 6 /* needWake */
            ifeq 24
            aload 5 /* p */
            invokevirtual android.os.Message.isAsynchronous:()Z
            ifeq 24
        29: .line 575
            iconst_0
            istore 6 /* needWake */
        end local 7 // android.os.Message prev
        30: .line 568
            goto 24
        start local 7 // android.os.Message prev
        31: .line 578
      StackMap locals:
      StackMap stack:
            aload 1 /* msg */
            aload 5 /* p */
            putfield android.os.Message.next:Landroid/os/Message;
        32: .line 579
            aload 7 /* prev */
            aload 1 /* msg */
            putfield android.os.Message.next:Landroid/os/Message;
        end local 7 // android.os.Message prev
        33: .line 583
      StackMap locals:
      StackMap stack:
            iload 6 /* needWake */
            ifeq 35
        34: .line 584
            aload 0 /* this */
            getfield android.os.MessageQueue.mPtr:J
            invokestatic android.os.MessageQueue.nativeWake:(J)V
        end local 6 // boolean needWake
        end local 5 // android.os.Message p
        35: .line 544
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
        36: goto 39
      StackMap locals:
      StackMap stack: java.lang.Throwable
        37: aload 4
            monitorexit
        38: athrow
        39: .line 587
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // long when
        end local 1 // android.os.Message msg
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   40     0      this  Landroid/os/MessageQueue;
            0   40     1       msg  Landroid/os/Message;
            0   40     2      when  J
            9   13     5         e  Ljava/lang/IllegalStateException;
           16   35     5         p  Landroid/os/Message;
           20   21     6  needWake  Z
           24   35     6  needWake  Z
           25   30     7      prev  Landroid/os/Message;
           31   33     7      prev  Landroid/os/Message;
      Exception table:
        from    to  target  type
           5    12      37  any
          13    36      37  any
          37    38      37  any
    MethodParameters:
      Name  Flags
      msg   
      when  

  boolean hasMessages(android.os.Handler, int, java.lang.Object);
    descriptor: (Landroid/os/Handler;ILjava/lang/Object;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // android.os.MessageQueue this
        start local 1 // android.os.Handler h
        start local 2 // int what
        start local 3 // java.lang.Object object
         0: .line 591
            aload 1 /* h */
            ifnonnull 2
         1: .line 592
            iconst_0
            ireturn
         2: .line 595
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         3: .line 596
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            astore 5 /* p */
        start local 5 // android.os.Message p
         4: .line 597
            goto 9
         5: .line 598
      StackMap locals: android.os.MessageQueue android.os.Message
      StackMap stack:
            aload 5 /* p */
            getfield android.os.Message.target:Landroid/os/Handler;
            aload 1 /* h */
            if_acmpne 8
            aload 5 /* p */
            getfield android.os.Message.what:I
            iload 2 /* what */
            if_icmpne 8
            aload 3 /* object */
            ifnull 6
            aload 5 /* p */
            getfield android.os.Message.obj:Ljava/lang/Object;
            aload 3 /* object */
            if_acmpne 8
         6: .line 599
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
         7: iconst_1
            ireturn
         8: .line 601
      StackMap locals:
      StackMap stack:
            aload 5 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 5 /* p */
         9: .line 597
      StackMap locals:
      StackMap stack:
            aload 5 /* p */
            ifnonnull 5
        10: .line 603
            aload 4
            monitorexit
        11: iconst_0
            ireturn
        end local 5 // android.os.Message p
        12: .line 595
      StackMap locals: android.os.MessageQueue android.os.Handler int java.lang.Object android.os.MessageQueue
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
        13: athrow
        end local 3 // java.lang.Object object
        end local 2 // int what
        end local 1 // android.os.Handler h
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Landroid/os/MessageQueue;
            0   14     1       h  Landroid/os/Handler;
            0   14     2    what  I
            0   14     3  object  Ljava/lang/Object;
            4   12     5       p  Landroid/os/Message;
      Exception table:
        from    to  target  type
           3     7      12  any
           8    11      12  any
          12    13      12  any
    MethodParameters:
        Name  Flags
      h       
      what    
      object  

  boolean hasMessages(android.os.Handler, java.lang.Runnable, java.lang.Object);
    descriptor: (Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/Object;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=4
        start local 0 // android.os.MessageQueue this
        start local 1 // android.os.Handler h
        start local 2 // java.lang.Runnable r
        start local 3 // java.lang.Object object
         0: .line 608
            aload 1 /* h */
            ifnonnull 2
         1: .line 609
            iconst_0
            ireturn
         2: .line 612
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         3: .line 613
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            astore 5 /* p */
        start local 5 // android.os.Message p
         4: .line 614
            goto 9
         5: .line 615
      StackMap locals: android.os.MessageQueue android.os.Message
      StackMap stack:
            aload 5 /* p */
            getfield android.os.Message.target:Landroid/os/Handler;
            aload 1 /* h */
            if_acmpne 8
            aload 5 /* p */
            getfield android.os.Message.callback:Ljava/lang/Runnable;
            aload 2 /* r */
            if_acmpne 8
            aload 3 /* object */
            ifnull 6
            aload 5 /* p */
            getfield android.os.Message.obj:Ljava/lang/Object;
            aload 3 /* object */
            if_acmpne 8
         6: .line 616
      StackMap locals:
      StackMap stack:
            aload 4
            monitorexit
         7: iconst_1
            ireturn
         8: .line 618
      StackMap locals:
      StackMap stack:
            aload 5 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 5 /* p */
         9: .line 614
      StackMap locals:
      StackMap stack:
            aload 5 /* p */
            ifnonnull 5
        10: .line 620
            aload 4
            monitorexit
        11: iconst_0
            ireturn
        end local 5 // android.os.Message p
        12: .line 612
      StackMap locals: android.os.MessageQueue android.os.Handler java.lang.Runnable java.lang.Object android.os.MessageQueue
      StackMap stack: java.lang.Throwable
            aload 4
            monitorexit
        13: athrow
        end local 3 // java.lang.Object object
        end local 2 // java.lang.Runnable r
        end local 1 // android.os.Handler h
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   14     0    this  Landroid/os/MessageQueue;
            0   14     1       h  Landroid/os/Handler;
            0   14     2       r  Ljava/lang/Runnable;
            0   14     3  object  Ljava/lang/Object;
            4   12     5       p  Landroid/os/Message;
      Exception table:
        from    to  target  type
           3     7      12  any
           8    11      12  any
          12    13      12  any
    MethodParameters:
        Name  Flags
      h       
      r       
      object  

  boolean hasMessages(android.os.Handler);
    descriptor: (Landroid/os/Handler;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // android.os.MessageQueue this
        start local 1 // android.os.Handler h
         0: .line 625
            aload 1 /* h */
            ifnonnull 2
         1: .line 626
            iconst_0
            ireturn
         2: .line 629
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 2
            monitorenter
         3: .line 630
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            astore 3 /* p */
        start local 3 // android.os.Message p
         4: .line 631
            goto 9
         5: .line 632
      StackMap locals: android.os.MessageQueue android.os.Message
      StackMap stack:
            aload 3 /* p */
            getfield android.os.Message.target:Landroid/os/Handler;
            aload 1 /* h */
            if_acmpne 8
         6: .line 633
            aload 2
            monitorexit
         7: iconst_1
            ireturn
         8: .line 635
      StackMap locals:
      StackMap stack:
            aload 3 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 3 /* p */
         9: .line 631
      StackMap locals:
      StackMap stack:
            aload 3 /* p */
            ifnonnull 5
        10: .line 637
            aload 2
            monitorexit
        11: iconst_0
            ireturn
        end local 3 // android.os.Message p
        12: .line 629
      StackMap locals: android.os.MessageQueue android.os.Handler android.os.MessageQueue
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        13: athrow
        end local 1 // android.os.Handler h
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Landroid/os/MessageQueue;
            0   14     1     h  Landroid/os/Handler;
            4   12     3     p  Landroid/os/Message;
      Exception table:
        from    to  target  type
           3     7      12  any
           8    11      12  any
          12    13      12  any
    MethodParameters:
      Name  Flags
      h     

  void removeMessages(android.os.Handler, int, java.lang.Object);
    descriptor: (Landroid/os/Handler;ILjava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=8, args_size=4
        start local 0 // android.os.MessageQueue this
        start local 1 // android.os.Handler h
        start local 2 // int what
        start local 3 // java.lang.Object object
         0: .line 642
            aload 1 /* h */
            ifnonnull 2
         1: .line 643
            return
         2: .line 646
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         3: .line 647
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            astore 5 /* p */
        start local 5 // android.os.Message p
         4: .line 650
            goto 9
         5: .line 652
      StackMap locals: android.os.MessageQueue android.os.Message
      StackMap stack:
            aload 5 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 6 /* n */
        start local 6 // android.os.Message n
         6: .line 653
            aload 0 /* this */
            aload 6 /* n */
            putfield android.os.MessageQueue.mMessages:Landroid/os/Message;
         7: .line 654
            aload 5 /* p */
            invokevirtual android.os.Message.recycleUnchecked:()V
         8: .line 655
            aload 6 /* n */
            astore 5 /* p */
        end local 6 // android.os.Message n
         9: .line 650
      StackMap locals:
      StackMap stack:
            aload 5 /* p */
            ifnull 21
            aload 5 /* p */
            getfield android.os.Message.target:Landroid/os/Handler;
            aload 1 /* h */
            if_acmpne 21
            aload 5 /* p */
            getfield android.os.Message.what:I
            iload 2 /* what */
            if_icmpne 21
        10: .line 651
            aload 3 /* object */
            ifnull 5
            aload 5 /* p */
            getfield android.os.Message.obj:Ljava/lang/Object;
            aload 3 /* object */
            if_acmpeq 5
        11: .line 659
            goto 21
        12: .line 660
      StackMap locals:
      StackMap stack:
            aload 5 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 6 /* n */
        start local 6 // android.os.Message n
        13: .line 661
            aload 6 /* n */
            ifnull 20
        14: .line 662
            aload 6 /* n */
            getfield android.os.Message.target:Landroid/os/Handler;
            aload 1 /* h */
            if_acmpne 20
            aload 6 /* n */
            getfield android.os.Message.what:I
            iload 2 /* what */
            if_icmpne 20
        15: .line 663
            aload 3 /* object */
            ifnull 16
            aload 6 /* n */
            getfield android.os.Message.obj:Ljava/lang/Object;
            aload 3 /* object */
            if_acmpne 20
        16: .line 664
      StackMap locals: android.os.Message
      StackMap stack:
            aload 6 /* n */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 7 /* nn */
        start local 7 // android.os.Message nn
        17: .line 665
            aload 6 /* n */
            invokevirtual android.os.Message.recycleUnchecked:()V
        18: .line 666
            aload 5 /* p */
            aload 7 /* nn */
            putfield android.os.Message.next:Landroid/os/Message;
        19: .line 667
            goto 21
        end local 7 // android.os.Message nn
        20: .line 670
      StackMap locals:
      StackMap stack:
            aload 6 /* n */
            astore 5 /* p */
        end local 6 // android.os.Message n
        21: .line 659
      StackMap locals:
      StackMap stack:
            aload 5 /* p */
            ifnonnull 12
        end local 5 // android.os.Message p
        22: .line 646
            aload 4
            monitorexit
        23: goto 26
      StackMap locals: android.os.MessageQueue android.os.Handler int java.lang.Object android.os.MessageQueue
      StackMap stack: java.lang.Throwable
        24: aload 4
            monitorexit
        25: athrow
        26: .line 673
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object object
        end local 2 // int what
        end local 1 // android.os.Handler h
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   27     0    this  Landroid/os/MessageQueue;
            0   27     1       h  Landroid/os/Handler;
            0   27     2    what  I
            0   27     3  object  Ljava/lang/Object;
            4   22     5       p  Landroid/os/Message;
            6    9     6       n  Landroid/os/Message;
           13   21     6       n  Landroid/os/Message;
           17   20     7      nn  Landroid/os/Message;
      Exception table:
        from    to  target  type
           3    23      24  any
          24    25      24  any
    MethodParameters:
        Name  Flags
      h       
      what    
      object  

  void removeMessages(android.os.Handler, java.lang.Runnable, java.lang.Object);
    descriptor: (Landroid/os/Handler;Ljava/lang/Runnable;Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=8, args_size=4
        start local 0 // android.os.MessageQueue this
        start local 1 // android.os.Handler h
        start local 2 // java.lang.Runnable r
        start local 3 // java.lang.Object object
         0: .line 676
            aload 1 /* h */
            ifnull 1
            aload 2 /* r */
            ifnonnull 2
         1: .line 677
      StackMap locals:
      StackMap stack:
            return
         2: .line 680
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         3: .line 681
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            astore 5 /* p */
        start local 5 // android.os.Message p
         4: .line 684
            goto 9
         5: .line 686
      StackMap locals: android.os.MessageQueue android.os.Message
      StackMap stack:
            aload 5 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 6 /* n */
        start local 6 // android.os.Message n
         6: .line 687
            aload 0 /* this */
            aload 6 /* n */
            putfield android.os.MessageQueue.mMessages:Landroid/os/Message;
         7: .line 688
            aload 5 /* p */
            invokevirtual android.os.Message.recycleUnchecked:()V
         8: .line 689
            aload 6 /* n */
            astore 5 /* p */
        end local 6 // android.os.Message n
         9: .line 684
      StackMap locals:
      StackMap stack:
            aload 5 /* p */
            ifnull 21
            aload 5 /* p */
            getfield android.os.Message.target:Landroid/os/Handler;
            aload 1 /* h */
            if_acmpne 21
            aload 5 /* p */
            getfield android.os.Message.callback:Ljava/lang/Runnable;
            aload 2 /* r */
            if_acmpne 21
        10: .line 685
            aload 3 /* object */
            ifnull 5
            aload 5 /* p */
            getfield android.os.Message.obj:Ljava/lang/Object;
            aload 3 /* object */
            if_acmpeq 5
        11: .line 693
            goto 21
        12: .line 694
      StackMap locals:
      StackMap stack:
            aload 5 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 6 /* n */
        start local 6 // android.os.Message n
        13: .line 695
            aload 6 /* n */
            ifnull 20
        14: .line 696
            aload 6 /* n */
            getfield android.os.Message.target:Landroid/os/Handler;
            aload 1 /* h */
            if_acmpne 20
            aload 6 /* n */
            getfield android.os.Message.callback:Ljava/lang/Runnable;
            aload 2 /* r */
            if_acmpne 20
        15: .line 697
            aload 3 /* object */
            ifnull 16
            aload 6 /* n */
            getfield android.os.Message.obj:Ljava/lang/Object;
            aload 3 /* object */
            if_acmpne 20
        16: .line 698
      StackMap locals: android.os.Message
      StackMap stack:
            aload 6 /* n */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 7 /* nn */
        start local 7 // android.os.Message nn
        17: .line 699
            aload 6 /* n */
            invokevirtual android.os.Message.recycleUnchecked:()V
        18: .line 700
            aload 5 /* p */
            aload 7 /* nn */
            putfield android.os.Message.next:Landroid/os/Message;
        19: .line 701
            goto 21
        end local 7 // android.os.Message nn
        20: .line 704
      StackMap locals:
      StackMap stack:
            aload 6 /* n */
            astore 5 /* p */
        end local 6 // android.os.Message n
        21: .line 693
      StackMap locals:
      StackMap stack:
            aload 5 /* p */
            ifnonnull 12
        end local 5 // android.os.Message p
        22: .line 680
            aload 4
            monitorexit
        23: goto 26
      StackMap locals: android.os.MessageQueue android.os.Handler java.lang.Runnable java.lang.Object android.os.MessageQueue
      StackMap stack: java.lang.Throwable
        24: aload 4
            monitorexit
        25: athrow
        26: .line 707
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.Object object
        end local 2 // java.lang.Runnable r
        end local 1 // android.os.Handler h
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   27     0    this  Landroid/os/MessageQueue;
            0   27     1       h  Landroid/os/Handler;
            0   27     2       r  Ljava/lang/Runnable;
            0   27     3  object  Ljava/lang/Object;
            4   22     5       p  Landroid/os/Message;
            6    9     6       n  Landroid/os/Message;
           13   21     6       n  Landroid/os/Message;
           17   20     7      nn  Landroid/os/Message;
      Exception table:
        from    to  target  type
           3    23      24  any
          24    25      24  any
    MethodParameters:
        Name  Flags
      h       
      r       
      object  

  void removeCallbacksAndMessages(android.os.Handler, java.lang.Object);
    descriptor: (Landroid/os/Handler;Ljava/lang/Object;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // android.os.MessageQueue this
        start local 1 // android.os.Handler h
        start local 2 // java.lang.Object object
         0: .line 710
            aload 1 /* h */
            ifnonnull 2
         1: .line 711
            return
         2: .line 714
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         3: .line 715
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            astore 4 /* p */
        start local 4 // android.os.Message p
         4: .line 718
            goto 9
         5: .line 720
      StackMap locals: android.os.MessageQueue android.os.Message
      StackMap stack:
            aload 4 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 5 /* n */
        start local 5 // android.os.Message n
         6: .line 721
            aload 0 /* this */
            aload 5 /* n */
            putfield android.os.MessageQueue.mMessages:Landroid/os/Message;
         7: .line 722
            aload 4 /* p */
            invokevirtual android.os.Message.recycleUnchecked:()V
         8: .line 723
            aload 5 /* n */
            astore 4 /* p */
        end local 5 // android.os.Message n
         9: .line 718
      StackMap locals:
      StackMap stack:
            aload 4 /* p */
            ifnull 20
            aload 4 /* p */
            getfield android.os.Message.target:Landroid/os/Handler;
            aload 1 /* h */
            if_acmpne 20
        10: .line 719
            aload 2 /* object */
            ifnull 5
            aload 4 /* p */
            getfield android.os.Message.obj:Ljava/lang/Object;
            aload 2 /* object */
            if_acmpeq 5
        11: .line 727
            goto 20
        12: .line 728
      StackMap locals:
      StackMap stack:
            aload 4 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 5 /* n */
        start local 5 // android.os.Message n
        13: .line 729
            aload 5 /* n */
            ifnull 19
        14: .line 730
            aload 5 /* n */
            getfield android.os.Message.target:Landroid/os/Handler;
            aload 1 /* h */
            if_acmpne 19
            aload 2 /* object */
            ifnull 15
            aload 5 /* n */
            getfield android.os.Message.obj:Ljava/lang/Object;
            aload 2 /* object */
            if_acmpne 19
        15: .line 731
      StackMap locals: android.os.Message
      StackMap stack:
            aload 5 /* n */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 6 /* nn */
        start local 6 // android.os.Message nn
        16: .line 732
            aload 5 /* n */
            invokevirtual android.os.Message.recycleUnchecked:()V
        17: .line 733
            aload 4 /* p */
            aload 6 /* nn */
            putfield android.os.Message.next:Landroid/os/Message;
        18: .line 734
            goto 20
        end local 6 // android.os.Message nn
        19: .line 737
      StackMap locals:
      StackMap stack:
            aload 5 /* n */
            astore 4 /* p */
        end local 5 // android.os.Message n
        20: .line 727
      StackMap locals:
      StackMap stack:
            aload 4 /* p */
            ifnonnull 12
        end local 4 // android.os.Message p
        21: .line 714
            aload 3
            monitorexit
        22: goto 25
      StackMap locals: android.os.MessageQueue android.os.Handler java.lang.Object android.os.MessageQueue
      StackMap stack: java.lang.Throwable
        23: aload 3
            monitorexit
        24: athrow
        25: .line 740
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Object object
        end local 1 // android.os.Handler h
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   26     0    this  Landroid/os/MessageQueue;
            0   26     1       h  Landroid/os/Handler;
            0   26     2  object  Ljava/lang/Object;
            4   21     4       p  Landroid/os/Message;
            6    9     5       n  Landroid/os/Message;
           13   20     5       n  Landroid/os/Message;
           16   19     6      nn  Landroid/os/Message;
      Exception table:
        from    to  target  type
           3    22      23  any
          23    24      23  any
    MethodParameters:
        Name  Flags
      h       
      object  

  private void removeAllMessagesLocked();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.os.MessageQueue this
         0: .line 743
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            astore 1 /* p */
        start local 1 // android.os.Message p
         1: .line 744
            goto 5
         2: .line 745
      StackMap locals: android.os.Message
      StackMap stack:
            aload 1 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 2 /* n */
        start local 2 // android.os.Message n
         3: .line 746
            aload 1 /* p */
            invokevirtual android.os.Message.recycleUnchecked:()V
         4: .line 747
            aload 2 /* n */
            astore 1 /* p */
        end local 2 // android.os.Message n
         5: .line 744
      StackMap locals:
      StackMap stack:
            aload 1 /* p */
            ifnonnull 2
         6: .line 749
            aload 0 /* this */
            aconst_null
            putfield android.os.MessageQueue.mMessages:Landroid/os/Message;
         7: .line 750
            return
        end local 1 // android.os.Message p
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/os/MessageQueue;
            1    8     1     p  Landroid/os/Message;
            3    5     2     n  Landroid/os/Message;

  private void removeAllFutureMessagesLocked();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=1
        start local 0 // android.os.MessageQueue this
         0: .line 753
            invokestatic android.os.SystemClock.uptimeMillis:()J
            lstore 1 /* now */
        start local 1 // long now
         1: .line 754
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            astore 3 /* p */
        start local 3 // android.os.Message p
         2: .line 755
            aload 3 /* p */
            ifnull 18
         3: .line 756
            aload 3 /* p */
            getfield android.os.Message.when:J
            lload 1 /* now */
            lcmp
            ifle 6
         4: .line 757
            aload 0 /* this */
            invokevirtual android.os.MessageQueue.removeAllMessagesLocked:()V
         5: .line 758
            goto 18
         6: .line 761
      StackMap locals: long android.os.Message
      StackMap stack:
            aload 3 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 4 /* n */
        start local 4 // android.os.Message n
         7: .line 762
            aload 4 /* n */
            ifnonnull 9
         8: .line 763
            return
         9: .line 765
      StackMap locals: android.os.Message
      StackMap stack:
            aload 4 /* n */
            getfield android.os.Message.when:J
            lload 1 /* now */
            lcmp
            ifle 11
        10: .line 766
            goto 13
        11: .line 768
      StackMap locals:
      StackMap stack:
            aload 4 /* n */
            astore 3 /* p */
        end local 4 // android.os.Message n
        12: .line 760
            goto 6
        start local 4 // android.os.Message n
        13: .line 770
      StackMap locals:
      StackMap stack:
            aload 3 /* p */
            aconst_null
            putfield android.os.Message.next:Landroid/os/Message;
        14: .line 772
      StackMap locals:
      StackMap stack:
            aload 4 /* n */
            astore 3 /* p */
        15: .line 773
            aload 3 /* p */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 4 /* n */
        16: .line 774
            aload 3 /* p */
            invokevirtual android.os.Message.recycleUnchecked:()V
        17: .line 775
            aload 4 /* n */
            ifnonnull 14
        end local 4 // android.os.Message n
        18: .line 778
      StackMap locals:
      StackMap stack:
            return
        end local 3 // android.os.Message p
        end local 1 // long now
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Landroid/os/MessageQueue;
            1   19     1   now  J
            2   19     3     p  Landroid/os/Message;
            7   12     4     n  Landroid/os/Message;
           13   18     4     n  Landroid/os/Message;

  void dump(android.util.Printer, java.lang.String, android.os.Handler);
    descriptor: (Landroid/util/Printer;Ljava/lang/String;Landroid/os/Handler;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=9, args_size=4
        start local 0 // android.os.MessageQueue this
        start local 1 // android.util.Printer pw
        start local 2 // java.lang.String prefix
        start local 3 // android.os.Handler h
         0: .line 781
            aload 0 /* this */
            dup
            astore 4
            monitorenter
         1: .line 782
            invokestatic android.os.SystemClock.uptimeMillis:()J
            lstore 5 /* now */
        start local 5 // long now
         2: .line 783
            iconst_0
            istore 7 /* n */
        start local 7 // int n
         3: .line 784
            aload 0 /* this */
            getfield android.os.MessageQueue.mMessages:Landroid/os/Message;
            astore 8 /* msg */
        start local 8 // android.os.Message msg
         4: goto 9
         5: .line 785
      StackMap locals: android.os.MessageQueue android.util.Printer java.lang.String android.os.Handler android.os.MessageQueue long int android.os.Message
      StackMap stack:
            aload 3 /* h */
            ifnull 6
            aload 3 /* h */
            aload 8 /* msg */
            getfield android.os.Message.target:Landroid/os/Handler;
            if_acmpne 7
         6: .line 786
      StackMap locals:
      StackMap stack:
            aload 1 /* pw */
            new java.lang.StringBuilder
            dup
            aload 2 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "Message "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* n */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* msg */
            lload 5 /* now */
            invokevirtual android.os.Message.toString:(J)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokeinterface android.util.Printer.println:(Ljava/lang/String;)V
         7: .line 788
      StackMap locals:
      StackMap stack:
            iinc 7 /* n */ 1
         8: .line 784
            aload 8 /* msg */
            getfield android.os.Message.next:Landroid/os/Message;
            astore 8 /* msg */
      StackMap locals:
      StackMap stack:
         9: aload 8 /* msg */
            ifnonnull 5
        end local 8 // android.os.Message msg
        10: .line 790
            aload 1 /* pw */
            new java.lang.StringBuilder
            dup
            aload 2 /* prefix */
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "(Total messages: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 7 /* n */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", polling="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual android.os.MessageQueue.isPollingLocked:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
        11: .line 791
            ldc ", quitting="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield android.os.MessageQueue.mQuitting:Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        12: .line 790
            invokeinterface android.util.Printer.println:(Ljava/lang/String;)V
        end local 7 // int n
        end local 5 // long now
        13: .line 781
            aload 4
            monitorexit
        14: goto 17
      StackMap locals: android.os.MessageQueue android.util.Printer java.lang.String android.os.Handler android.os.MessageQueue
      StackMap stack: java.lang.Throwable
        15: aload 4
            monitorexit
        16: athrow
        17: .line 793
      StackMap locals:
      StackMap stack:
            return
        end local 3 // android.os.Handler h
        end local 2 // java.lang.String prefix
        end local 1 // android.util.Printer pw
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   18     0    this  Landroid/os/MessageQueue;
            0   18     1      pw  Landroid/util/Printer;
            0   18     2  prefix  Ljava/lang/String;
            0   18     3       h  Landroid/os/Handler;
            2   13     5     now  J
            3   13     7       n  I
            4   10     8     msg  Landroid/os/Message;
      Exception table:
        from    to  target  type
           1    14      15  any
          15    16      15  any
    MethodParameters:
        Name  Flags
      pw      
      prefix  
      h       

  void writeToProto(android.util.proto.ProtoOutputStream, long);
    descriptor: (Landroid/util/proto/ProtoOutputStream;J)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.os.MessageQueue this
         0: .line 799
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tMessageQueueProto cannot be resolved to a variable\n\tMessageQueueProto cannot be resolved to a variable\n\tMessageQueueProto cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.os.MessageQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/os/MessageQueue;
    MethodParameters:
         Name  Flags
      proto    
      fieldId  
}
SourceFile: "MessageQueue.java"
NestMembers:
  android.os.MessageQueue$FileDescriptorRecord  android.os.MessageQueue$IdleHandler  android.os.MessageQueue$OnFileDescriptorEventListener  android.os.MessageQueue$OnFileDescriptorEventListener$Events
InnerClasses:
  private final FileDescriptorRecord = android.os.MessageQueue$FileDescriptorRecord of android.os.MessageQueue
  public abstract IdleHandler = android.os.MessageQueue$IdleHandler of android.os.MessageQueue
  public abstract OnFileDescriptorEventListener = android.os.MessageQueue$OnFileDescriptorEventListener of android.os.MessageQueue