final class android.os.BinderProxy$ProxyMap
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: android.os.BinderProxy$ProxyMap
super_class: java.lang.Object
{
private static final int LOG_MAIN_INDEX_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int MAIN_INDEX_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 256
private static final int MAIN_INDEX_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 255
private static final int CRASH_AT_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 20000
private int mWarnBucketSize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final int WARN_INCREMENT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 10
private int mRandom;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.lang.Long[][] mMainIndexKeys;
descriptor: [[Ljava/lang/Long;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.ArrayList<java.lang.ref.WeakReference<android.os.BinderProxy>>[] mMainIndexValues;
descriptor: [Ljava/util/ArrayList;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: [Ljava/util/ArrayList<Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;>;
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
bipush 20
putfield android.os.BinderProxy$ProxyMap.mWarnBucketSize:I
2: aload 0
sipush 256
anewarray java.lang.Long[]
putfield android.os.BinderProxy$ProxyMap.mMainIndexKeys:[[Ljava/lang/Long;
3: aload 0
4: sipush 256
anewarray java.util.ArrayList
putfield android.os.BinderProxy$ProxyMap.mMainIndexValues:[Ljava/util/ArrayList;
5: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/os/BinderProxy$ProxyMap;
private static int hash(long);
descriptor: (J)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: lload 0
iconst_2
lshr
lload 0
bipush 10
lshr
lxor
l2i
sipush 255
iand
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 arg J
MethodParameters:
Name Flags
arg
private int size();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=6, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield android.os.BinderProxy$ProxyMap.mMainIndexValues:[Ljava/util/ArrayList;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 6
StackMap locals: android.os.BinderProxy$ProxyMap int top int int java.util.ArrayList[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 2
ifnull 5
4: iload 1
aload 2
invokevirtual java.util.ArrayList.size:()I
iadd
istore 1
end local 2 5: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
iload 4
if_icmplt 2
7: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/os/BinderProxy$ProxyMap;
1 8 1 size I
3 5 2 a Ljava/util/ArrayList<Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;>;
private int unclearedSize();
descriptor: ()I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=8, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: aload 0
getfield android.os.BinderProxy$ProxyMap.mMainIndexValues:[Ljava/util/ArrayList;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 10
StackMap locals: android.os.BinderProxy$ProxyMap int top int int java.util.ArrayList[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 2
ifnull 9
4: aload 2
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 7
goto 8
StackMap locals: android.os.BinderProxy$ProxyMap int java.util.ArrayList int int java.util.ArrayList[] top java.util.Iterator
StackMap stack:
5: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.ref.WeakReference
astore 6
start local 6 6: aload 6
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
ifnull 8
7: iinc 1 1
end local 6 8: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 2 9: StackMap locals: android.os.BinderProxy$ProxyMap int top int int java.util.ArrayList[]
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
iload 4
if_icmplt 2
11: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Landroid/os/BinderProxy$ProxyMap;
1 12 1 size I
3 9 2 a Ljava/util/ArrayList<Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;>;
6 8 6 ref Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;
private void remove(int, int);
descriptor: (II)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.os.BinderProxy$ProxyMap.mMainIndexKeys:[[Ljava/lang/Long;
iload 1
aaload
astore 3
start local 3 1: aload 0
getfield android.os.BinderProxy$ProxyMap.mMainIndexValues:[Ljava/util/ArrayList;
iload 1
aaload
astore 4
start local 4 2: aload 4
invokevirtual java.util.ArrayList.size:()I
istore 5
start local 5 3: iload 2
iload 5
iconst_1
isub
if_icmpeq 6
4: aload 3
iload 2
aload 3
iload 5
iconst_1
isub
aaload
aastore
5: aload 4
iload 2
aload 4
iload 5
iconst_1
isub
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.ref.WeakReference
invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
6: StackMap locals: java.lang.Long[] java.util.ArrayList int
StackMap stack:
aload 4
iload 5
iconst_1
isub
invokevirtual java.util.ArrayList.remove:(I)Ljava/lang/Object;
pop
7: 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 8 0 this Landroid/os/BinderProxy$ProxyMap;
0 8 1 hash I
0 8 2 index I
1 8 3 keyArray [Ljava/lang/Long;
2 8 4 valueArray Ljava/util/ArrayList<Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;>;
3 8 5 size I
MethodParameters:
Name Flags
hash
index
android.os.BinderProxy get(long);
descriptor: (J)Landroid/os/BinderProxy;
flags: (0x0000)
Code:
stack=4, locals=12, args_size=2
start local 0 start local 1 0: lload 1
invokestatic android.os.BinderProxy$ProxyMap.hash:(J)I
istore 3
start local 3 1: aload 0
getfield android.os.BinderProxy$ProxyMap.mMainIndexKeys:[[Ljava/lang/Long;
iload 3
aaload
astore 4
start local 4 2: aload 4
ifnonnull 4
3: aconst_null
areturn
4: StackMap locals: int java.lang.Long[]
StackMap stack:
aload 0
getfield android.os.BinderProxy$ProxyMap.mMainIndexValues:[Ljava/util/ArrayList;
iload 3
aaload
astore 5
start local 5 5: aload 5
invokevirtual java.util.ArrayList.size:()I
istore 6
start local 6 6: iconst_0
istore 7
start local 7 7: goto 17
8: StackMap locals: java.util.ArrayList int int
StackMap stack:
aload 4
iload 7
aaload
invokevirtual java.lang.Long.longValue:()J
lstore 8
start local 8 9: lload 1
lload 8
lcmp
ifne 16
10: aload 5
iload 7
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.ref.WeakReference
astore 10
start local 10 11: aload 10
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast android.os.BinderProxy
astore 11
start local 11 12: aload 11
ifnull 14
13: aload 11
areturn
14: StackMap locals: long java.lang.ref.WeakReference android.os.BinderProxy
StackMap stack:
aload 0
iload 3
iload 7
invokevirtual android.os.BinderProxy$ProxyMap.remove:(II)V
15: aconst_null
areturn
end local 11 end local 10 end local 8 16: StackMap locals:
StackMap stack:
iinc 7 1
StackMap locals:
StackMap stack:
17: iload 7
iload 6
if_icmplt 8
end local 7 18: aconst_null
areturn
end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Landroid/os/BinderProxy$ProxyMap;
0 19 1 key J
1 19 3 myHash I
2 19 4 keyArray [Ljava/lang/Long;
5 19 5 valueArray Ljava/util/ArrayList<Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;>;
6 19 6 bucketSize I
7 18 7 i I
9 16 8 foundKey J
11 16 10 wr Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;
12 16 11 bp Landroid/os/BinderProxy;
MethodParameters:
Name Flags
key
void set(long, android.os.BinderProxy);
descriptor: (JLandroid/os/BinderProxy;)V
flags: (0x0000)
Code:
stack=5, locals=11, args_size=3
start local 0 start local 1 start local 3 0: lload 1
invokestatic android.os.BinderProxy$ProxyMap.hash:(J)I
istore 4
start local 4 1: aload 0
getfield android.os.BinderProxy$ProxyMap.mMainIndexValues:[Ljava/util/ArrayList;
iload 4
aaload
astore 5
start local 5 2: aload 5
ifnonnull 5
3: aload 0
getfield android.os.BinderProxy$ProxyMap.mMainIndexValues:[Ljava/util/ArrayList;
iload 4
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
dup_x2
aastore
astore 5
4: aload 0
getfield android.os.BinderProxy$ProxyMap.mMainIndexKeys:[[Ljava/lang/Long;
iload 4
iconst_1
anewarray java.lang.Long
aastore
5: StackMap locals: int java.util.ArrayList
StackMap stack:
aload 5
invokevirtual java.util.ArrayList.size:()I
istore 6
start local 6 6: new java.lang.ref.WeakReference
dup
aload 3
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
astore 7
start local 7 7: iconst_0
istore 8
start local 8 8: goto 19
9: StackMap locals: int java.lang.ref.WeakReference int
StackMap stack:
aload 5
iload 8
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.ref.WeakReference
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
ifnonnull 18
10: aload 5
iload 8
aload 7
invokevirtual java.util.ArrayList.set:(ILjava/lang/Object;)Ljava/lang/Object;
pop
11: aload 0
getfield android.os.BinderProxy$ProxyMap.mMainIndexKeys:[[Ljava/lang/Long;
iload 4
aaload
astore 9
start local 9 12: aload 9
iload 8
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
13: iload 8
iload 6
iconst_1
isub
if_icmpge 17
14: aload 0
dup
getfield android.os.BinderProxy$ProxyMap.mRandom:I
iconst_1
iadd
dup_x1
putfield android.os.BinderProxy$ProxyMap.mRandom:I
iload 6
iload 8
iconst_1
iadd
isub
invokestatic java.lang.Math.floorMod:(II)I
istore 10
start local 10 15: aload 5
iload 8
iconst_1
iadd
iload 10
iadd
invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
checkcast java.lang.ref.WeakReference
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
ifnonnull 17
16: aload 0
iload 4
iload 8
iconst_1
iadd
iload 10
iadd
invokevirtual android.os.BinderProxy$ProxyMap.remove:(II)V
end local 10 17: StackMap locals: java.lang.Long[]
StackMap stack:
return
end local 9 18: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
19: iload 8
iload 6
if_icmplt 9
end local 8 20: aload 5
iload 6
aload 7
invokevirtual java.util.ArrayList.add:(ILjava/lang/Object;)V
21: aload 0
getfield android.os.BinderProxy$ProxyMap.mMainIndexKeys:[[Ljava/lang/Long;
iload 4
aaload
astore 8
start local 8 22: aload 8
arraylength
iload 6
if_icmpne 28
23: iload 6
iload 6
iconst_2
idiv
iadd
iconst_2
iadd
anewarray java.lang.Long
astore 9
start local 9 24: aload 8
iconst_0
aload 9
iconst_0
iload 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
25: aload 9
iload 6
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
26: aload 0
getfield android.os.BinderProxy$ProxyMap.mMainIndexKeys:[[Ljava/lang/Long;
iload 4
aload 9
aastore
end local 9 27: goto 29
28: StackMap locals: android.os.BinderProxy$ProxyMap long android.os.BinderProxy int java.util.ArrayList int java.lang.ref.WeakReference java.lang.Long[]
StackMap stack:
aload 8
iload 6
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
29: StackMap locals:
StackMap stack:
iload 6
aload 0
getfield android.os.BinderProxy$ProxyMap.mWarnBucketSize:I
if_icmplt 50
30: aload 0
invokevirtual android.os.BinderProxy$ProxyMap.size:()I
istore 9
start local 9 31: ldc "Binder"
new java.lang.StringBuilder
dup
ldc "BinderProxy map growth! bucket size = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 6
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
32: ldc " total = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 9
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
33: invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
pop
34: aload 0
dup
getfield android.os.BinderProxy$ProxyMap.mWarnBucketSize:I
bipush 10
iadd
putfield android.os.BinderProxy$ProxyMap.mWarnBucketSize:I
35: getstatic android.os.Build.IS_DEBUGGABLE:Z
ifeq 50
iload 9
sipush 20000
if_icmplt 50
36: aload 0
invokevirtual android.os.BinderProxy$ProxyMap.unclearedSize:()I
istore 10
start local 10 37: iload 10
sipush 20000
if_icmplt 45
38: aload 0
invokevirtual android.os.BinderProxy$ProxyMap.dumpProxyInterfaceCounts:()V
39: aload 0
invokevirtual android.os.BinderProxy$ProxyMap.dumpPerUidProxyCounts:()V
40: invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
invokevirtual java.lang.Runtime.gc:()V
41: new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Binder ProxyMap has too many entries: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
42: iload 9
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " (total), "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 10
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " (uncleared), "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
43: aload 0
invokevirtual android.os.BinderProxy$ProxyMap.unclearedSize:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " (uncleared after GC). BinderProxy leak?"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
44: invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
45: StackMap locals: int int
StackMap stack:
iload 9
iconst_3
iload 10
imul
iconst_2
idiv
if_icmple 50
46: ldc "Binder"
new java.lang.StringBuilder
dup
ldc "BinderProxy map has many cleared entries: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
47: iload 9
iload 10
isub
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " of "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 9
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
48: ldc " are cleared"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
49: invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
pop
end local 10 end local 9 50: StackMap locals:
StackMap stack:
return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 51 0 this Landroid/os/BinderProxy$ProxyMap;
0 51 1 key J
0 51 3 value Landroid/os/BinderProxy;
1 51 4 myHash I
2 51 5 valueArray Ljava/util/ArrayList<Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;>;
6 51 6 size I
7 51 7 newWr Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;
8 20 8 i I
12 18 9 keyArray [Ljava/lang/Long;
15 17 10 rnd I
22 51 8 keyArray [Ljava/lang/Long;
24 27 9 newArray [Ljava/lang/Long;
31 50 9 totalSize I
37 50 10 totalUnclearedSize I
MethodParameters:
Name Flags
key
value
private void dumpProxyInterfaceCounts();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=1
start local 0 0: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 1
start local 1 1: aload 0
getfield android.os.BinderProxy$ProxyMap.mMainIndexValues:[Ljava/util/ArrayList;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 21
StackMap locals: android.os.BinderProxy$ProxyMap java.util.Map top int int java.util.ArrayList[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 2
ifnull 20
4: aload 2
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 7
goto 19
StackMap locals: android.os.BinderProxy$ProxyMap java.util.Map java.util.ArrayList int int java.util.ArrayList[] top java.util.Iterator
StackMap stack:
5: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.ref.WeakReference
astore 6
start local 6 6: aload 6
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast android.os.BinderProxy
astore 8
start local 8 7: aload 8
ifnonnull 10
8: ldc "<cleared weak-ref>"
astore 9
start local 9 9: goto 14
end local 9 10: StackMap locals: android.os.BinderProxy$ProxyMap java.util.Map java.util.ArrayList int int java.util.ArrayList[] java.lang.ref.WeakReference java.util.Iterator android.os.BinderProxy
StackMap stack:
aload 8
invokevirtual android.os.BinderProxy.getInterfaceDescriptor:()Ljava/lang/String;
astore 9
start local 9 11: goto 14
end local 9 StackMap locals:
StackMap stack: java.lang.Throwable
12: pop
13: ldc "<exception during getDescriptor>"
astore 9
start local 9 14: StackMap locals: java.lang.String
StackMap stack:
aload 1
aload 9
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 10
start local 10 15: aload 10
ifnonnull 18
16: aload 1
aload 9
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: goto 19
18: StackMap locals: java.lang.Integer
StackMap stack:
aload 1
aload 9
aload 10
invokevirtual java.lang.Integer.intValue:()I
iconst_1
iadd
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 10 end local 9 end local 8 end local 6 19: StackMap locals: android.os.BinderProxy$ProxyMap java.util.Map java.util.ArrayList int int java.util.ArrayList[] top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 2 20: StackMap locals: android.os.BinderProxy$ProxyMap java.util.Map top int int java.util.ArrayList[]
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
21: iload 3
iload 4
if_icmplt 2
22: aload 1
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
23: aload 1
invokeinterface java.util.Map.size:()I
anewarray java.util.Map$Entry
24: invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.util.Map$Entry[]
astore 2
start local 2 25: aload 2
invokedynamic compare()Ljava/util/Comparator;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)I
android/os/BinderProxy$ProxyMap.lambda$0(Ljava/util/Map$Entry;Ljava/util/Map$Entry;)I (6)
(Ljava/util/Map$Entry;Ljava/util/Map$Entry;)I
invokestatic java.util.Arrays.sort:([Ljava/lang/Object;Ljava/util/Comparator;)V
26: ldc "Binder"
ldc "BinderProxy descriptor histogram (top ten):"
invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
pop
27: bipush 10
aload 2
arraylength
invokestatic java.lang.Math.min:(II)I
istore 3
start local 3 28: iconst_0
istore 4
start local 4 29: goto 34
30: StackMap locals: android.os.BinderProxy$ProxyMap java.util.Map java.util.Map$Entry[] int int
StackMap stack:
ldc "Binder"
new java.lang.StringBuilder
dup
ldc " #"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
iconst_1
iadd
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
iload 4
aaload
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " x"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
31: aload 2
iload 4
aaload
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
32: invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
pop
33: iinc 4 1
StackMap locals:
StackMap stack:
34: iload 4
iload 3
if_icmplt 30
end local 4 35: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Landroid/os/BinderProxy$ProxyMap;
1 36 1 counts Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
3 20 2 a Ljava/util/ArrayList<Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;>;
6 19 6 weakRef Ljava/lang/ref/WeakReference<Landroid/os/BinderProxy;>;
7 19 8 bp Landroid/os/BinderProxy;
9 10 9 key Ljava/lang/String;
11 12 9 key Ljava/lang/String;
14 19 9 key Ljava/lang/String;
15 19 10 i Ljava/lang/Integer;
25 36 2 sorted [Ljava/util/Map$Entry;
28 36 3 printLength I
29 35 4 i I
Exception table:
from to target type
10 11 12 Class java.lang.Throwable
private void dumpPerUidProxyCounts();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=1
start local 0 0: invokestatic com.android.internal.os.BinderInternal.nGetBinderProxyPerUidCounts:()Landroid/util/SparseIntArray;
astore 1
start local 1 1: aload 1
invokevirtual android.util.SparseIntArray.size:()I
ifne 2
return
2: StackMap locals: android.util.SparseIntArray
StackMap stack:
ldc "Binder"
ldc "Per Uid Binder Proxy Counts:"
invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
pop
3: iconst_0
istore 2
start local 2 4: goto 9
5: StackMap locals: int
StackMap stack:
aload 1
iload 2
invokevirtual android.util.SparseIntArray.keyAt:(I)I
istore 3
start local 3 6: aload 1
iload 2
invokevirtual android.util.SparseIntArray.valueAt:(I)I
istore 4
start local 4 7: ldc "Binder"
new java.lang.StringBuilder
dup
ldc "UID : "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " count = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;)I
pop
end local 4 end local 3 8: iinc 2 1
StackMap locals:
StackMap stack:
9: iload 2
aload 1
invokevirtual android.util.SparseIntArray.size:()I
if_icmplt 5
end local 2 10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/os/BinderProxy$ProxyMap;
1 11 1 counts Landroid/util/SparseIntArray;
4 10 2 i I
6 8 3 uid I
7 8 4 binderCount I
private static int lambda$0(java.util.Map$Entry, java.util.Map$Entry);
descriptor: (Ljava/util/Map$Entry;Ljava/util/Map$Entry;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
aload 0
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.compareTo:(Ljava/lang/Integer;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Integer;>;
0 1 1 b Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Integer;>;
}
SourceFile: "Binder.java"
NestHost: android.os.BinderProxy
InnerClasses:
private final ProxyMap = android.os.BinderProxy$ProxyMap of android.os.BinderProxy
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map