public class android.app.backup.BackupHelperDispatcher
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.app.backup.BackupHelperDispatcher
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: "BackupHelperDispatcher"
java.util.TreeMap<java.lang.String, android.app.backup.BackupHelper> mHelpers;
descriptor: Ljava/util/TreeMap;
flags: (0x0000)
Signature: Ljava/util/TreeMap<Ljava/lang/String;Landroid/app/backup/BackupHelper;>;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
putfield android.app.backup.BackupHelperDispatcher.mHelpers:Ljava/util/TreeMap;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/app/backup/BackupHelperDispatcher;
public void addHelper(java.lang.String, android.app.backup.BackupHelper);
descriptor: (Ljava/lang/String;Landroid/app/backup/BackupHelper;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.app.backup.BackupHelperDispatcher.mHelpers:Ljava/util/TreeMap;
aload 1
aload 2
invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/app/backup/BackupHelperDispatcher;
0 2 1 keyPrefix Ljava/lang/String;
0 2 2 helper Landroid/app/backup/BackupHelper;
MethodParameters:
Name Flags
keyPrefix
helper
public void performBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor);
descriptor: (Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new android.app.backup.BackupHelperDispatcher$Header
dup
invokespecial android.app.backup.BackupHelperDispatcher$Header.<init>:()V
astore 5
start local 5 1: aload 0
getfield android.app.backup.BackupHelperDispatcher.mHelpers:Ljava/util/TreeMap;
invokevirtual java.util.TreeMap.clone:()Ljava/lang/Object;
checkcast java.util.TreeMap
astore 6
start local 6 2: aconst_null
astore 7
start local 7 3: aload 1
ifnull 16
4: aload 1
invokevirtual android.os.ParcelFileDescriptor.getFileDescriptor:()Ljava/io/FileDescriptor;
astore 7
5: goto 14
start local 4 6: StackMap locals: android.app.backup.BackupHelperDispatcher android.os.ParcelFileDescriptor android.app.backup.BackupDataOutput android.os.ParcelFileDescriptor int android.app.backup.BackupHelperDispatcher$Header java.util.TreeMap java.io.FileDescriptor
StackMap stack:
iload 4
ifne 14
7: aload 6
aload 5
getfield android.app.backup.BackupHelperDispatcher$Header.keyPrefix:Ljava/lang/String;
invokevirtual java.util.TreeMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.app.backup.BackupHelper
astore 8
start local 8 8: ldc "BackupHelperDispatcher"
new java.lang.StringBuilder
dup
ldc "handling existing helper '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
getfield android.app.backup.BackupHelperDispatcher$Header.keyPrefix:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "' "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
pop
9: aload 8
ifnull 13
10: aload 0
aload 1
aload 2
aload 3
aload 5
aload 8
invokevirtual android.app.backup.BackupHelperDispatcher.doOneBackup:(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupHelperDispatcher$Header;Landroid/app/backup/BackupHelper;)V
11: aload 6
aload 5
getfield android.app.backup.BackupHelperDispatcher$Header.keyPrefix:Ljava/lang/String;
invokevirtual java.util.TreeMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
12: goto 14
13: StackMap locals: android.app.backup.BackupHelper
StackMap stack:
aload 7
aload 5
getfield android.app.backup.BackupHelperDispatcher$Header.chunkSize:I
invokestatic android.app.backup.BackupHelperDispatcher.skipChunk_native:(Ljava/io/FileDescriptor;I)I
pop
end local 8 end local 4 14: StackMap locals: android.app.backup.BackupHelperDispatcher android.os.ParcelFileDescriptor android.app.backup.BackupDataOutput android.os.ParcelFileDescriptor top android.app.backup.BackupHelperDispatcher$Header java.util.TreeMap java.io.FileDescriptor
StackMap stack:
aload 5
aload 7
invokestatic android.app.backup.BackupHelperDispatcher.readHeader_native:(Landroid/app/backup/BackupHelperDispatcher$Header;Ljava/io/FileDescriptor;)I
dup
istore 4
start local 4 15: ifge 6
end local 4 16: StackMap locals:
StackMap stack:
aload 6
invokevirtual java.util.TreeMap.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 9
goto 22
StackMap locals: android.app.backup.BackupHelperDispatcher android.os.ParcelFileDescriptor android.app.backup.BackupDataOutput android.os.ParcelFileDescriptor top android.app.backup.BackupHelperDispatcher$Header java.util.TreeMap java.io.FileDescriptor top java.util.Iterator
StackMap stack:
17: aload 9
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 8
start local 8 18: aload 5
aload 8
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
putfield android.app.backup.BackupHelperDispatcher$Header.keyPrefix:Ljava/lang/String;
19: ldc "BackupHelperDispatcher"
new java.lang.StringBuilder
dup
ldc "handling new helper '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
getfield android.app.backup.BackupHelperDispatcher$Header.keyPrefix:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
pop
20: aload 8
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast android.app.backup.BackupHelper
astore 10
start local 10 21: aload 0
aload 1
aload 2
aload 3
aload 5
aload 10
invokevirtual android.app.backup.BackupHelperDispatcher.doOneBackup:(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupHelperDispatcher$Header;Landroid/app/backup/BackupHelper;)V
end local 10 end local 8 22: StackMap locals:
StackMap stack:
aload 9
invokeinterface java.util.Iterator.hasNext:()Z
ifne 17
23: return
end local 7 end local 6 end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Landroid/app/backup/BackupHelperDispatcher;
0 24 1 oldState Landroid/os/ParcelFileDescriptor;
0 24 2 data Landroid/app/backup/BackupDataOutput;
0 24 3 newState Landroid/os/ParcelFileDescriptor;
6 14 4 err I
15 16 4 err I
1 24 5 header Landroid/app/backup/BackupHelperDispatcher$Header;
2 24 6 helpers Ljava/util/TreeMap<Ljava/lang/String;Landroid/app/backup/BackupHelper;>;
3 24 7 oldStateFD Ljava/io/FileDescriptor;
8 14 8 helper Landroid/app/backup/BackupHelper;
18 22 8 entry Ljava/util/Map$Entry<Ljava/lang/String;Landroid/app/backup/BackupHelper;>;
21 22 10 helper Landroid/app/backup/BackupHelper;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
oldState
data
newState
private void doOneBackup(android.os.ParcelFileDescriptor, android.app.backup.BackupDataOutput, android.os.ParcelFileDescriptor, android.app.backup.BackupHelperDispatcher$Header, android.app.backup.BackupHelper);
descriptor: (Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupHelperDispatcher$Header;Landroid/app/backup/BackupHelper;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 3
invokevirtual android.os.ParcelFileDescriptor.getFileDescriptor:()Ljava/io/FileDescriptor;
astore 7
start local 7 1: aload 4
aload 7
invokestatic android.app.backup.BackupHelperDispatcher.allocateHeader_native:(Landroid/app/backup/BackupHelperDispatcher$Header;Ljava/io/FileDescriptor;)I
istore 8
start local 8 2: iload 8
ifge 4
3: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "allocateHeader_native failed (error "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 8
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: android.app.backup.BackupHelperDispatcher android.os.ParcelFileDescriptor android.app.backup.BackupDataOutput android.os.ParcelFileDescriptor android.app.backup.BackupHelperDispatcher$Header android.app.backup.BackupHelper top java.io.FileDescriptor int
StackMap stack:
aload 2
aload 4
getfield android.app.backup.BackupHelperDispatcher$Header.keyPrefix:Ljava/lang/String;
invokevirtual android.app.backup.BackupDataOutput.setKeyPrefix:(Ljava/lang/String;)V
5: aload 5
aload 1
aload 2
aload 3
invokeinterface android.app.backup.BackupHelper.performBackup:(Landroid/os/ParcelFileDescriptor;Landroid/app/backup/BackupDataOutput;Landroid/os/ParcelFileDescriptor;)V
6: aload 4
aload 7
iload 8
invokestatic android.app.backup.BackupHelperDispatcher.writeHeader_native:(Landroid/app/backup/BackupHelperDispatcher$Header;Ljava/io/FileDescriptor;I)I
istore 6
start local 6 7: iload 6
ifeq 9
8: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "writeHeader_native failed (error "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: android.app.backup.BackupHelperDispatcher android.os.ParcelFileDescriptor android.app.backup.BackupDataOutput android.os.ParcelFileDescriptor android.app.backup.BackupHelperDispatcher$Header android.app.backup.BackupHelper int java.io.FileDescriptor int
StackMap stack:
return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/app/backup/BackupHelperDispatcher;
0 10 1 oldState Landroid/os/ParcelFileDescriptor;
0 10 2 data Landroid/app/backup/BackupDataOutput;
0 10 3 newState Landroid/os/ParcelFileDescriptor;
0 10 4 header Landroid/app/backup/BackupHelperDispatcher$Header;
0 10 5 helper Landroid/app/backup/BackupHelper;
7 10 6 err I
1 10 7 newStateFD Ljava/io/FileDescriptor;
2 10 8 pos I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
oldState
data
newState
header
helper
public void performRestore(android.app.backup.BackupDataInput, int, android.os.ParcelFileDescriptor);
descriptor: (Landroid/app/backup/BackupDataInput;ILandroid/os/ParcelFileDescriptor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=10, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: new android.app.backup.BackupDataInputStream
dup
aload 1
invokespecial android.app.backup.BackupDataInputStream.<init>:(Landroid/app/backup/BackupDataInput;)V
astore 5
start local 5 2: goto 21
3: StackMap locals: int android.app.backup.BackupDataInputStream
StackMap stack:
aload 1
invokevirtual android.app.backup.BackupDataInput.getKey:()Ljava/lang/String;
astore 6
start local 6 4: aload 6
bipush 58
invokevirtual java.lang.String.indexOf:(I)I
istore 7
start local 7 5: iload 7
ifle 17
6: aload 6
iconst_0
iload 7
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 8
start local 8 7: aload 0
getfield android.app.backup.BackupHelperDispatcher.mHelpers:Ljava/util/TreeMap;
aload 8
invokevirtual java.util.TreeMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.app.backup.BackupHelper
astore 9
start local 9 8: aload 9
ifnull 13
9: aload 5
aload 1
invokevirtual android.app.backup.BackupDataInput.getDataSize:()I
putfield android.app.backup.BackupDataInputStream.dataSize:I
10: aload 5
aload 6
iload 7
iconst_1
iadd
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
putfield android.app.backup.BackupDataInputStream.key:Ljava/lang/String;
11: aload 9
aload 5
invokeinterface android.app.backup.BackupHelper.restoreEntity:(Landroid/app/backup/BackupDataInputStream;)V
12: goto 20
13: StackMap locals: android.app.backup.BackupHelperDispatcher android.app.backup.BackupDataInput int android.os.ParcelFileDescriptor int android.app.backup.BackupDataInputStream java.lang.String int java.lang.String android.app.backup.BackupHelper
StackMap stack:
iload 4
ifne 20
14: ldc "BackupHelperDispatcher"
new java.lang.StringBuilder
dup
ldc "Couldn't find helper for: '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
15: iconst_1
istore 4
end local 9 end local 8 16: goto 20
17: StackMap locals:
StackMap stack:
iload 4
ifne 20
18: ldc "BackupHelperDispatcher"
new java.lang.StringBuilder
dup
ldc "Entity with no prefix: '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 6
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "'"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
19: iconst_1
istore 4
20: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.app.backup.BackupDataInput.skipEntityData:()V
end local 7 end local 6 21: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.app.backup.BackupDataInput.readNextHeader:()Z
ifne 3
22: aload 0
getfield android.app.backup.BackupHelperDispatcher.mHelpers:Ljava/util/TreeMap;
invokevirtual java.util.TreeMap.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 7
goto 25
StackMap locals: android.app.backup.BackupHelperDispatcher android.app.backup.BackupDataInput int android.os.ParcelFileDescriptor int android.app.backup.BackupDataInputStream top java.util.Iterator
StackMap stack:
23: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast android.app.backup.BackupHelper
astore 6
start local 6 24: aload 6
aload 3
invokeinterface android.app.backup.BackupHelper.writeNewStateDescription:(Landroid/os/ParcelFileDescriptor;)V
end local 6 25: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 23
26: return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Landroid/app/backup/BackupHelperDispatcher;
0 27 1 input Landroid/app/backup/BackupDataInput;
0 27 2 appVersionCode I
0 27 3 newState Landroid/os/ParcelFileDescriptor;
1 27 4 alreadyComplained Z
2 27 5 stream Landroid/app/backup/BackupDataInputStream;
4 21 6 rawKey Ljava/lang/String;
5 21 7 pos I
7 16 8 prefix Ljava/lang/String;
8 16 9 helper Landroid/app/backup/BackupHelper;
24 25 6 helper Landroid/app/backup/BackupHelper;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
input
appVersionCode
newState
private static native int readHeader_native(android.app.backup.BackupHelperDispatcher$Header, java.io.FileDescriptor);
descriptor: (Landroid/app/backup/BackupHelperDispatcher$Header;Ljava/io/FileDescriptor;)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
h
fd
private static native int skipChunk_native(java.io.FileDescriptor, int);
descriptor: (Ljava/io/FileDescriptor;I)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
fd
bytesToSkip
private static native int allocateHeader_native(android.app.backup.BackupHelperDispatcher$Header, java.io.FileDescriptor);
descriptor: (Landroid/app/backup/BackupHelperDispatcher$Header;Ljava/io/FileDescriptor;)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
h
fd
private static native int writeHeader_native(android.app.backup.BackupHelperDispatcher$Header, java.io.FileDescriptor, int);
descriptor: (Landroid/app/backup/BackupHelperDispatcher$Header;Ljava/io/FileDescriptor;I)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
h
fd
pos
}
SourceFile: "BackupHelperDispatcher.java"
NestMembers:
android.app.backup.BackupHelperDispatcher$Header
InnerClasses:
private Header = android.app.backup.BackupHelperDispatcher$Header of android.app.backup.BackupHelperDispatcher
public abstract Entry = java.util.Map$Entry of java.util.Map