public abstract class android.content.pm.split.SplitDependencyLoader<E extends java.lang.Exception>
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: android.content.pm.split.SplitDependencyLoader
super_class: java.lang.Object
{
private final android.util.SparseArray<int[]> mDependencies;
descriptor: Landroid/util/SparseArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Landroid/util/SparseArray<[I>;
protected void <init>(android.util.SparseArray<int[]>);
descriptor: (Landroid/util/SparseArray;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield android.content.pm.split.SplitDependencyLoader.mDependencies:Landroid/util/SparseArray;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/content/pm/split/SplitDependencyLoader<TE;>;
0 3 1 dependencies Landroid/util/SparseArray<[I>;
Signature: (Landroid/util/SparseArray<[I>;)V
MethodParameters:
Name Flags
dependencies
protected void loadDependenciesForSplit() throws E;
descriptor: (I)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokevirtual android.content.pm.split.SplitDependencyLoader.isSplitCached:(I)Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
iload 1
ifne 6
3: aload 0
iconst_0
invokevirtual android.content.pm.split.SplitDependencyLoader.collectConfigSplitIndices:(I)[I
astore 2
start local 2 4: aload 0
iconst_0
aload 2
iconst_m1
invokevirtual android.content.pm.split.SplitDependencyLoader.constructSplit:(I[II)V
5: return
end local 2 6: StackMap locals:
StackMap stack:
new android.util.IntArray
dup
invokespecial android.util.IntArray.<init>:()V
astore 2
start local 2 7: aload 2
iload 1
invokevirtual android.util.IntArray.add:(I)V
8: StackMap locals: android.util.IntArray
StackMap stack:
aload 0
getfield android.content.pm.split.SplitDependencyLoader.mDependencies:Landroid/util/SparseArray;
iload 1
invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
checkcast int[]
astore 3
start local 3 9: aload 3
ifnull 12
aload 3
arraylength
ifle 12
10: aload 3
iconst_0
iaload
istore 1
11: goto 13
12: StackMap locals: int[]
StackMap stack:
iconst_m1
istore 1
13: StackMap locals:
StackMap stack:
iload 1
iflt 17
aload 0
iload 1
invokevirtual android.content.pm.split.SplitDependencyLoader.isSplitCached:(I)Z
ifeq 15
14: goto 17
15: StackMap locals:
StackMap stack:
aload 2
iload 1
invokevirtual android.util.IntArray.add:(I)V
end local 3 16: goto 8
17: StackMap locals:
StackMap stack:
iload 1
istore 3
start local 3 18: aload 2
invokevirtual android.util.IntArray.size:()I
iconst_1
isub
istore 4
start local 4 19: goto 25
20: StackMap locals: int int
StackMap stack:
aload 2
iload 4
invokevirtual android.util.IntArray.get:(I)I
istore 5
start local 5 21: aload 0
iload 5
invokevirtual android.content.pm.split.SplitDependencyLoader.collectConfigSplitIndices:(I)[I
astore 6
start local 6 22: aload 0
iload 5
aload 6
iload 3
invokevirtual android.content.pm.split.SplitDependencyLoader.constructSplit:(I[II)V
23: iload 5
istore 3
end local 6 end local 5 24: iinc 4 -1
StackMap locals:
StackMap stack:
25: iload 4
ifge 20
end local 4 26: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Landroid/content/pm/split/SplitDependencyLoader<TE;>;
0 27 1 splitIdx I
4 6 2 configSplitIndices [I
7 27 2 linearDependencies Landroid/util/IntArray;
9 16 3 deps [I
18 27 3 parentIdx I
19 26 4 i I
21 24 5 idx I
22 24 6 configSplitIndices [I
Exceptions:
throws java.lang.Exception
Signature: (I)V^TE;
MethodParameters:
Name Flags
splitIdx
private int[] collectConfigSplitIndices(int);
descriptor: (I)[I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tEmptyArray cannot be resolved to a variable\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/content/pm/split/SplitDependencyLoader<TE;>;
MethodParameters:
Name Flags
splitIdx
protected abstract boolean isSplitCached(int);
descriptor: (I)Z
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
MethodParameters:
Name Flags
splitIdx
protected abstract void constructSplit(int, int[], ) throws E;
descriptor: (I[II)V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws java.lang.Exception
Signature: (I[II)V^TE;
MethodParameters:
Name Flags
splitIdx
configSplitIndices
parentSplitIdx
private static int[] append(int[], int);
descriptor: ([II)[I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
ifnonnull 2
1: iconst_1
newarray 10
dup
iconst_0
iload 1
iastore
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 0
arraylength
iconst_1
iadd
invokestatic java.util.Arrays.copyOf:([II)[I
astore 2
start local 2 3: aload 2
aload 0
arraylength
iload 1
iastore
4: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 src [I
0 5 1 elem I
3 5 2 dst [I
MethodParameters:
Name Flags
src
elem
public static android.util.SparseArray<int[]> createDependenciesFromPackage(android.content.pm.PackageParser$PackageLite);
descriptor: (Landroid/content/pm/PackageParser$PackageLite;)Landroid/util/SparseArray;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=7, args_size=1
start local 0 0: new android.util.SparseArray
dup
invokespecial android.util.SparseArray.<init>:()V
astore 1
start local 1 1: aload 1
iconst_0
iconst_1
newarray 10
dup
iconst_0
iconst_m1
iastore
invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
2: iconst_0
istore 2
start local 2 3: goto 18
4: StackMap locals: android.util.SparseArray int
StackMap stack:
aload 0
getfield android.content.pm.PackageParser$PackageLite.isFeatureSplits:[Z
iload 2
baload
ifne 6
5: goto 17
6: StackMap locals:
StackMap stack:
aload 0
getfield android.content.pm.PackageParser$PackageLite.usesSplitNames:[Ljava/lang/String;
iload 2
aaload
astore 4
start local 4 7: aload 4
ifnull 15
8: aload 0
getfield android.content.pm.PackageParser$PackageLite.splitNames:[Ljava/lang/String;
aload 4
invokestatic java.util.Arrays.binarySearch:([Ljava/lang/Object;Ljava/lang/Object;)I
istore 5
start local 5 9: iload 5
ifge 13
10: new android.content.pm.split.SplitDependencyLoader$IllegalDependencyException
dup
new java.lang.StringBuilder
dup
ldc "Split '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield android.content.pm.PackageParser$PackageLite.splitNames:[Ljava/lang/String;
iload 2
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
11: ldc "' requires split '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "', which is missing."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
12: invokespecial android.content.pm.split.SplitDependencyLoader$IllegalDependencyException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals: android.content.pm.PackageParser$PackageLite android.util.SparseArray int top java.lang.String int
StackMap stack:
iload 5
iconst_1
iadd
istore 3
end local 5 start local 3 14: goto 16
end local 3 15: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 16: StackMap locals: android.content.pm.PackageParser$PackageLite android.util.SparseArray int int java.lang.String
StackMap stack:
aload 1
iload 2
iconst_1
iadd
iconst_1
newarray 10
dup
iconst_0
iload 3
iastore
invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
end local 4 end local 3 17: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
18: iload 2
aload 0
getfield android.content.pm.PackageParser$PackageLite.splitNames:[Ljava/lang/String;
arraylength
if_icmplt 4
end local 2 19: iconst_0
istore 2
start local 2 20: goto 42
21: StackMap locals:
StackMap stack:
aload 0
getfield android.content.pm.PackageParser$PackageLite.isFeatureSplits:[Z
iload 2
baload
ifeq 23
22: goto 41
23: StackMap locals:
StackMap stack:
aload 0
getfield android.content.pm.PackageParser$PackageLite.configForSplit:[Ljava/lang/String;
iload 2
aaload
astore 4
start local 4 24: aload 4
ifnull 37
25: aload 0
getfield android.content.pm.PackageParser$PackageLite.splitNames:[Ljava/lang/String;
aload 4
invokestatic java.util.Arrays.binarySearch:([Ljava/lang/Object;Ljava/lang/Object;)I
istore 5
start local 5 26: iload 5
ifge 30
27: new android.content.pm.split.SplitDependencyLoader$IllegalDependencyException
dup
new java.lang.StringBuilder
dup
ldc "Split '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield android.content.pm.PackageParser$PackageLite.splitNames:[Ljava/lang/String;
iload 2
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
28: ldc "' targets split '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 4
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "', which is missing."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
29: invokespecial android.content.pm.split.SplitDependencyLoader$IllegalDependencyException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals: android.content.pm.PackageParser$PackageLite android.util.SparseArray int top java.lang.String int
StackMap stack:
aload 0
getfield android.content.pm.PackageParser$PackageLite.isFeatureSplits:[Z
iload 5
baload
ifne 35
31: new android.content.pm.split.SplitDependencyLoader$IllegalDependencyException
dup
new java.lang.StringBuilder
dup
ldc "Split '"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield android.content.pm.PackageParser$PackageLite.splitNames:[Ljava/lang/String;
iload 2
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
32: ldc "' declares itself as configuration split for a non-feature split '"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
33: aload 0
getfield android.content.pm.PackageParser$PackageLite.splitNames:[Ljava/lang/String;
iload 5
aaload
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;
34: invokespecial android.content.pm.split.SplitDependencyLoader$IllegalDependencyException.<init>:(Ljava/lang/String;)V
athrow
35: StackMap locals:
StackMap stack:
iload 5
iconst_1
iadd
istore 3
end local 5 start local 3 36: goto 38
end local 3 37: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 38: StackMap locals: android.content.pm.PackageParser$PackageLite android.util.SparseArray int int java.lang.String
StackMap stack:
aload 1
iload 3
39: aload 1
iload 3
invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
checkcast int[]
iload 2
iconst_1
iadd
invokestatic android.content.pm.split.SplitDependencyLoader.append:([II)[I
40: invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
end local 4 end local 3 41: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
42: iload 2
aload 0
getfield android.content.pm.PackageParser$PackageLite.splitNames:[Ljava/lang/String;
arraylength
if_icmplt 21
end local 2 43: new java.util.BitSet
dup
invokespecial java.util.BitSet.<init>:()V
astore 2
start local 2 44: iconst_0
istore 3
start local 3 45: aload 1
invokevirtual android.util.SparseArray.size:()I
istore 4
start local 4 46: goto 59
47: StackMap locals: android.content.pm.PackageParser$PackageLite android.util.SparseArray java.util.BitSet int int
StackMap stack:
aload 1
iload 3
invokevirtual android.util.SparseArray.keyAt:(I)I
istore 5
start local 5 48: aload 2
invokevirtual java.util.BitSet.clear:()V
49: goto 57
50: StackMap locals: int
StackMap stack:
aload 2
iload 5
invokevirtual java.util.BitSet.get:(I)Z
ifeq 52
51: new android.content.pm.split.SplitDependencyLoader$IllegalDependencyException
dup
ldc "Cycle detected in split dependencies."
invokespecial android.content.pm.split.SplitDependencyLoader$IllegalDependencyException.<init>:(Ljava/lang/String;)V
athrow
52: StackMap locals:
StackMap stack:
aload 2
iload 5
invokevirtual java.util.BitSet.set:(I)V
53: aload 1
iload 5
invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
checkcast int[]
astore 6
start local 6 54: aload 6
ifnull 55
aload 6
iconst_0
iaload
goto 56
StackMap locals: int[]
StackMap stack:
55: iconst_m1
StackMap locals:
StackMap stack: int
56: istore 5
end local 6 57: StackMap locals:
StackMap stack:
iload 5
iconst_m1
if_icmpne 50
end local 5 58: iinc 3 1
StackMap locals:
StackMap stack:
59: iload 3
iload 4
if_icmplt 47
end local 4 end local 3 60: aload 1
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 61 0 pkg Landroid/content/pm/PackageParser$PackageLite;
1 61 1 splitDependencies Landroid/util/SparseArray<[I>;
3 19 2 splitIdx I
14 15 3 targetIdx I
16 17 3 targetIdx I
7 17 4 splitDependency Ljava/lang/String;
9 14 5 depIdx I
20 43 2 splitIdx I
36 37 3 targetSplitIdx I
38 41 3 targetSplitIdx I
24 41 4 configForSplit Ljava/lang/String;
26 36 5 depIdx I
44 61 2 bitset Ljava/util/BitSet;
45 60 3 i I
46 60 4 size I
48 58 5 splitIdx I
54 57 6 deps [I
Exceptions:
throws android.content.pm.split.SplitDependencyLoader$IllegalDependencyException
Signature: (Landroid/content/pm/PackageParser$PackageLite;)Landroid/util/SparseArray<[I>;
MethodParameters:
Name Flags
pkg
}
Signature: <E:Ljava/lang/Exception;>Ljava/lang/Object;
SourceFile: "SplitDependencyLoader.java"
NestMembers:
android.content.pm.split.SplitDependencyLoader$IllegalDependencyException
InnerClasses:
public PackageLite = android.content.pm.PackageParser$PackageLite of android.content.pm.PackageParser
public IllegalDependencyException = android.content.pm.split.SplitDependencyLoader$IllegalDependencyException of android.content.pm.split.SplitDependencyLoader