final class android.app.LoadedApk$ServiceDispatcher
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: android.app.LoadedApk$ServiceDispatcher
  super_class: java.lang.Object
{
  private final android.app.LoadedApk$ServiceDispatcher$InnerConnection mIServiceConnection;
    descriptor: Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.content.ServiceConnection mConnection;
    descriptor: Landroid/content/ServiceConnection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.content.Context mContext;
    descriptor: Landroid/content/Context;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.os.Handler mActivityThread;
    descriptor: Landroid/os/Handler;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.app.ServiceConnectionLeaked mLocation;
    descriptor: Landroid/app/ServiceConnectionLeaked;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int mFlags;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.RuntimeException mUnbindLocation;
    descriptor: Ljava/lang/RuntimeException;
    flags: (0x0002) ACC_PRIVATE

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

  private final android.util.ArrayMap<android.content.ComponentName, android.app.LoadedApk$ServiceDispatcher$ConnectionInfo> mActiveConnections;
    descriptor: Landroid/util/ArrayMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Landroid/util/ArrayMap<Landroid/content/ComponentName;Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo;>;

  void <init>(android.content.ServiceConnection, android.content.Context, android.os.Handler, int);
    descriptor: (Landroid/content/ServiceConnection;Landroid/content/Context;Landroid/os/Handler;I)V
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=5
        start local 0 // android.app.LoadedApk$ServiceDispatcher this
        start local 1 // android.content.ServiceConnection conn
        start local 2 // android.content.Context context
        start local 3 // android.os.Handler activityThread
        start local 4 // int flags
         0: .line 1603
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 1600
            aload 0 /* this */
         2: .line 1601
            new android.util.ArrayMap
            dup
            invokespecial android.util.ArrayMap.<init>:()V
            putfield android.app.LoadedApk$ServiceDispatcher.mActiveConnections:Landroid/util/ArrayMap;
         3: .line 1605
            aload 0 /* this */
            new android.app.LoadedApk$ServiceDispatcher$InnerConnection
            dup
            aload 0 /* this */
            invokespecial android.app.LoadedApk$ServiceDispatcher$InnerConnection.<init>:(Landroid/app/LoadedApk$ServiceDispatcher;)V
            putfield android.app.LoadedApk$ServiceDispatcher.mIServiceConnection:Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;
         4: .line 1606
            aload 0 /* this */
            aload 1 /* conn */
            putfield android.app.LoadedApk$ServiceDispatcher.mConnection:Landroid/content/ServiceConnection;
         5: .line 1607
            aload 0 /* this */
            aload 2 /* context */
            putfield android.app.LoadedApk$ServiceDispatcher.mContext:Landroid/content/Context;
         6: .line 1608
            aload 0 /* this */
            aload 3 /* activityThread */
            putfield android.app.LoadedApk$ServiceDispatcher.mActivityThread:Landroid/os/Handler;
         7: .line 1609
            aload 0 /* this */
            new android.app.ServiceConnectionLeaked
            dup
            aconst_null
            invokespecial android.app.ServiceConnectionLeaked.<init>:(Ljava/lang/String;)V
            putfield android.app.LoadedApk$ServiceDispatcher.mLocation:Landroid/app/ServiceConnectionLeaked;
         8: .line 1610
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mLocation:Landroid/app/ServiceConnectionLeaked;
            invokevirtual android.app.ServiceConnectionLeaked.fillInStackTrace:()Ljava/lang/Throwable;
            pop
         9: .line 1611
            aload 0 /* this */
            iload 4 /* flags */
            putfield android.app.LoadedApk$ServiceDispatcher.mFlags:I
        10: .line 1612
            return
        end local 4 // int flags
        end local 3 // android.os.Handler activityThread
        end local 2 // android.content.Context context
        end local 1 // android.content.ServiceConnection conn
        end local 0 // android.app.LoadedApk$ServiceDispatcher this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Landroid/app/LoadedApk$ServiceDispatcher;
            0   11     1            conn  Landroid/content/ServiceConnection;
            0   11     2         context  Landroid/content/Context;
            0   11     3  activityThread  Landroid/os/Handler;
            0   11     4           flags  I
    MethodParameters:
                Name  Flags
      conn            
      context         
      activityThread  
      flags           

  void validate(android.content.Context, android.os.Handler);
    descriptor: (Landroid/content/Context;Landroid/os/Handler;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // android.app.LoadedApk$ServiceDispatcher this
        start local 1 // android.content.Context context
        start local 2 // android.os.Handler activityThread
         0: .line 1615
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mContext:Landroid/content/Context;
            aload 1 /* context */
            if_acmpeq 7
         1: .line 1616
            new java.lang.RuntimeException
            dup
         2: .line 1617
            new java.lang.StringBuilder
            dup
            ldc "ServiceConnection "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mConnection:Landroid/content/ServiceConnection;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         3: .line 1618
            ldc " registered with differing Context (was "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 1619
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mContext:Landroid/content/Context;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " now "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1 /* context */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 1617
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 1616
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1621
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mActivityThread:Landroid/os/Handler;
            aload 2 /* activityThread */
            if_acmpeq 14
         8: .line 1622
            new java.lang.RuntimeException
            dup
         9: .line 1623
            new java.lang.StringBuilder
            dup
            ldc "ServiceConnection "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mConnection:Landroid/content/ServiceConnection;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        10: .line 1624
            ldc " registered with differing handler (was "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        11: .line 1625
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mActivityThread:Landroid/os/Handler;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " now "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 2 /* activityThread */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        12: .line 1623
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 1622
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 1627
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.Handler activityThread
        end local 1 // android.content.Context context
        end local 0 // android.app.LoadedApk$ServiceDispatcher this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   15     0            this  Landroid/app/LoadedApk$ServiceDispatcher;
            0   15     1         context  Landroid/content/Context;
            0   15     2  activityThread  Landroid/os/Handler;
    MethodParameters:
                Name  Flags
      context         
      activityThread  

  void doForget();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // android.app.LoadedApk$ServiceDispatcher this
         0: .line 1630
            aload 0 /* this */
            dup
            astore 1
            monitorenter
         1: .line 1631
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 1632
      StackMap locals: android.app.LoadedApk$ServiceDispatcher int
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mActiveConnections:Landroid/util/ArrayMap;
            iload 2 /* i */
            invokevirtual android.util.ArrayMap.valueAt:(I)Ljava/lang/Object;
            checkcast android.app.LoadedApk$ServiceDispatcher$ConnectionInfo
            astore 3 /* ci */
        start local 3 // android.app.LoadedApk$ServiceDispatcher$ConnectionInfo ci
         4: .line 1633
            aload 3 /* ci */
            getfield android.app.LoadedApk$ServiceDispatcher$ConnectionInfo.binder:Landroid/os/IBinder;
            aload 3 /* ci */
            getfield android.app.LoadedApk$ServiceDispatcher$ConnectionInfo.deathMonitor:Landroid/os/IBinder$DeathRecipient;
            iconst_0
            invokeinterface android.os.IBinder.unlinkToDeath:(Landroid/os/IBinder$DeathRecipient;I)Z
            pop
        end local 3 // android.app.LoadedApk$ServiceDispatcher$ConnectionInfo ci
         5: .line 1631
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mActiveConnections:Landroid/util/ArrayMap;
            invokevirtual android.util.ArrayMap.size:()I
            if_icmplt 3
        end local 2 // int i
         7: .line 1635
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mActiveConnections:Landroid/util/ArrayMap;
            invokevirtual android.util.ArrayMap.clear:()V
         8: .line 1636
            aload 0 /* this */
            iconst_1
            putfield android.app.LoadedApk$ServiceDispatcher.mForgotten:Z
         9: .line 1630
            aload 1
            monitorexit
        10: goto 13
      StackMap locals: android.app.LoadedApk$ServiceDispatcher android.app.LoadedApk$ServiceDispatcher
      StackMap stack: java.lang.Throwable
        11: aload 1
            monitorexit
        12: athrow
        13: .line 1638
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.app.LoadedApk$ServiceDispatcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Landroid/app/LoadedApk$ServiceDispatcher;
            2    7     2     i  I
            4    5     3    ci  Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo;
      Exception table:
        from    to  target  type
           1    10      11  any
          11    12      11  any

  android.app.ServiceConnectionLeaked getLocation();
    descriptor: ()Landroid/app/ServiceConnectionLeaked;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk$ServiceDispatcher this
         0: .line 1641
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mLocation:Landroid/app/ServiceConnectionLeaked;
            areturn
        end local 0 // android.app.LoadedApk$ServiceDispatcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk$ServiceDispatcher;

  android.content.ServiceConnection getServiceConnection();
    descriptor: ()Landroid/content/ServiceConnection;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk$ServiceDispatcher this
         0: .line 1645
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mConnection:Landroid/content/ServiceConnection;
            areturn
        end local 0 // android.app.LoadedApk$ServiceDispatcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk$ServiceDispatcher;

  android.app.IServiceConnection getIServiceConnection();
    descriptor: ()Landroid/app/IServiceConnection;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk$ServiceDispatcher this
         0: .line 1649
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mIServiceConnection:Landroid/app/LoadedApk$ServiceDispatcher$InnerConnection;
            areturn
        end local 0 // android.app.LoadedApk$ServiceDispatcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk$ServiceDispatcher;

  int getFlags();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk$ServiceDispatcher this
         0: .line 1653
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mFlags:I
            ireturn
        end local 0 // android.app.LoadedApk$ServiceDispatcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk$ServiceDispatcher;

  void setUnbindLocation(java.lang.RuntimeException);
    descriptor: (Ljava/lang/RuntimeException;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.app.LoadedApk$ServiceDispatcher this
        start local 1 // java.lang.RuntimeException ex
         0: .line 1657
            aload 0 /* this */
            aload 1 /* ex */
            putfield android.app.LoadedApk$ServiceDispatcher.mUnbindLocation:Ljava/lang/RuntimeException;
         1: .line 1658
            return
        end local 1 // java.lang.RuntimeException ex
        end local 0 // android.app.LoadedApk$ServiceDispatcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/app/LoadedApk$ServiceDispatcher;
            0    2     1    ex  Ljava/lang/RuntimeException;
    MethodParameters:
      Name  Flags
      ex    

  java.lang.RuntimeException getUnbindLocation();
    descriptor: ()Ljava/lang/RuntimeException;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.app.LoadedApk$ServiceDispatcher this
         0: .line 1661
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mUnbindLocation:Ljava/lang/RuntimeException;
            areturn
        end local 0 // android.app.LoadedApk$ServiceDispatcher this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/app/LoadedApk$ServiceDispatcher;

  public void connected(android.content.ComponentName, android.os.IBinder, boolean);
    descriptor: (Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=4
        start local 0 // android.app.LoadedApk$ServiceDispatcher this
        start local 1 // android.content.ComponentName name
        start local 2 // android.os.IBinder service
        start local 3 // boolean dead
         0: .line 1665
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mActivityThread:Landroid/os/Handler;
            ifnull 3
         1: .line 1666
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mActivityThread:Landroid/os/Handler;
            new android.app.LoadedApk$ServiceDispatcher$RunConnection
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* service */
            iconst_0
            iload 3 /* dead */
            invokespecial android.app.LoadedApk$ServiceDispatcher$RunConnection.<init>:(Landroid/app/LoadedApk$ServiceDispatcher;Landroid/content/ComponentName;Landroid/os/IBinder;IZ)V
            invokevirtual android.os.Handler.post:(Ljava/lang/Runnable;)Z
            pop
         2: .line 1667
            goto 4
         3: .line 1668
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* service */
            iload 3 /* dead */
            invokevirtual android.app.LoadedApk$ServiceDispatcher.doConnected:(Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
         4: .line 1670
      StackMap locals:
      StackMap stack:
            return
        end local 3 // boolean dead
        end local 2 // android.os.IBinder service
        end local 1 // android.content.ComponentName name
        end local 0 // android.app.LoadedApk$ServiceDispatcher this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/app/LoadedApk$ServiceDispatcher;
            0    5     1     name  Landroid/content/ComponentName;
            0    5     2  service  Landroid/os/IBinder;
            0    5     3     dead  Z
    MethodParameters:
         Name  Flags
      name     
      service  
      dead     

  public void death(android.content.ComponentName, android.os.IBinder);
    descriptor: (Landroid/content/ComponentName;Landroid/os/IBinder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=3, args_size=3
        start local 0 // android.app.LoadedApk$ServiceDispatcher this
        start local 1 // android.content.ComponentName name
        start local 2 // android.os.IBinder service
         0: .line 1673
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mActivityThread:Landroid/os/Handler;
            ifnull 3
         1: .line 1674
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mActivityThread:Landroid/os/Handler;
            new android.app.LoadedApk$ServiceDispatcher$RunConnection
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* service */
            iconst_1
            iconst_0
            invokespecial android.app.LoadedApk$ServiceDispatcher$RunConnection.<init>:(Landroid/app/LoadedApk$ServiceDispatcher;Landroid/content/ComponentName;Landroid/os/IBinder;IZ)V
            invokevirtual android.os.Handler.post:(Ljava/lang/Runnable;)Z
            pop
         2: .line 1675
            goto 4
         3: .line 1676
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* service */
            invokevirtual android.app.LoadedApk$ServiceDispatcher.doDeath:(Landroid/content/ComponentName;Landroid/os/IBinder;)V
         4: .line 1678
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.IBinder service
        end local 1 // android.content.ComponentName name
        end local 0 // android.app.LoadedApk$ServiceDispatcher this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/app/LoadedApk$ServiceDispatcher;
            0    5     1     name  Landroid/content/ComponentName;
            0    5     2  service  Landroid/os/IBinder;
    MethodParameters:
         Name  Flags
      name     
      service  

  public void doConnected(android.content.ComponentName, android.os.IBinder, boolean);
    descriptor: (Landroid/content/ComponentName;Landroid/os/IBinder;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // android.app.LoadedApk$ServiceDispatcher this
        start local 1 // android.content.ComponentName name
        start local 2 // android.os.IBinder service
        start local 3 // boolean dead
         0: .line 1684
            aload 0 /* this */
            dup
            astore 6
            monitorenter
         1: .line 1685
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mForgotten:Z
            ifeq 4
         2: .line 1688
            aload 6
            monitorexit
         3: return
         4: .line 1690
      StackMap locals: android.app.LoadedApk$ServiceDispatcher android.content.ComponentName android.os.IBinder int top top android.app.LoadedApk$ServiceDispatcher
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mActiveConnections:Landroid/util/ArrayMap;
            aload 1 /* name */
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.app.LoadedApk$ServiceDispatcher$ConnectionInfo
            astore 4 /* old */
        start local 4 // android.app.LoadedApk$ServiceDispatcher$ConnectionInfo old
         5: .line 1691
            aload 4 /* old */
            ifnull 8
            aload 4 /* old */
            getfield android.app.LoadedApk$ServiceDispatcher$ConnectionInfo.binder:Landroid/os/IBinder;
            aload 2 /* service */
            if_acmpne 8
         6: .line 1693
            aload 6
            monitorexit
         7: return
         8: .line 1696
      StackMap locals: android.app.LoadedApk$ServiceDispatcher android.content.ComponentName android.os.IBinder int android.app.LoadedApk$ServiceDispatcher$ConnectionInfo top android.app.LoadedApk$ServiceDispatcher
      StackMap stack:
            aload 2 /* service */
            ifnull 19
         9: .line 1698
            new android.app.LoadedApk$ServiceDispatcher$ConnectionInfo
            dup
            invokespecial android.app.LoadedApk$ServiceDispatcher$ConnectionInfo.<init>:()V
            astore 5 /* info */
        start local 5 // android.app.LoadedApk$ServiceDispatcher$ConnectionInfo info
        10: .line 1699
            aload 5 /* info */
            aload 2 /* service */
            putfield android.app.LoadedApk$ServiceDispatcher$ConnectionInfo.binder:Landroid/os/IBinder;
        11: .line 1700
            aload 5 /* info */
            new android.app.LoadedApk$ServiceDispatcher$DeathMonitor
            dup
            aload 0 /* this */
            aload 1 /* name */
            aload 2 /* service */
            invokespecial android.app.LoadedApk$ServiceDispatcher$DeathMonitor.<init>:(Landroid/app/LoadedApk$ServiceDispatcher;Landroid/content/ComponentName;Landroid/os/IBinder;)V
            putfield android.app.LoadedApk$ServiceDispatcher$ConnectionInfo.deathMonitor:Landroid/os/IBinder$DeathRecipient;
        12: .line 1702
            aload 2 /* service */
            aload 5 /* info */
            getfield android.app.LoadedApk$ServiceDispatcher$ConnectionInfo.deathMonitor:Landroid/os/IBinder$DeathRecipient;
            iconst_0
            invokeinterface android.os.IBinder.linkToDeath:(Landroid/os/IBinder$DeathRecipient;I)V
        13: .line 1703
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mActiveConnections:Landroid/util/ArrayMap;
            aload 1 /* name */
            aload 5 /* info */
            invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        14: .line 1704
            goto 20
      StackMap locals: android.app.LoadedApk$ServiceDispatcher android.content.ComponentName android.os.IBinder int android.app.LoadedApk$ServiceDispatcher$ConnectionInfo android.app.LoadedApk$ServiceDispatcher$ConnectionInfo android.app.LoadedApk$ServiceDispatcher
      StackMap stack: android.os.RemoteException
        15: pop
        16: .line 1707
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mActiveConnections:Landroid/util/ArrayMap;
            aload 1 /* name */
            invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        17: .line 1708
            aload 6
            monitorexit
        18: return
        end local 5 // android.app.LoadedApk$ServiceDispatcher$ConnectionInfo info
        19: .line 1713
      StackMap locals: android.app.LoadedApk$ServiceDispatcher android.content.ComponentName android.os.IBinder int android.app.LoadedApk$ServiceDispatcher$ConnectionInfo top android.app.LoadedApk$ServiceDispatcher
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mActiveConnections:Landroid/util/ArrayMap;
            aload 1 /* name */
            invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        20: .line 1716
      StackMap locals:
      StackMap stack:
            aload 4 /* old */
            ifnull 22
        21: .line 1717
            aload 4 /* old */
            getfield android.app.LoadedApk$ServiceDispatcher$ConnectionInfo.binder:Landroid/os/IBinder;
            aload 4 /* old */
            getfield android.app.LoadedApk$ServiceDispatcher$ConnectionInfo.deathMonitor:Landroid/os/IBinder$DeathRecipient;
            iconst_0
            invokeinterface android.os.IBinder.unlinkToDeath:(Landroid/os/IBinder$DeathRecipient;I)Z
            pop
        22: .line 1684
      StackMap locals:
      StackMap stack:
            aload 6
            monitorexit
        23: goto 26
        end local 4 // android.app.LoadedApk$ServiceDispatcher$ConnectionInfo old
      StackMap locals: android.app.LoadedApk$ServiceDispatcher android.content.ComponentName android.os.IBinder int top top android.app.LoadedApk$ServiceDispatcher
      StackMap stack: java.lang.Throwable
        24: aload 6
            monitorexit
        25: athrow
        start local 4 // android.app.LoadedApk$ServiceDispatcher$ConnectionInfo old
        26: .line 1722
      StackMap locals: android.app.LoadedApk$ServiceDispatcher android.content.ComponentName android.os.IBinder int android.app.LoadedApk$ServiceDispatcher$ConnectionInfo
      StackMap stack:
            aload 4 /* old */
            ifnull 28
        27: .line 1723
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mConnection:Landroid/content/ServiceConnection;
            aload 1 /* name */
            invokeinterface android.content.ServiceConnection.onServiceDisconnected:(Landroid/content/ComponentName;)V
        28: .line 1725
      StackMap locals:
      StackMap stack:
            iload 3 /* dead */
            ifeq 30
        29: .line 1726
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mConnection:Landroid/content/ServiceConnection;
            aload 1 /* name */
            invokeinterface android.content.ServiceConnection.onBindingDied:(Landroid/content/ComponentName;)V
        30: .line 1729
      StackMap locals:
      StackMap stack:
            aload 2 /* service */
            ifnull 33
        31: .line 1730
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mConnection:Landroid/content/ServiceConnection;
            aload 1 /* name */
            aload 2 /* service */
            invokeinterface android.content.ServiceConnection.onServiceConnected:(Landroid/content/ComponentName;Landroid/os/IBinder;)V
        32: .line 1731
            goto 34
        33: .line 1733
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mConnection:Landroid/content/ServiceConnection;
            aload 1 /* name */
            invokeinterface android.content.ServiceConnection.onNullBinding:(Landroid/content/ComponentName;)V
        34: .line 1735
      StackMap locals:
      StackMap stack:
            return
        end local 4 // android.app.LoadedApk$ServiceDispatcher$ConnectionInfo old
        end local 3 // boolean dead
        end local 2 // android.os.IBinder service
        end local 1 // android.content.ComponentName name
        end local 0 // android.app.LoadedApk$ServiceDispatcher this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   35     0     this  Landroid/app/LoadedApk$ServiceDispatcher;
            0   35     1     name  Landroid/content/ComponentName;
            0   35     2  service  Landroid/os/IBinder;
            0   35     3     dead  Z
            5   24     4      old  Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo;
           26   35     4      old  Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo;
           10   19     5     info  Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo;
      Exception table:
        from    to  target  type
          12    14      15  Class android.os.RemoteException
           1     3      24  any
           4     7      24  any
           8    18      24  any
          19    23      24  any
          24    25      24  any
    MethodParameters:
         Name  Flags
      name     
      service  
      dead     

  public void doDeath(android.content.ComponentName, android.os.IBinder);
    descriptor: (Landroid/content/ComponentName;Landroid/os/IBinder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // android.app.LoadedApk$ServiceDispatcher this
        start local 1 // android.content.ComponentName name
        start local 2 // android.os.IBinder service
         0: .line 1738
            aload 0 /* this */
            dup
            astore 3
            monitorenter
         1: .line 1739
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mActiveConnections:Landroid/util/ArrayMap;
            aload 1 /* name */
            invokevirtual android.util.ArrayMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.app.LoadedApk$ServiceDispatcher$ConnectionInfo
            astore 4 /* old */
        start local 4 // android.app.LoadedApk$ServiceDispatcher$ConnectionInfo old
         2: .line 1740
            aload 4 /* old */
            ifnull 3
            aload 4 /* old */
            getfield android.app.LoadedApk$ServiceDispatcher$ConnectionInfo.binder:Landroid/os/IBinder;
            aload 2 /* service */
            if_acmpeq 5
         3: .line 1743
      StackMap locals: android.app.LoadedApk$ServiceDispatcher android.app.LoadedApk$ServiceDispatcher$ConnectionInfo
      StackMap stack:
            aload 3
            monitorexit
         4: return
         5: .line 1745
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mActiveConnections:Landroid/util/ArrayMap;
            aload 1 /* name */
            invokevirtual android.util.ArrayMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         6: .line 1746
            aload 4 /* old */
            getfield android.app.LoadedApk$ServiceDispatcher$ConnectionInfo.binder:Landroid/os/IBinder;
            aload 4 /* old */
            getfield android.app.LoadedApk$ServiceDispatcher$ConnectionInfo.deathMonitor:Landroid/os/IBinder$DeathRecipient;
            iconst_0
            invokeinterface android.os.IBinder.unlinkToDeath:(Landroid/os/IBinder$DeathRecipient;I)Z
            pop
        end local 4 // android.app.LoadedApk$ServiceDispatcher$ConnectionInfo old
         7: .line 1738
            aload 3
            monitorexit
         8: goto 11
      StackMap locals: android.app.LoadedApk$ServiceDispatcher android.content.ComponentName android.os.IBinder android.app.LoadedApk$ServiceDispatcher
      StackMap stack: java.lang.Throwable
         9: aload 3
            monitorexit
        10: athrow
        11: .line 1749
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.app.LoadedApk$ServiceDispatcher.mConnection:Landroid/content/ServiceConnection;
            aload 1 /* name */
            invokeinterface android.content.ServiceConnection.onServiceDisconnected:(Landroid/content/ComponentName;)V
        12: .line 1750
            return
        end local 2 // android.os.IBinder service
        end local 1 // android.content.ComponentName name
        end local 0 // android.app.LoadedApk$ServiceDispatcher this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   13     0     this  Landroid/app/LoadedApk$ServiceDispatcher;
            0   13     1     name  Landroid/content/ComponentName;
            0   13     2  service  Landroid/os/IBinder;
            2    7     4      old  Landroid/app/LoadedApk$ServiceDispatcher$ConnectionInfo;
      Exception table:
        from    to  target  type
           1     4       9  any
           5     8       9  any
           9    10       9  any
    MethodParameters:
         Name  Flags
      name     
      service  
}
SourceFile: "LoadedApk.java"
NestHost: android.app.LoadedApk
InnerClasses:
  final ServiceDispatcher = android.app.LoadedApk$ServiceDispatcher of android.app.LoadedApk
  private ConnectionInfo = android.app.LoadedApk$ServiceDispatcher$ConnectionInfo of android.app.LoadedApk$ServiceDispatcher
  private final DeathMonitor = android.app.LoadedApk$ServiceDispatcher$DeathMonitor of android.app.LoadedApk$ServiceDispatcher
  private InnerConnection = android.app.LoadedApk$ServiceDispatcher$InnerConnection of android.app.LoadedApk$ServiceDispatcher
  private final RunConnection = android.app.LoadedApk$ServiceDispatcher$RunConnection of android.app.LoadedApk$ServiceDispatcher
  public abstract DeathRecipient = android.os.IBinder$DeathRecipient of android.os.IBinder