final class com.android.providers.settings.GenerationRegistry
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.android.providers.settings.GenerationRegistry
super_class: java.lang.Object
{
private static final java.lang.String LOG_TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "GenerationRegistry"
private static final boolean DEBUG;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private final java.lang.Object mLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final android.util.SparseIntArray mKeyToIndexMap;
descriptor: Landroid/util/SparseIntArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
RuntimeInvisibleAnnotations:
com.android.internal.annotations.GuardedBy(value = "mLock")
private android.util.MemoryIntArray mBackingStore;
descriptor: Landroid/util/MemoryIntArray;
flags: (0x0002) ACC_PRIVATE
RuntimeInvisibleAnnotations:
com.android.internal.annotations.GuardedBy(value = "mLock")
public void <init>(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new android.util.SparseIntArray
dup
invokespecial android.util.SparseIntArray.<init>:()V
putfield com.android.providers.settings.GenerationRegistry.mKeyToIndexMap:Landroid/util/SparseIntArray;
2: aload 0
aload 1
putfield com.android.providers.settings.GenerationRegistry.mLock:Ljava/lang/Object;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/android/providers/settings/GenerationRegistry;
0 4 1 lock Ljava/lang/Object;
MethodParameters:
Name Flags
lock
public void incrementGeneration(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.android.providers.settings.GenerationRegistry.mLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual com.android.providers.settings.GenerationRegistry.getBackingStoreLocked:()Landroid/util/MemoryIntArray;
astore 3
start local 3 2: aload 3
ifnull 11
3: iload 1
aload 0
getfield com.android.providers.settings.GenerationRegistry.mKeyToIndexMap:Landroid/util/SparseIntArray;
aload 3
invokestatic com.android.providers.settings.GenerationRegistry.getKeyIndexLocked:(ILandroid/util/SparseIntArray;Landroid/util/MemoryIntArray;)I
istore 4
start local 4 4: iload 4
iflt 11
5: aload 3
iload 4
invokevirtual android.util.MemoryIntArray.get:(I)I
iconst_1
iadd
istore 5
start local 5 6: aload 3
iload 4
iload 5
invokevirtual android.util.MemoryIntArray.set:(II)V
end local 5 end local 4 7: goto 11
StackMap locals: com.android.providers.settings.GenerationRegistry int java.lang.Object android.util.MemoryIntArray
StackMap stack: java.io.IOException
8: astore 4
start local 4 9: ldc "GenerationRegistry"
ldc "Error updating generation id"
aload 4
invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
10: aload 0
invokevirtual com.android.providers.settings.GenerationRegistry.destroyBackingStore:()V
end local 4 end local 3 11: StackMap locals:
StackMap stack:
aload 2
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 2
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/android/providers/settings/GenerationRegistry;
0 16 1 key I
2 11 3 backingStore Landroid/util/MemoryIntArray;
4 7 4 index I
6 7 5 generation I
9 11 4 e Ljava/io/IOException;
Exception table:
from to target type
3 7 8 Class java.io.IOException
1 12 13 any
13 14 13 any
MethodParameters:
Name Flags
key
public void addGenerationData(android.os.Bundle, int);
descriptor: (Landroid/os/Bundle;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.android.providers.settings.GenerationRegistry.mLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
invokevirtual com.android.providers.settings.GenerationRegistry.getBackingStoreLocked:()Landroid/util/MemoryIntArray;
astore 4
start local 4 2: aload 4
ifnull 16
3: iload 2
aload 0
getfield com.android.providers.settings.GenerationRegistry.mKeyToIndexMap:Landroid/util/SparseIntArray;
aload 4
invokestatic com.android.providers.settings.GenerationRegistry.getKeyIndexLocked:(ILandroid/util/SparseIntArray;Landroid/util/MemoryIntArray;)I
istore 5
start local 5 4: iload 5
iflt 16
5: aload 1
ldc "_track_generation"
6: aload 4
7: invokevirtual android.os.Bundle.putParcelable:(Ljava/lang/String;Landroid/os/Parcelable;)V
8: aload 1
ldc "_generation_index"
iload 5
invokevirtual android.os.Bundle.putInt:(Ljava/lang/String;I)V
9: aload 1
ldc "_generation"
10: aload 4
iload 5
invokevirtual android.util.MemoryIntArray.get:(I)I
11: invokevirtual android.os.Bundle.putInt:(Ljava/lang/String;I)V
end local 5 12: goto 16
StackMap locals: com.android.providers.settings.GenerationRegistry android.os.Bundle int java.lang.Object android.util.MemoryIntArray
StackMap stack: java.io.IOException
13: astore 5
start local 5 14: ldc "GenerationRegistry"
ldc "Error adding generation data"
aload 5
invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
15: aload 0
invokevirtual com.android.providers.settings.GenerationRegistry.destroyBackingStore:()V
end local 5 end local 4 16: StackMap locals:
StackMap stack:
aload 3
monitorexit
17: goto 20
StackMap locals:
StackMap stack: java.lang.Throwable
18: aload 3
monitorexit
19: athrow
20: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/android/providers/settings/GenerationRegistry;
0 21 1 bundle Landroid/os/Bundle;
0 21 2 key I
2 16 4 backingStore Landroid/util/MemoryIntArray;
4 12 5 index I
14 16 5 e Ljava/io/IOException;
Exception table:
from to target type
2 12 13 Class java.io.IOException
1 17 18 any
18 19 18 any
MethodParameters:
Name Flags
bundle
key
public void onUserRemoved(int);
descriptor: (I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield com.android.providers.settings.GenerationRegistry.mLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
invokevirtual com.android.providers.settings.GenerationRegistry.getBackingStoreLocked:()Landroid/util/MemoryIntArray;
astore 3
start local 3 2: aload 3
ifnull 13
aload 0
getfield com.android.providers.settings.GenerationRegistry.mKeyToIndexMap:Landroid/util/SparseIntArray;
invokevirtual android.util.SparseIntArray.size:()I
ifle 13
3: iconst_2
iload 1
4: invokestatic com.android.providers.settings.SettingsProvider.makeKey:(II)I
istore 4
start local 4 5: iload 4
aload 0
getfield com.android.providers.settings.GenerationRegistry.mKeyToIndexMap:Landroid/util/SparseIntArray;
aload 3
invokestatic com.android.providers.settings.GenerationRegistry.resetSlotForKeyLocked:(ILandroid/util/SparseIntArray;Landroid/util/MemoryIntArray;)V
6: iconst_1
iload 1
7: invokestatic com.android.providers.settings.SettingsProvider.makeKey:(II)I
istore 5
start local 5 8: iload 5
aload 0
getfield com.android.providers.settings.GenerationRegistry.mKeyToIndexMap:Landroid/util/SparseIntArray;
aload 3
invokestatic com.android.providers.settings.GenerationRegistry.resetSlotForKeyLocked:(ILandroid/util/SparseIntArray;Landroid/util/MemoryIntArray;)V
end local 5 end local 4 9: goto 13
StackMap locals: com.android.providers.settings.GenerationRegistry int java.lang.Object android.util.MemoryIntArray
StackMap stack: java.io.IOException
10: astore 4
start local 4 11: ldc "GenerationRegistry"
ldc "Error cleaning up for user"
aload 4
invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
12: aload 0
invokevirtual com.android.providers.settings.GenerationRegistry.destroyBackingStore:()V
end local 4 end local 3 13: StackMap locals:
StackMap stack:
aload 2
monitorexit
14: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: aload 2
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/android/providers/settings/GenerationRegistry;
0 18 1 userId I
2 13 3 backingStore Landroid/util/MemoryIntArray;
5 9 4 secureKey I
8 9 5 systemKey I
11 13 4 e Ljava/io/IOException;
Exception table:
from to target type
3 9 10 Class java.io.IOException
1 14 15 any
15 16 15 any
MethodParameters:
Name Flags
userId
private android.util.MemoryIntArray getBackingStoreLocked();
descriptor: ()Landroid/util/MemoryIntArray;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield com.android.providers.settings.GenerationRegistry.mBackingStore:Landroid/util/MemoryIntArray;
ifnonnull 6
1: bipush 13
iconst_2
invokestatic android.os.UserManager.getMaxSupportedUsers:()I
imul
iadd
istore 1
start local 1 2: aload 0
new android.util.MemoryIntArray
dup
iload 1
invokespecial android.util.MemoryIntArray.<init>:(I)V
putfield com.android.providers.settings.GenerationRegistry.mBackingStore:Landroid/util/MemoryIntArray;
3: goto 6
StackMap locals: com.android.providers.settings.GenerationRegistry int
StackMap stack: java.io.IOException
4: astore 2
start local 2 5: ldc "GenerationRegistry"
ldc "Error creating generation tracker"
aload 2
invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 2 end local 1 6: StackMap locals:
StackMap stack:
aload 0
getfield com.android.providers.settings.GenerationRegistry.mBackingStore:Landroid/util/MemoryIntArray;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/android/providers/settings/GenerationRegistry;
2 6 1 size I
5 6 2 e Ljava/io/IOException;
Exception table:
from to target type
2 3 4 Class java.io.IOException
private void destroyBackingStore();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.android.providers.settings.GenerationRegistry.mBackingStore:Landroid/util/MemoryIntArray;
ifnull 6
1: aload 0
getfield com.android.providers.settings.GenerationRegistry.mBackingStore:Landroid/util/MemoryIntArray;
invokevirtual android.util.MemoryIntArray.close:()V
2: goto 5
StackMap locals:
StackMap stack: java.io.IOException
3: astore 1
start local 1 4: ldc "GenerationRegistry"
ldc "Cannot close generation memory array"
aload 1
invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 1 5: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield com.android.providers.settings.GenerationRegistry.mBackingStore:Landroid/util/MemoryIntArray;
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/android/providers/settings/GenerationRegistry;
4 5 1 e Ljava/io/IOException;
Exception table:
from to target type
1 2 3 Class java.io.IOException
private static void resetSlotForKeyLocked(int, android.util.SparseIntArray, android.util.MemoryIntArray);
descriptor: (ILandroid/util/SparseIntArray;Landroid/util/MemoryIntArray;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iload 0
iconst_m1
invokevirtual android.util.SparseIntArray.get:(II)I
istore 3
start local 3 1: iload 3
iflt 4
2: aload 1
iload 0
invokevirtual android.util.SparseIntArray.delete:(I)V
3: aload 2
iload 3
iconst_0
invokevirtual android.util.MemoryIntArray.set:(II)V
4: StackMap locals: int
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 key I
0 5 1 keyToIndexMap Landroid/util/SparseIntArray;
0 5 2 backingStore Landroid/util/MemoryIntArray;
1 5 3 index I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
key
keyToIndexMap
backingStore
private static int getKeyIndexLocked(int, android.util.SparseIntArray, android.util.MemoryIntArray);
descriptor: (ILandroid/util/SparseIntArray;Landroid/util/MemoryIntArray;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iload 0
iconst_m1
invokevirtual android.util.SparseIntArray.get:(II)I
istore 3
start local 3 1: iload 3
ifge 8
2: aload 2
invokestatic com.android.providers.settings.GenerationRegistry.findNextEmptyIndex:(Landroid/util/MemoryIntArray;)I
istore 3
3: iload 3
iflt 7
4: aload 2
iload 3
iconst_1
invokevirtual android.util.MemoryIntArray.set:(II)V
5: aload 1
iload 0
iload 3
invokevirtual android.util.SparseIntArray.append:(II)V
6: goto 8
7: StackMap locals: int
StackMap stack:
ldc "GenerationRegistry"
ldc "Could not allocate generation index"
invokestatic android.util.Slog.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
8: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 key I
0 9 1 keyToIndexMap Landroid/util/SparseIntArray;
0 9 2 backingStore Landroid/util/MemoryIntArray;
1 9 3 index I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
key
keyToIndexMap
backingStore
private static int findNextEmptyIndex(android.util.MemoryIntArray);
descriptor: (Landroid/util/MemoryIntArray;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual android.util.MemoryIntArray.size:()I
istore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 6
3: StackMap locals: int int
StackMap stack:
aload 0
iload 2
invokevirtual android.util.MemoryIntArray.get:(I)I
ifne 5
4: iload 2
ireturn
5: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
6: iload 2
iload 1
if_icmplt 3
end local 2 7: iconst_m1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 backingStore Landroid/util/MemoryIntArray;
1 8 1 size I
2 7 2 i I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
backingStore
}
SourceFile: "GenerationRegistry.java"