public abstract class android.os.TokenWatcher
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: android.os.TokenWatcher
super_class: java.lang.Object
{
private java.lang.Runnable mNotificationTask;
descriptor: Ljava/lang/Runnable;
flags: (0x0002) ACC_PRIVATE
private java.util.WeakHashMap<android.os.IBinder, android.os.TokenWatcher$Death> mTokens;
descriptor: Ljava/util/WeakHashMap;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/WeakHashMap<Landroid/os/IBinder;Landroid/os/TokenWatcher$Death;>;
private android.os.Handler mHandler;
descriptor: Landroid/os/Handler;
flags: (0x0002) ACC_PRIVATE
private java.lang.String mTag;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private int mNotificationQueue;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private volatile boolean mAcquired;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
public void <init>(android.os.Handler, java.lang.String);
descriptor: (Landroid/os/Handler;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new android.os.TokenWatcher$1
dup
aload 0
invokespecial android.os.TokenWatcher$1.<init>:(Landroid/os/TokenWatcher;)V
putfield android.os.TokenWatcher.mNotificationTask:Ljava/lang/Runnable;
2: aload 0
new java.util.WeakHashMap
dup
invokespecial java.util.WeakHashMap.<init>:()V
putfield android.os.TokenWatcher.mTokens:Ljava/util/WeakHashMap;
3: aload 0
iconst_m1
putfield android.os.TokenWatcher.mNotificationQueue:I
4: aload 0
iconst_0
putfield android.os.TokenWatcher.mAcquired:Z
5: aload 0
aload 1
putfield android.os.TokenWatcher.mHandler:Landroid/os/Handler;
6: aload 0
aload 2
ifnull 7
aload 2
goto 8
StackMap locals: android.os.TokenWatcher android.os.Handler java.lang.String
StackMap stack: android.os.TokenWatcher
7: ldc "TokenWatcher"
StackMap locals: android.os.TokenWatcher android.os.Handler java.lang.String
StackMap stack: android.os.TokenWatcher java.lang.String
8: putfield android.os.TokenWatcher.mTag:Ljava/lang/String;
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/os/TokenWatcher;
0 10 1 h Landroid/os/Handler;
0 10 2 tag Ljava/lang/String;
MethodParameters:
Name Flags
h
tag
public abstract void acquired();
descriptor: ()V
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public abstract void released();
descriptor: ()V
flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
public void acquire(android.os.IBinder, java.lang.String);
descriptor: (Landroid/os/IBinder;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.os.TokenWatcher.mTokens:Ljava/util/WeakHashMap;
dup
astore 3
monitorenter
1: aload 0
getfield android.os.TokenWatcher.mTokens:Ljava/util/WeakHashMap;
aload 1
invokevirtual java.util.WeakHashMap.containsKey:(Ljava/lang/Object;)Z
ifeq 4
2: aload 3
monitorexit
3: return
4: StackMap locals: java.util.WeakHashMap
StackMap stack:
aload 0
getfield android.os.TokenWatcher.mTokens:Ljava/util/WeakHashMap;
invokevirtual java.util.WeakHashMap.size:()I
istore 4
start local 4 5: new android.os.TokenWatcher$Death
dup
aload 0
aload 1
aload 2
invokespecial android.os.TokenWatcher$Death.<init>:(Landroid/os/TokenWatcher;Landroid/os/IBinder;Ljava/lang/String;)V
astore 5
start local 5 6: aload 1
aload 5
iconst_0
invokeinterface android.os.IBinder.linkToDeath:(Landroid/os/IBinder$DeathRecipient;I)V
7: goto 11
StackMap locals: android.os.TokenWatcher android.os.IBinder java.lang.String java.util.WeakHashMap int android.os.TokenWatcher$Death
StackMap stack: android.os.RemoteException
8: pop
9: aload 3
monitorexit
10: return
11: StackMap locals:
StackMap stack:
aload 0
getfield android.os.TokenWatcher.mTokens:Ljava/util/WeakHashMap;
aload 1
aload 5
invokevirtual java.util.WeakHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
12: iload 4
ifne 15
aload 0
getfield android.os.TokenWatcher.mAcquired:Z
ifne 15
13: aload 0
iconst_1
invokevirtual android.os.TokenWatcher.sendNotificationLocked:(Z)V
14: aload 0
iconst_1
putfield android.os.TokenWatcher.mAcquired:Z
end local 5 end local 4 15: StackMap locals:
StackMap stack:
aload 3
monitorexit
16: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
17: aload 3
monitorexit
18: athrow
19: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Landroid/os/TokenWatcher;
0 20 1 token Landroid/os/IBinder;
0 20 2 tag Ljava/lang/String;
5 15 4 oldSize I
6 15 5 d Landroid/os/TokenWatcher$Death;
Exception table:
from to target type
6 7 8 Class android.os.RemoteException
1 3 17 any
4 10 17 any
11 16 17 any
17 18 17 any
MethodParameters:
Name Flags
token
tag
public void cleanup(android.os.IBinder, boolean);
descriptor: (Landroid/os/IBinder;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.os.TokenWatcher.mTokens:Ljava/util/WeakHashMap;
dup
astore 3
monitorenter
1: aload 0
getfield android.os.TokenWatcher.mTokens:Ljava/util/WeakHashMap;
aload 1
invokevirtual java.util.WeakHashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.os.TokenWatcher$Death
astore 4
start local 4 2: iload 2
ifeq 5
aload 4
ifnull 5
3: aload 4
getfield android.os.TokenWatcher$Death.token:Landroid/os/IBinder;
aload 4
iconst_0
invokeinterface android.os.IBinder.unlinkToDeath:(Landroid/os/IBinder$DeathRecipient;I)Z
pop
4: aload 4
aconst_null
putfield android.os.TokenWatcher$Death.token:Landroid/os/IBinder;
5: StackMap locals: java.util.WeakHashMap android.os.TokenWatcher$Death
StackMap stack:
aload 0
getfield android.os.TokenWatcher.mTokens:Ljava/util/WeakHashMap;
invokevirtual java.util.WeakHashMap.size:()I
ifne 8
aload 0
getfield android.os.TokenWatcher.mAcquired:Z
ifeq 8
6: aload 0
iconst_0
invokevirtual android.os.TokenWatcher.sendNotificationLocked:(Z)V
7: aload 0
iconst_0
putfield android.os.TokenWatcher.mAcquired:Z
end local 4 8: StackMap locals:
StackMap stack:
aload 3
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 3
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/os/TokenWatcher;
0 13 1 token Landroid/os/IBinder;
0 13 2 unlink Z
2 8 4 d Landroid/os/TokenWatcher$Death;
Exception table:
from to target type
1 9 10 any
10 11 10 any
MethodParameters:
Name Flags
token
unlink
public void release(android.os.IBinder);
descriptor: (Landroid/os/IBinder;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual android.os.TokenWatcher.cleanup:(Landroid/os/IBinder;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/os/TokenWatcher;
0 2 1 token Landroid/os/IBinder;
MethodParameters:
Name Flags
token
public boolean isAcquired();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield android.os.TokenWatcher.mTokens:Ljava/util/WeakHashMap;
dup
astore 1
monitorenter
1: aload 0
getfield android.os.TokenWatcher.mAcquired:Z
aload 1
monitorexit
2: ireturn
3: StackMap locals: android.os.TokenWatcher java.util.WeakHashMap
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/os/TokenWatcher;
Exception table:
from to target type
1 2 3 any
3 4 3 any
public void dump();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual android.os.TokenWatcher.dumpInternal:()Ljava/util/ArrayList;
astore 1
start local 1 1: aload 1
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 3
goto 4
StackMap locals: android.os.TokenWatcher java.util.ArrayList top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 2
start local 2 3: aload 0
getfield android.os.TokenWatcher.mTag:Ljava/lang/String;
aload 2
invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
pop
end local 2 4: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/os/TokenWatcher;
1 6 1 a Ljava/util/ArrayList<Ljava/lang/String;>;
3 4 2 s Ljava/lang/String;
public void dump(java.io.PrintWriter);
descriptor: (Ljava/io/PrintWriter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.os.TokenWatcher.dumpInternal:()Ljava/util/ArrayList;
astore 2
start local 2 1: aload 2
invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: android.os.TokenWatcher java.io.PrintWriter java.util.ArrayList top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 3
start local 3 3: aload 1
aload 3
invokevirtual java.io.PrintWriter.println:(Ljava/lang/String;)V
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/os/TokenWatcher;
0 6 1 pw Ljava/io/PrintWriter;
1 6 2 a Ljava/util/ArrayList<Ljava/lang/String;>;
3 4 3 s Ljava/lang/String;
MethodParameters:
Name Flags
pw
private java.util.ArrayList<java.lang.String> dumpInternal();
descriptor: ()Ljava/util/ArrayList;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
getfield android.os.TokenWatcher.mTokens:Ljava/util/WeakHashMap;
dup
astore 2
monitorenter
2: aload 0
getfield android.os.TokenWatcher.mTokens:Ljava/util/WeakHashMap;
invokevirtual java.util.WeakHashMap.keySet:()Ljava/util/Set;
astore 3
start local 3 3: aload 1
new java.lang.StringBuilder
dup
ldc "Token count: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield android.os.TokenWatcher.mTokens:Ljava/util/WeakHashMap;
invokevirtual java.util.WeakHashMap.size:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
4: iconst_0
istore 4
start local 4 5: aload 3
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 9
StackMap locals: android.os.TokenWatcher java.util.ArrayList java.util.WeakHashMap java.util.Set int top java.util.Iterator
StackMap stack:
6: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast android.os.IBinder
astore 5
start local 5 7: aload 1
new java.lang.StringBuilder
dup
ldc "["
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc "] "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield android.os.TokenWatcher.mTokens:Ljava/util/WeakHashMap;
aload 5
invokevirtual java.util.WeakHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.os.TokenWatcher$Death
getfield android.os.TokenWatcher$Death.tag: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 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
8: iinc 4 1
end local 5 9: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
end local 4 end local 3 10: aload 2
monitorexit
11: goto 14
StackMap locals: android.os.TokenWatcher java.util.ArrayList java.util.WeakHashMap
StackMap stack: java.lang.Throwable
12: aload 2
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Landroid/os/TokenWatcher;
1 15 1 a Ljava/util/ArrayList<Ljava/lang/String;>;
3 10 3 keys Ljava/util/Set<Landroid/os/IBinder;>;
5 10 4 i I
7 9 5 b Landroid/os/IBinder;
Exception table:
from to target type
2 11 12 any
12 13 12 any
Signature: ()Ljava/util/ArrayList<Ljava/lang/String;>;
private void sendNotificationLocked(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifeq 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: istore 2
start local 2 3: aload 0
getfield android.os.TokenWatcher.mNotificationQueue:I
iconst_m1
if_icmpne 7
4: aload 0
iload 2
putfield android.os.TokenWatcher.mNotificationQueue:I
5: aload 0
getfield android.os.TokenWatcher.mHandler:Landroid/os/Handler;
aload 0
getfield android.os.TokenWatcher.mNotificationTask:Ljava/lang/Runnable;
invokevirtual android.os.Handler.post:(Ljava/lang/Runnable;)Z
pop
6: goto 10
7: StackMap locals: int
StackMap stack:
aload 0
getfield android.os.TokenWatcher.mNotificationQueue:I
iload 2
if_icmpeq 10
8: aload 0
iconst_m1
putfield android.os.TokenWatcher.mNotificationQueue:I
9: aload 0
getfield android.os.TokenWatcher.mHandler:Landroid/os/Handler;
aload 0
getfield android.os.TokenWatcher.mNotificationTask:Ljava/lang/Runnable;
invokevirtual android.os.Handler.removeCallbacks:(Ljava/lang/Runnable;)V
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/os/TokenWatcher;
0 11 1 on Z
3 11 2 value I
MethodParameters:
Name Flags
on
}
SourceFile: "TokenWatcher.java"
NestMembers:
android.os.TokenWatcher$1 android.os.TokenWatcher$Death
InnerClasses:
public abstract DeathRecipient = android.os.IBinder$DeathRecipient of android.os.IBinder
android.os.TokenWatcher$1
private Death = android.os.TokenWatcher$Death of android.os.TokenWatcher