public final class android.database.CursorToBulkCursorAdaptor extends android.database.BulkCursorNative implements android.os.IBinder$DeathRecipient
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.database.CursorToBulkCursorAdaptor
  super_class: android.database.BulkCursorNative
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "Cursor"

  private final java.lang.Object mLock;
    descriptor: Ljava/lang/Object;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String mProviderName;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private android.database.CursorToBulkCursorAdaptor$ContentObserverProxy mObserver;
    descriptor: Landroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;
    flags: (0x0002) ACC_PRIVATE

  private android.database.CrossProcessCursor mCursor;
    descriptor: Landroid/database/CrossProcessCursor;
    flags: (0x0002) ACC_PRIVATE

  private android.database.CursorWindow mFilledWindow;
    descriptor: Landroid/database/CursorWindow;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(android.database.Cursor, android.database.IContentObserver, java.lang.String);
    descriptor: (Landroid/database/Cursor;Landroid/database/IContentObserver;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=5, args_size=4
        start local 0 // android.database.CursorToBulkCursorAdaptor this
        start local 1 // android.database.Cursor cursor
        start local 2 // android.database.IContentObserver observer
        start local 3 // java.lang.String providerName
         0: .line 88
            aload 0 /* this */
            invokespecial android.database.BulkCursorNative.<init>:()V
         1: .line 38
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield android.database.CursorToBulkCursorAdaptor.mLock:Ljava/lang/Object;
         2: .line 90
            aload 1 /* cursor */
            instanceof android.database.CrossProcessCursor
            ifeq 5
         3: .line 91
            aload 0 /* this */
            aload 1 /* cursor */
            checkcast android.database.CrossProcessCursor
            putfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
         4: .line 92
            goto 6
         5: .line 93
      StackMap locals: android.database.CursorToBulkCursorAdaptor android.database.Cursor android.database.IContentObserver java.lang.String
      StackMap stack:
            aload 0 /* this */
            new android.database.CrossProcessCursorWrapper
            dup
            aload 1 /* cursor */
            invokespecial android.database.CrossProcessCursorWrapper.<init>:(Landroid/database/Cursor;)V
            putfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
         6: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* providerName */
            putfield android.database.CursorToBulkCursorAdaptor.mProviderName:Ljava/lang/String;
         7: .line 97
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mLock:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
         8: .line 98
            aload 0 /* this */
            aload 2 /* observer */
            invokevirtual android.database.CursorToBulkCursorAdaptor.createAndRegisterObserverProxyLocked:(Landroid/database/IContentObserver;)V
         9: .line 97
            aload 4
            monitorexit
        10: goto 13
      StackMap locals: android.database.CursorToBulkCursorAdaptor android.database.Cursor android.database.IContentObserver java.lang.String java.lang.Object
      StackMap stack: java.lang.Throwable
        11: aload 4
            monitorexit
        12: athrow
        13: .line 100
      StackMap locals:
      StackMap stack:
            return
        end local 3 // java.lang.String providerName
        end local 2 // android.database.IContentObserver observer
        end local 1 // android.database.Cursor cursor
        end local 0 // android.database.CursorToBulkCursorAdaptor this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   14     0          this  Landroid/database/CursorToBulkCursorAdaptor;
            0   14     1        cursor  Landroid/database/Cursor;
            0   14     2      observer  Landroid/database/IContentObserver;
            0   14     3  providerName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           8    10      11  any
          11    12      11  any
    MethodParameters:
              Name  Flags
      cursor        
      observer      
      providerName  

  private void closeFilledWindowLocked();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.database.CursorToBulkCursorAdaptor this
         0: .line 103
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mFilledWindow:Landroid/database/CursorWindow;
            ifnull 3
         1: .line 104
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mFilledWindow:Landroid/database/CursorWindow;
            invokevirtual android.database.CursorWindow.close:()V
         2: .line 105
            aload 0 /* this */
            aconst_null
            putfield android.database.CursorToBulkCursorAdaptor.mFilledWindow:Landroid/database/CursorWindow;
         3: .line 107
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.database.CursorToBulkCursorAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/database/CursorToBulkCursorAdaptor;

  private void disposeLocked();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.database.CursorToBulkCursorAdaptor this
         0: .line 110
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            ifnull 4
         1: .line 111
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor.unregisterObserverProxyLocked:()V
         2: .line 112
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            invokeinterface android.database.CrossProcessCursor.close:()V
         3: .line 113
            aload 0 /* this */
            aconst_null
            putfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
         4: .line 116
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor.closeFilledWindowLocked:()V
         5: .line 117
            return
        end local 0 // android.database.CursorToBulkCursorAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/database/CursorToBulkCursorAdaptor;

  private void throwIfCursorIsClosed();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.database.CursorToBulkCursorAdaptor this
         0: .line 120
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            ifnonnull 2
         1: .line 121
            new android.database.StaleDataException
            dup
            ldc "Attempted to access a cursor after it has been closed."
            invokespecial android.database.StaleDataException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 123
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.database.CursorToBulkCursorAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/database/CursorToBulkCursorAdaptor;

  public void binderDied();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.database.CursorToBulkCursorAdaptor this
         0: .line 127
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 128
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor.disposeLocked:()V
         2: .line 127
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: android.database.CursorToBulkCursorAdaptor java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 130
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.database.CursorToBulkCursorAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/database/CursorToBulkCursorAdaptor;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  public android.database.BulkCursorDescriptor getBulkCursorDescriptor();
    descriptor: ()Landroid/database/BulkCursorDescriptor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.database.CursorToBulkCursorAdaptor this
         0: .line 138
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 139
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor.throwIfCursorIsClosed:()V
         2: .line 141
            new android.database.BulkCursorDescriptor
            dup
            invokespecial android.database.BulkCursorDescriptor.<init>:()V
            astore 2 /* d */
        start local 2 // android.database.BulkCursorDescriptor d
         3: .line 142
            aload 2 /* d */
            aload 0 /* this */
            putfield android.database.BulkCursorDescriptor.cursor:Landroid/database/IBulkCursor;
         4: .line 143
            aload 2 /* d */
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            invokeinterface android.database.CrossProcessCursor.getColumnNames:()[Ljava/lang/String;
            putfield android.database.BulkCursorDescriptor.columnNames:[Ljava/lang/String;
         5: .line 144
            aload 2 /* d */
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            invokeinterface android.database.CrossProcessCursor.getWantsAllOnMoveCalls:()Z
            putfield android.database.BulkCursorDescriptor.wantsAllOnMoveCalls:Z
         6: .line 145
            aload 2 /* d */
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            invokeinterface android.database.CrossProcessCursor.getCount:()I
            putfield android.database.BulkCursorDescriptor.count:I
         7: .line 146
            aload 2 /* d */
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            invokeinterface android.database.CrossProcessCursor.getWindow:()Landroid/database/CursorWindow;
            putfield android.database.BulkCursorDescriptor.window:Landroid/database/CursorWindow;
         8: .line 147
            aload 2 /* d */
            getfield android.database.BulkCursorDescriptor.window:Landroid/database/CursorWindow;
            ifnull 10
         9: .line 150
            aload 2 /* d */
            getfield android.database.BulkCursorDescriptor.window:Landroid/database/CursorWindow;
            invokevirtual android.database.CursorWindow.acquireReference:()V
        10: .line 152
      StackMap locals: java.lang.Object android.database.BulkCursorDescriptor
      StackMap stack:
            aload 2 /* d */
            aload 1
            monitorexit
        11: areturn
        end local 2 // android.database.BulkCursorDescriptor d
        12: .line 138
      StackMap locals: android.database.CursorToBulkCursorAdaptor java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
        13: athrow
        end local 0 // android.database.CursorToBulkCursorAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Landroid/database/CursorToBulkCursorAdaptor;
            3   12     2     d  Landroid/database/BulkCursorDescriptor;
      Exception table:
        from    to  target  type
           1    11      12  any
          12    13      12  any

  public android.database.CursorWindow getWindow(int);
    descriptor: (I)Landroid/database/CursorWindow;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // android.database.CursorToBulkCursorAdaptor this
        start local 1 // int position
         0: .line 158
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 159
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor.throwIfCursorIsClosed:()V
         2: .line 161
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            iload 1 /* position */
            invokeinterface android.database.CrossProcessCursor.moveToPosition:(I)Z
            ifne 6
         3: .line 162
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor.closeFilledWindowLocked:()V
         4: .line 163
            aload 2
            monitorexit
         5: aconst_null
            areturn
         6: .line 166
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            invokeinterface android.database.CrossProcessCursor.getWindow:()Landroid/database/CursorWindow;
            astore 3 /* window */
        start local 3 // android.database.CursorWindow window
         7: .line 167
            aload 3 /* window */
            ifnull 10
         8: .line 168
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor.closeFilledWindowLocked:()V
         9: .line 169
            goto 19
        10: .line 170
      StackMap locals: android.database.CursorWindow
      StackMap stack:
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mFilledWindow:Landroid/database/CursorWindow;
            astore 3 /* window */
        11: .line 171
            aload 3 /* window */
            ifnonnull 15
        12: .line 172
            aload 0 /* this */
            new android.database.CursorWindow
            dup
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mProviderName:Ljava/lang/String;
            invokespecial android.database.CursorWindow.<init>:(Ljava/lang/String;)V
            putfield android.database.CursorToBulkCursorAdaptor.mFilledWindow:Landroid/database/CursorWindow;
        13: .line 173
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mFilledWindow:Landroid/database/CursorWindow;
            astore 3 /* window */
        14: .line 174
            goto 18
      StackMap locals:
      StackMap stack:
        15: iload 1 /* position */
            aload 3 /* window */
            invokevirtual android.database.CursorWindow.getStartPosition:()I
            if_icmplt 17
        16: .line 175
            iload 1 /* position */
            aload 3 /* window */
            invokevirtual android.database.CursorWindow.getStartPosition:()I
            aload 3 /* window */
            invokevirtual android.database.CursorWindow.getNumRows:()I
            iadd
            if_icmplt 18
        17: .line 176
      StackMap locals:
      StackMap stack:
            aload 3 /* window */
            invokevirtual android.database.CursorWindow.clear:()V
        18: .line 178
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            iload 1 /* position */
            aload 3 /* window */
            invokeinterface android.database.CrossProcessCursor.fillWindow:(ILandroid/database/CursorWindow;)V
        19: .line 181
      StackMap locals:
      StackMap stack:
            aload 3 /* window */
            ifnull 21
        20: .line 184
            aload 3 /* window */
            invokevirtual android.database.CursorWindow.acquireReference:()V
        21: .line 186
      StackMap locals:
      StackMap stack:
            aload 3 /* window */
            aload 2
            monitorexit
        22: areturn
        end local 3 // android.database.CursorWindow window
        23: .line 158
      StackMap locals: android.database.CursorToBulkCursorAdaptor int java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        24: athrow
        end local 1 // int position
        end local 0 // android.database.CursorToBulkCursorAdaptor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   25     0      this  Landroid/database/CursorToBulkCursorAdaptor;
            0   25     1  position  I
            7   23     3    window  Landroid/database/CursorWindow;
      Exception table:
        from    to  target  type
           1     5      23  any
           6    22      23  any
          23    24      23  any
    MethodParameters:
          Name  Flags
      position  

  public void onMove(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.database.CursorToBulkCursorAdaptor this
        start local 1 // int position
         0: .line 192
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 193
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor.throwIfCursorIsClosed:()V
         2: .line 195
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            invokeinterface android.database.CrossProcessCursor.getPosition:()I
            iload 1 /* position */
            invokeinterface android.database.CrossProcessCursor.onMove:(II)Z
            pop
         3: .line 192
            aload 2
            monitorexit
         4: goto 7
      StackMap locals: android.database.CursorToBulkCursorAdaptor int java.lang.Object
      StackMap stack: java.lang.Throwable
         5: aload 2
            monitorexit
         6: athrow
         7: .line 197
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int position
        end local 0 // android.database.CursorToBulkCursorAdaptor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Landroid/database/CursorToBulkCursorAdaptor;
            0    8     1  position  I
      Exception table:
        from    to  target  type
           1     4       5  any
           5     6       5  any
    MethodParameters:
          Name  Flags
      position  

  public void deactivate();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.database.CursorToBulkCursorAdaptor this
         0: .line 201
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 202
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            ifnull 4
         2: .line 203
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor.unregisterObserverProxyLocked:()V
         3: .line 204
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            invokeinterface android.database.CrossProcessCursor.deactivate:()V
         4: .line 207
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor.closeFilledWindowLocked:()V
         5: .line 201
            aload 1
            monitorexit
         6: goto 9
      StackMap locals:
      StackMap stack: java.lang.Throwable
         7: aload 1
            monitorexit
         8: athrow
         9: .line 209
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.database.CursorToBulkCursorAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Landroid/database/CursorToBulkCursorAdaptor;
      Exception table:
        from    to  target  type
           1     6       7  any
           7     8       7  any

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.database.CursorToBulkCursorAdaptor this
         0: .line 213
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 214
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor.disposeLocked:()V
         2: .line 213
            aload 1
            monitorexit
         3: goto 6
      StackMap locals: android.database.CursorToBulkCursorAdaptor java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 1
            monitorexit
         5: athrow
         6: .line 216
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.database.CursorToBulkCursorAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/database/CursorToBulkCursorAdaptor;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  public int requery(android.database.IContentObserver);
    descriptor: (Landroid/database/IContentObserver;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // android.database.CursorToBulkCursorAdaptor this
        start local 1 // android.database.IContentObserver observer
         0: .line 220
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 221
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor.throwIfCursorIsClosed:()V
         2: .line 223
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor.closeFilledWindowLocked:()V
         3: .line 226
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            invokeinterface android.database.CrossProcessCursor.requery:()Z
            ifne 14
         4: .line 227
            aload 2
            monitorexit
         5: iconst_m1
            ireturn
         6: .line 229
      StackMap locals: android.database.CursorToBulkCursorAdaptor android.database.IContentObserver java.lang.Object
      StackMap stack: java.lang.IllegalStateException
            astore 3 /* e */
        start local 3 // java.lang.IllegalStateException e
         7: .line 230
            new java.lang.IllegalStateException
            dup
         8: .line 231
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mProviderName:Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " Requery misuse db, mCursor isClosed:"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 232
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            invokeinterface android.database.CrossProcessCursor.isClosed:()Z
            invokevirtual java.lang.StringBuilder.append:(Z)Ljava/lang/StringBuilder;
        10: .line 231
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 232
            aload 3 /* e */
        12: .line 230
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            astore 4 /* leakProgram */
        start local 4 // java.lang.IllegalStateException leakProgram
        13: .line 233
            aload 4 /* leakProgram */
            athrow
        end local 4 // java.lang.IllegalStateException leakProgram
        end local 3 // java.lang.IllegalStateException e
        14: .line 236
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor.unregisterObserverProxyLocked:()V
        15: .line 237
            aload 0 /* this */
            aload 1 /* observer */
            invokevirtual android.database.CursorToBulkCursorAdaptor.createAndRegisterObserverProxyLocked:(Landroid/database/IContentObserver;)V
        16: .line 238
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            invokeinterface android.database.CrossProcessCursor.getCount:()I
            aload 2
            monitorexit
        17: ireturn
        18: .line 220
      StackMap locals:
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
        19: athrow
        end local 1 // android.database.IContentObserver observer
        end local 0 // android.database.CursorToBulkCursorAdaptor this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   20     0         this  Landroid/database/CursorToBulkCursorAdaptor;
            0   20     1     observer  Landroid/database/IContentObserver;
            7   14     3            e  Ljava/lang/IllegalStateException;
           13   14     4  leakProgram  Ljava/lang/IllegalStateException;
      Exception table:
        from    to  target  type
           3     4       6  Class java.lang.IllegalStateException
           1     5      18  any
           6    17      18  any
          18    19      18  any
    MethodParameters:
          Name  Flags
      observer  

  private void createAndRegisterObserverProxyLocked(android.database.IContentObserver);
    descriptor: (Landroid/database/IContentObserver;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.database.CursorToBulkCursorAdaptor this
        start local 1 // android.database.IContentObserver observer
         0: .line 249
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mObserver:Landroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;
            ifnull 2
         1: .line 250
            new java.lang.IllegalStateException
            dup
            ldc "an observer is already registered"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 252
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new android.database.CursorToBulkCursorAdaptor$ContentObserverProxy
            dup
            aload 1 /* observer */
            aload 0 /* this */
            invokespecial android.database.CursorToBulkCursorAdaptor$ContentObserverProxy.<init>:(Landroid/database/IContentObserver;Landroid/os/IBinder$DeathRecipient;)V
            putfield android.database.CursorToBulkCursorAdaptor.mObserver:Landroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;
         3: .line 253
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mObserver:Landroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;
            invokeinterface android.database.CrossProcessCursor.registerContentObserver:(Landroid/database/ContentObserver;)V
         4: .line 254
            return
        end local 1 // android.database.IContentObserver observer
        end local 0 // android.database.CursorToBulkCursorAdaptor this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Landroid/database/CursorToBulkCursorAdaptor;
            0    5     1  observer  Landroid/database/IContentObserver;
    MethodParameters:
          Name  Flags
      observer  

  private void unregisterObserverProxyLocked();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.database.CursorToBulkCursorAdaptor this
         0: .line 258
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mObserver:Landroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;
            ifnull 4
         1: .line 259
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mObserver:Landroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;
            invokeinterface android.database.CrossProcessCursor.unregisterContentObserver:(Landroid/database/ContentObserver;)V
         2: .line 260
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mObserver:Landroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor$ContentObserverProxy.unlinkToDeath:(Landroid/os/IBinder$DeathRecipient;)Z
            pop
         3: .line 261
            aload 0 /* this */
            aconst_null
            putfield android.database.CursorToBulkCursorAdaptor.mObserver:Landroid/database/CursorToBulkCursorAdaptor$ContentObserverProxy;
         4: .line 263
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.database.CursorToBulkCursorAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/database/CursorToBulkCursorAdaptor;

  public android.os.Bundle getExtras();
    descriptor: ()Landroid/os/Bundle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.database.CursorToBulkCursorAdaptor this
         0: .line 267
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mLock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 268
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor.throwIfCursorIsClosed:()V
         2: .line 270
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            invokeinterface android.database.CrossProcessCursor.getExtras:()Landroid/os/Bundle;
            aload 1
            monitorexit
         3: areturn
         4: .line 267
      StackMap locals: android.database.CursorToBulkCursorAdaptor java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 1
            monitorexit
         5: athrow
        end local 0 // android.database.CursorToBulkCursorAdaptor this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Landroid/database/CursorToBulkCursorAdaptor;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any

  public android.os.Bundle respond(android.os.Bundle);
    descriptor: (Landroid/os/Bundle;)Landroid/os/Bundle;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.database.CursorToBulkCursorAdaptor this
        start local 1 // android.os.Bundle extras
         0: .line 276
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mLock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 277
            aload 0 /* this */
            invokevirtual android.database.CursorToBulkCursorAdaptor.throwIfCursorIsClosed:()V
         2: .line 279
            aload 0 /* this */
            getfield android.database.CursorToBulkCursorAdaptor.mCursor:Landroid/database/CrossProcessCursor;
            aload 1 /* extras */
            invokeinterface android.database.CrossProcessCursor.respond:(Landroid/os/Bundle;)Landroid/os/Bundle;
            aload 2
            monitorexit
         3: areturn
         4: .line 276
      StackMap locals: android.database.CursorToBulkCursorAdaptor android.os.Bundle java.lang.Object
      StackMap stack: java.lang.Throwable
            aload 2
            monitorexit
         5: athrow
        end local 1 // android.os.Bundle extras
        end local 0 // android.database.CursorToBulkCursorAdaptor this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Landroid/database/CursorToBulkCursorAdaptor;
            0    6     1  extras  Landroid/os/Bundle;
      Exception table:
        from    to  target  type
           1     3       4  any
           4     5       4  any
    MethodParameters:
        Name  Flags
      extras  
}
SourceFile: "CursorToBulkCursorAdaptor.java"
NestMembers:
  android.database.CursorToBulkCursorAdaptor$ContentObserverProxy
InnerClasses:
  private final ContentObserverProxy = android.database.CursorToBulkCursorAdaptor$ContentObserverProxy of android.database.CursorToBulkCursorAdaptor
  public abstract DeathRecipient = android.os.IBinder$DeathRecipient of android.os.IBinder