public class android.os.UpdateLock
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.os.UpdateLock
super_class: java.lang.Object
{
private static final boolean DEBUG;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "UpdateLock"
private static android.os.IUpdateLock sService;
descriptor: Landroid/os/IUpdateLock;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
android.os.IBinder mToken;
descriptor: Landroid/os/IBinder;
flags: (0x0000)
int mCount;
descriptor: I
flags: (0x0000)
boolean mRefCounted;
descriptor: Z
flags: (0x0000)
boolean mHeld;
descriptor: Z
flags: (0x0000)
final java.lang.String mTag;
descriptor: Ljava/lang/String;
flags: (0x0010) ACC_FINAL
public static final java.lang.String UPDATE_LOCK_CHANGED;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "android.os.UpdateLock.UPDATE_LOCK_CHANGED"
public static final java.lang.String NOW_IS_CONVENIENT;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "nowisconvenient"
public static final java.lang.String TIMESTAMP;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "timestamp"
private static void checkService();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic android.os.UpdateLock.sService:Landroid/os/IUpdateLock;
ifnonnull 3
1: ldc "updatelock"
invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
2: invokestatic android.os.IUpdateLock$Stub.asInterface:(Landroid/os/IBinder;)Landroid/os/IUpdateLock;
putstatic android.os.UpdateLock.sService:Landroid/os/IUpdateLock;
3: StackMap locals:
StackMap stack:
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)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
iconst_0
putfield android.os.UpdateLock.mCount:I
2: aload 0
iconst_1
putfield android.os.UpdateLock.mRefCounted:Z
3: aload 0
iconst_0
putfield android.os.UpdateLock.mHeld:Z
4: aload 0
aload 1
putfield android.os.UpdateLock.mTag:Ljava/lang/String;
5: aload 0
new android.os.Binder
dup
invokespecial android.os.Binder.<init>:()V
putfield android.os.UpdateLock.mToken:Landroid/os/IBinder;
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/os/UpdateLock;
0 7 1 tag Ljava/lang/String;
MethodParameters:
Name Flags
tag
public void setReferenceCounted(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield android.os.UpdateLock.mRefCounted:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/os/UpdateLock;
0 2 1 isRefCounted Z
MethodParameters:
Name Flags
isRefCounted
public boolean isHeld();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield android.os.UpdateLock.mToken:Landroid/os/IBinder;
dup
astore 1
monitorenter
1: aload 0
getfield android.os.UpdateLock.mHeld:Z
aload 1
monitorexit
2: ireturn
3: StackMap locals: android.os.UpdateLock android.os.IBinder
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/UpdateLock;
Exception table:
from to target type
1 2 3 any
3 4 3 any
public void acquire();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic android.os.UpdateLock.checkService:()V
1: aload 0
getfield android.os.UpdateLock.mToken:Landroid/os/IBinder;
dup
astore 1
monitorenter
2: aload 0
invokevirtual android.os.UpdateLock.acquireLocked:()V
3: aload 1
monitorexit
4: goto 7
StackMap locals: android.os.UpdateLock android.os.IBinder
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/os/UpdateLock;
Exception table:
from to target type
2 4 5 any
5 6 5 any
private void acquireLocked();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield android.os.UpdateLock.mRefCounted:Z
ifeq 1
aload 0
dup
getfield android.os.UpdateLock.mCount:I
dup_x1
iconst_1
iadd
putfield android.os.UpdateLock.mCount:I
ifne 7
1: StackMap locals:
StackMap stack:
getstatic android.os.UpdateLock.sService:Landroid/os/IUpdateLock;
ifnull 6
2: getstatic android.os.UpdateLock.sService:Landroid/os/IUpdateLock;
aload 0
getfield android.os.UpdateLock.mToken:Landroid/os/IBinder;
aload 0
getfield android.os.UpdateLock.mTag:Ljava/lang/String;
invokeinterface android.os.IUpdateLock.acquireUpdateLock:(Landroid/os/IBinder;Ljava/lang/String;)V
3: goto 6
StackMap locals:
StackMap stack: android.os.RemoteException
4: pop
5: ldc "UpdateLock"
ldc "Unable to contact service to acquire"
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
6: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield android.os.UpdateLock.mHeld:Z
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/os/UpdateLock;
Exception table:
from to target type
2 3 4 Class android.os.RemoteException
public void release();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: invokestatic android.os.UpdateLock.checkService:()V
1: aload 0
getfield android.os.UpdateLock.mToken:Landroid/os/IBinder;
dup
astore 1
monitorenter
2: aload 0
invokevirtual android.os.UpdateLock.releaseLocked:()V
3: aload 1
monitorexit
4: goto 7
StackMap locals: android.os.UpdateLock android.os.IBinder
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/os/UpdateLock;
Exception table:
from to target type
2 4 5 any
5 6 5 any
private void releaseLocked();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield android.os.UpdateLock.mRefCounted:Z
ifeq 1
aload 0
dup
getfield android.os.UpdateLock.mCount:I
iconst_1
isub
dup_x1
putfield android.os.UpdateLock.mCount:I
ifne 7
1: StackMap locals:
StackMap stack:
getstatic android.os.UpdateLock.sService:Landroid/os/IUpdateLock;
ifnull 6
2: getstatic android.os.UpdateLock.sService:Landroid/os/IUpdateLock;
aload 0
getfield android.os.UpdateLock.mToken:Landroid/os/IBinder;
invokeinterface android.os.IUpdateLock.releaseUpdateLock:(Landroid/os/IBinder;)V
3: goto 6
StackMap locals:
StackMap stack: android.os.RemoteException
4: pop
5: ldc "UpdateLock"
ldc "Unable to contact service to release"
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
6: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield android.os.UpdateLock.mHeld:Z
7: StackMap locals:
StackMap stack:
aload 0
getfield android.os.UpdateLock.mCount:I
ifge 9
8: new java.lang.RuntimeException
dup
ldc "UpdateLock under-locked"
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/os/UpdateLock;
Exception table:
from to target type
2 3 4 Class android.os.RemoteException
protected void finalize();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield android.os.UpdateLock.mToken:Landroid/os/IBinder;
dup
astore 1
monitorenter
1: aload 0
getfield android.os.UpdateLock.mHeld:Z
ifeq 7
2: ldc "UpdateLock"
ldc "UpdateLock finalized while still held"
invokestatic android.util.Log.wtf:(Ljava/lang/String;Ljava/lang/String;)I
pop
3: getstatic android.os.UpdateLock.sService:Landroid/os/IUpdateLock;
aload 0
getfield android.os.UpdateLock.mToken:Landroid/os/IBinder;
invokeinterface android.os.IUpdateLock.releaseUpdateLock:(Landroid/os/IBinder;)V
4: goto 7
StackMap locals: android.os.UpdateLock android.os.IBinder
StackMap stack: android.os.RemoteException
5: pop
6: ldc "UpdateLock"
ldc "Unable to contact service to release"
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
7: StackMap locals:
StackMap stack:
aload 1
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 1
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Landroid/os/UpdateLock;
Exception table:
from to target type
3 4 5 Class android.os.RemoteException
1 8 9 any
9 10 9 any
Exceptions:
throws java.lang.Throwable
}
SourceFile: "UpdateLock.java"
InnerClasses:
public abstract Stub = android.os.IUpdateLock$Stub of android.os.IUpdateLock