class android.app.backup.FileBackupHelperBase
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: android.app.backup.FileBackupHelperBase
  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: "FileBackupHelperBase"

  long mPtr;
    descriptor: J
    flags: (0x0000) 

  android.content.Context mContext;
    descriptor: Landroid/content/Context;
    flags: (0x0000) 

  boolean mExceptionLogged;
    descriptor: Z
    flags: (0x0000) 

  void <init>(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.app.backup.FileBackupHelperBase this
        start local 1 // android.content.Context context
         0: .line 36
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 37
            aload 0 /* this */
            invokestatic android.app.backup.FileBackupHelperBase.ctor:()J
            putfield android.app.backup.FileBackupHelperBase.mPtr:J
         2: .line 38
            aload 0 /* this */
            aload 1 /* context */
            putfield android.app.backup.FileBackupHelperBase.mContext:Landroid/content/Context;
         3: .line 39
            return
        end local 1 // android.content.Context context
        end local 0 // android.app.backup.FileBackupHelperBase this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Landroid/app/backup/FileBackupHelperBase;
            0    4     1  context  Landroid/content/Context;
    MethodParameters:
         Name  Flags
      context  

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.app.backup.FileBackupHelperBase this
         0: .line 43
            aload 0 /* this */
            getfield android.app.backup.FileBackupHelperBase.mPtr:J
            invokestatic android.app.backup.FileBackupHelperBase.dtor:(J)V
         1: .line 44
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 1
         3: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         4: .line 46
            aload 1
            athrow
         5: .line 45
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         6: .line 47
            return
        end local 0 // android.app.backup.FileBackupHelperBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/app/backup/FileBackupHelperBase;
      Exception table:
        from    to  target  type
           0     2       2  any
    Exceptions:
      throws java.lang.Throwable

  static void performBackup_checked(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor, java.lang.String[], java.lang.String[]);
    descriptor: (Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;[Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=9, args_size=5
        start local 0 // android.os.ParcelFileDescriptor oldState
        start local 1 // android.app.backup.BackupDataOutput data
        start local 2 // android.os.ParcelFileDescriptor newState
        start local 3 // java.lang.String[] files
        start local 4 // java.lang.String[] keys
         0: .line 55
            aload 3 /* files */
            arraylength
            ifne 2
         1: .line 56
            return
         2: .line 59
      StackMap locals:
      StackMap stack:
            aload 3 /* files */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 7
      StackMap locals: android.os.ParcelFileDescriptor android.app.backup.BackupDataOutput android.os.ParcelFileDescriptor java.lang.String[] java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         3: aload 8
            iload 6
            aaload
            astore 5 /* f */
        start local 5 // java.lang.String f
         4: .line 60
            aload 5 /* f */
            iconst_0
            invokevirtual java.lang.String.charAt:(I)C
            bipush 47
            if_icmpeq 6
         5: .line 61
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "files must have all absolute paths: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 5 /* f */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 5 // java.lang.String f
         6: .line 59
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
         7: iload 6
            iload 7
            if_icmplt 3
         8: .line 65
            aload 3 /* files */
            arraylength
            aload 4 /* keys */
            arraylength
            if_icmpeq 12
         9: .line 66
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "files.length="
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* files */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
        10: .line 67
            ldc " keys.length="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 4 /* keys */
            arraylength
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        11: .line 66
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        12: .line 70
      StackMap locals: android.os.ParcelFileDescriptor android.app.backup.BackupDataOutput android.os.ParcelFileDescriptor java.lang.String[] java.lang.String[]
      StackMap stack:
            aload 0 /* oldState */
            ifnull 13
            aload 0 /* oldState */
            invokevirtual android.os.ParcelFileDescriptor.getFileDescriptor:()Ljava/io/FileDescriptor;
            goto 14
      StackMap locals:
      StackMap stack:
        13: aconst_null
      StackMap locals:
      StackMap stack: java.io.FileDescriptor
        14: astore 5 /* oldStateFd */
        start local 5 // java.io.FileDescriptor oldStateFd
        15: .line 71
            aload 2 /* newState */
            invokevirtual android.os.ParcelFileDescriptor.getFileDescriptor:()Ljava/io/FileDescriptor;
            astore 6 /* newStateFd */
        start local 6 // java.io.FileDescriptor newStateFd
        16: .line 72
            aload 6 /* newStateFd */
            ifnonnull 18
        17: .line 73
            new java.lang.NullPointerException
            dup
            invokespecial java.lang.NullPointerException.<init>:()V
            athrow
        18: .line 76
      StackMap locals: java.io.FileDescriptor java.io.FileDescriptor
      StackMap stack:
            aload 5 /* oldStateFd */
            aload 1 /* data */
            getfield android.app.backup.BackupDataOutput.mBackupWriter:J
            aload 6 /* newStateFd */
            aload 3 /* files */
            aload 4 /* keys */
            invokestatic android.app.backup.FileBackupHelperBase.performBackup_native:(Ljava/io/FileDescriptor;JLjava/io/FileDescriptor;[Ljava/lang/String;[Ljava/lang/String;)I
            istore 7 /* err */
        start local 7 // int err
        19: .line 78
            iload 7 /* err */
            ifeq 21
        20: .line 80
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Backup failed 0x"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 7 /* err */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        21: .line 82
      StackMap locals: int
      StackMap stack:
            return
        end local 7 // int err
        end local 6 // java.io.FileDescriptor newStateFd
        end local 5 // java.io.FileDescriptor oldStateFd
        end local 4 // java.lang.String[] keys
        end local 3 // java.lang.String[] files
        end local 2 // android.os.ParcelFileDescriptor newState
        end local 1 // android.app.backup.BackupDataOutput data
        end local 0 // android.os.ParcelFileDescriptor oldState
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   22     0    oldState  Landroid/os/ParcelFileDescriptor;
            0   22     1        data  Landroid/app/backup/BackupDataOutput;
            0   22     2    newState  Landroid/os/ParcelFileDescriptor;
            0   22     3       files  [Ljava/lang/String;
            0   22     4        keys  [Ljava/lang/String;
            4    6     5           f  Ljava/lang/String;
           15   22     5  oldStateFd  Ljava/io/FileDescriptor;
           16   22     6  newStateFd  Ljava/io/FileDescriptor;
           19   22     7         err  I
    MethodParameters:
          Name  Flags
      oldState  
      data      
      newState  
      files     
      keys      

  boolean writeFile(java.io.File, android.app.backup.BackupDataInputStream);
    descriptor: (Ljava/io/File;Landroid/app/backup/BackupDataInputStream;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // android.app.backup.FileBackupHelperBase this
        start local 1 // java.io.File f
        start local 2 // android.app.backup.BackupDataInputStream in
         0: .line 85
            iconst_m1
            istore 3 /* result */
        start local 3 // int result
         1: .line 88
            aload 1 /* f */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
            astore 4 /* parent */
        start local 4 // java.io.File parent
         2: .line 89
            aload 4 /* parent */
            invokevirtual java.io.File.mkdirs:()Z
            pop
         3: .line 91
            aload 0 /* this */
            getfield android.app.backup.FileBackupHelperBase.mPtr:J
            aload 1 /* f */
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            aload 2 /* in */
            getfield android.app.backup.BackupDataInputStream.mData:Landroid/app/backup/BackupDataInput;
            getfield android.app.backup.BackupDataInput.mBackupReader:J
            invokestatic android.app.backup.FileBackupHelperBase.writeFile_native:(JLjava/lang/String;J)I
            istore 3 /* result */
         4: .line 92
            iload 3 /* result */
            ifeq 11
         5: .line 94
            aload 0 /* this */
            getfield android.app.backup.FileBackupHelperBase.mExceptionLogged:Z
            ifne 11
         6: .line 95
            ldc "FileBackupHelperBase"
            new java.lang.StringBuilder
            dup
            ldc "Failed restoring file '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* f */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "' for app '"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 96
            aload 0 /* this */
            getfield android.app.backup.FileBackupHelperBase.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "' result=0x"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 97
            iload 3 /* result */
            invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 95
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        10: .line 98
            aload 0 /* this */
            iconst_1
            putfield android.app.backup.FileBackupHelperBase.mExceptionLogged:Z
        11: .line 101
      StackMap locals: int java.io.File
      StackMap stack:
            iload 3 /* result */
            ifne 12
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        12: iconst_0
            ireturn
        end local 4 // java.io.File parent
        end local 3 // int result
        end local 2 // android.app.backup.BackupDataInputStream in
        end local 1 // java.io.File f
        end local 0 // android.app.backup.FileBackupHelperBase this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Landroid/app/backup/FileBackupHelperBase;
            0   13     1       f  Ljava/io/File;
            0   13     2      in  Landroid/app/backup/BackupDataInputStream;
            1   13     3  result  I
            2   13     4  parent  Ljava/io/File;
    MethodParameters:
      Name  Flags
      f     
      in    

  public void writeNewStateDescription(android.os.ParcelFileDescriptor);
    descriptor: (Landroid/os/ParcelFileDescriptor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.app.backup.FileBackupHelperBase this
        start local 1 // android.os.ParcelFileDescriptor fd
         0: .line 105
            aload 0 /* this */
            getfield android.app.backup.FileBackupHelperBase.mPtr:J
            aload 1 /* fd */
            invokevirtual android.os.ParcelFileDescriptor.getFileDescriptor:()Ljava/io/FileDescriptor;
            invokestatic android.app.backup.FileBackupHelperBase.writeSnapshot_native:(JLjava/io/FileDescriptor;)I
            pop
         1: .line 107
            return
        end local 1 // android.os.ParcelFileDescriptor fd
        end local 0 // android.app.backup.FileBackupHelperBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/app/backup/FileBackupHelperBase;
            0    2     1    fd  Landroid/os/ParcelFileDescriptor;
    MethodParameters:
      Name  Flags
      fd    

  boolean isKeyInList(java.lang.String, java.lang.String[]);
    descriptor: (Ljava/lang/String;[Ljava/lang/String;)Z
    flags: (0x0000) 
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // android.app.backup.FileBackupHelperBase this
        start local 1 // java.lang.String key
        start local 2 // java.lang.String[] list
         0: .line 110
            aload 2 /* list */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 5
      StackMap locals: android.app.backup.FileBackupHelperBase java.lang.String java.lang.String[] top int int java.lang.String[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* s */
        start local 3 // java.lang.String s
         2: .line 111
            aload 3 /* s */
            aload 1 /* key */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 4
         3: .line 112
            iconst_1
            ireturn
        end local 3 // java.lang.String s
         4: .line 110
      StackMap locals:
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         5: iload 4
            iload 5
            if_icmplt 1
         6: .line 115
            iconst_0
            ireturn
        end local 2 // java.lang.String[] list
        end local 1 // java.lang.String key
        end local 0 // android.app.backup.FileBackupHelperBase this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/app/backup/FileBackupHelperBase;
            0    7     1   key  Ljava/lang/String;
            0    7     2  list  [Ljava/lang/String;
            2    4     3     s  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      key   
      list  

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

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

  private static native int performBackup_native(java.io.FileDescriptor, long, java.io.FileDescriptor, java.lang.String[], java.lang.String[]);
    descriptor: (Ljava/io/FileDescriptor;JLjava/io/FileDescriptor;[Ljava/lang/String;[Ljava/lang/String;)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      oldState  
      data      
      newState  
      files     
      keys      

  private static native int writeFile_native(long, java.lang.String, long);
    descriptor: (JLjava/lang/String;J)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
              Name  Flags
      ptr           
      filename      
      backupReader  

  private static native int writeSnapshot_native(long, java.io.FileDescriptor);
    descriptor: (JLjava/io/FileDescriptor;)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      ptr   
      fd    
}
SourceFile: "FileBackupHelperBase.java"