public class android.net.wifi.WifiManager$MulticastLock
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.net.wifi.WifiManager$MulticastLock
super_class: java.lang.Object
{
private java.lang.String mTag;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private final android.os.IBinder mBinder;
descriptor: Landroid/os/IBinder;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int mRefCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean mRefCounted;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean mHeld;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
final android.net.wifi.WifiManager this$0;
descriptor: Landroid/net/wifi/WifiManager;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(android.net.wifi.WifiManager, java.lang.String);
descriptor: (Landroid/net/wifi/WifiManager;Ljava/lang/String;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield android.net.wifi.WifiManager$MulticastLock.this$0:Landroid/net/wifi/WifiManager;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 2
putfield android.net.wifi.WifiManager$MulticastLock.mTag:Ljava/lang/String;
2: aload 0
new android.os.Binder
dup
invokespecial android.os.Binder.<init>:()V
putfield android.net.wifi.WifiManager$MulticastLock.mBinder:Landroid/os/IBinder;
3: aload 0
iconst_0
putfield android.net.wifi.WifiManager$MulticastLock.mRefCount:I
4: aload 0
iconst_1
putfield android.net.wifi.WifiManager$MulticastLock.mRefCounted:Z
5: aload 0
iconst_0
putfield android.net.wifi.WifiManager$MulticastLock.mHeld:Z
6: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/net/wifi/WifiManager$MulticastLock;
0 7 2 tag Ljava/lang/String;
MethodParameters:
Name Flags
this$0 final
tag
public void acquire();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield android.net.wifi.WifiManager$MulticastLock.mBinder:Landroid/os/IBinder;
dup
astore 1
monitorenter
1: aload 0
getfield android.net.wifi.WifiManager$MulticastLock.mRefCounted:Z
ifeq 2
aload 0
dup
getfield android.net.wifi.WifiManager$MulticastLock.mRefCount:I
iconst_1
iadd
dup_x1
putfield android.net.wifi.WifiManager$MulticastLock.mRefCount:I
iconst_1
if_icmpne 18
goto 3
StackMap locals: android.os.IBinder
StackMap stack:
2: aload 0
getfield android.net.wifi.WifiManager$MulticastLock.mHeld:Z
ifne 18
3: StackMap locals:
StackMap stack:
aload 0
getfield android.net.wifi.WifiManager$MulticastLock.this$0:Landroid/net/wifi/WifiManager;
getfield android.net.wifi.WifiManager.mService:Landroid/net/wifi/IWifiManager;
aload 0
getfield android.net.wifi.WifiManager$MulticastLock.mBinder:Landroid/os/IBinder;
aload 0
getfield android.net.wifi.WifiManager$MulticastLock.mTag:Ljava/lang/String;
invokeinterface android.net.wifi.IWifiManager.acquireMulticastLock:(Landroid/os/IBinder;Ljava/lang/String;)V
4: aload 0
getfield android.net.wifi.WifiManager$MulticastLock.this$0:Landroid/net/wifi/WifiManager;
dup
astore 2
monitorenter
5: aload 0
getfield android.net.wifi.WifiManager$MulticastLock.this$0:Landroid/net/wifi/WifiManager;
getfield android.net.wifi.WifiManager.mActiveLockCount:I
bipush 50
if_icmplt 10
6: aload 0
getfield android.net.wifi.WifiManager$MulticastLock.this$0:Landroid/net/wifi/WifiManager;
getfield android.net.wifi.WifiManager.mService:Landroid/net/wifi/IWifiManager;
invokeinterface android.net.wifi.IWifiManager.releaseMulticastLock:()V
7: new java.lang.UnsupportedOperationException
dup
8: ldc "Exceeded maximum number of wifi locks"
9: invokespecial java.lang.UnsupportedOperationException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals: android.net.wifi.WifiManager
StackMap stack:
aload 0
getfield android.net.wifi.WifiManager$MulticastLock.this$0:Landroid/net/wifi/WifiManager;
dup
getfield android.net.wifi.WifiManager.mActiveLockCount:I
iconst_1
iadd
putfield android.net.wifi.WifiManager.mActiveLockCount:I
11: aload 2
monitorexit
12: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 2
monitorexit
14: athrow
15: StackMap locals: android.net.wifi.WifiManager$MulticastLock android.os.IBinder
StackMap stack: android.os.RemoteException
astore 2
start local 2 16: aload 2
invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
athrow
end local 2 17: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield android.net.wifi.WifiManager$MulticastLock.mHeld:Z
18: StackMap locals:
StackMap stack:
aload 1
monitorexit
19: goto 22
StackMap locals:
StackMap stack: java.lang.Throwable
20: aload 1
monitorexit
21: athrow
22: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Landroid/net/wifi/WifiManager$MulticastLock;
16 17 2 e Landroid/os/RemoteException;
Exception table:
from to target type
5 12 13 any
13 14 13 any
3 15 15 Class android.os.RemoteException
1 19 20 any
20 21 20 any
public void release();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield android.net.wifi.WifiManager$MulticastLock.mBinder:Landroid/os/IBinder;
dup
astore 1
monitorenter
1: aload 0
getfield android.net.wifi.WifiManager$MulticastLock.mRefCounted:Z
ifeq 2
aload 0
dup
getfield android.net.wifi.WifiManager$MulticastLock.mRefCount:I
iconst_1
isub
dup_x1
putfield android.net.wifi.WifiManager$MulticastLock.mRefCount:I
ifne 13
goto 3
StackMap locals: android.os.IBinder
StackMap stack:
2: aload 0
getfield android.net.wifi.WifiManager$MulticastLock.mHeld:Z
ifeq 13
3: StackMap locals:
StackMap stack:
aload 0
getfield android.net.wifi.WifiManager$MulticastLock.this$0:Landroid/net/wifi/WifiManager;
getfield android.net.wifi.WifiManager.mService:Landroid/net/wifi/IWifiManager;
invokeinterface android.net.wifi.IWifiManager.releaseMulticastLock:()V
4: aload 0
getfield android.net.wifi.WifiManager$MulticastLock.this$0:Landroid/net/wifi/WifiManager;
dup
astore 2
monitorenter
5: aload 0
getfield android.net.wifi.WifiManager$MulticastLock.this$0:Landroid/net/wifi/WifiManager;
dup
getfield android.net.wifi.WifiManager.mActiveLockCount:I
iconst_1
isub
putfield android.net.wifi.WifiManager.mActiveLockCount:I
6: aload 2
monitorexit
7: goto 12
StackMap locals: android.net.wifi.WifiManager$MulticastLock android.os.IBinder android.net.wifi.WifiManager
StackMap stack: java.lang.Throwable
8: aload 2
monitorexit
9: athrow
10: StackMap locals: android.net.wifi.WifiManager$MulticastLock android.os.IBinder
StackMap stack: android.os.RemoteException
astore 2
start local 2 11: aload 2
invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
athrow
end local 2 12: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield android.net.wifi.WifiManager$MulticastLock.mHeld:Z
13: StackMap locals:
StackMap stack:
aload 0
getfield android.net.wifi.WifiManager$MulticastLock.mRefCount:I
ifge 17
14: new java.lang.RuntimeException
dup
new java.lang.StringBuilder
dup
ldc "MulticastLock under-locked "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
15: aload 0
getfield android.net.wifi.WifiManager$MulticastLock.mTag:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
16: invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
aload 1
monitorexit
18: goto 21
StackMap locals:
StackMap stack: java.lang.Throwable
19: aload 1
monitorexit
20: athrow
21: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Landroid/net/wifi/WifiManager$MulticastLock;
11 12 2 e Landroid/os/RemoteException;
Exception table:
from to target type
5 7 8 any
8 9 8 any
3 10 10 Class android.os.RemoteException
1 18 19 any
19 20 19 any
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.net.wifi.WifiManager$MulticastLock.mRefCounted:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/net/wifi/WifiManager$MulticastLock;
0 2 1 refCounted Z
MethodParameters:
Name Flags
refCounted
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.net.wifi.WifiManager$MulticastLock.mBinder:Landroid/os/IBinder;
dup
astore 1
monitorenter
1: aload 0
getfield android.net.wifi.WifiManager$MulticastLock.mHeld:Z
aload 1
monitorexit
2: ireturn
3: StackMap locals: android.net.wifi.WifiManager$MulticastLock 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/net/wifi/WifiManager$MulticastLock;
Exception table:
from to target type
1 2 3 any
3 4 3 any
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: aload 0
getfield android.net.wifi.WifiManager$MulticastLock.mBinder:Landroid/os/IBinder;
dup
astore 4
monitorenter
1: aload 0
invokestatic java.lang.System.identityHashCode:(Ljava/lang/Object;)I
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
astore 1
start local 1 2: aload 0
getfield android.net.wifi.WifiManager$MulticastLock.mHeld:Z
ifeq 3
ldc "held; "
goto 4
StackMap locals: android.net.wifi.WifiManager$MulticastLock java.lang.String top top android.os.IBinder
StackMap stack:
3: ldc ""
StackMap locals:
StackMap stack: java.lang.String
4: astore 2
start local 2 5: aload 0
getfield android.net.wifi.WifiManager$MulticastLock.mRefCounted:Z
ifeq 8
6: new java.lang.StringBuilder
dup
ldc "refcounted: refcount = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield android.net.wifi.WifiManager$MulticastLock.mRefCount:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
astore 3
start local 3 7: goto 9
end local 3 8: StackMap locals: android.net.wifi.WifiManager$MulticastLock java.lang.String java.lang.String top android.os.IBinder
StackMap stack:
ldc "not refcounted"
astore 3
start local 3 9: StackMap locals: android.net.wifi.WifiManager$MulticastLock java.lang.String java.lang.String java.lang.String android.os.IBinder
StackMap stack:
new java.lang.StringBuilder
dup
ldc "MulticastLock{ "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "; "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 3
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;
aload 4
monitorexit
10: areturn
end local 3 end local 2 end local 1 11: StackMap locals: android.net.wifi.WifiManager$MulticastLock top top top android.os.IBinder
StackMap stack: java.lang.Throwable
aload 4
monitorexit
12: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/net/wifi/WifiManager$MulticastLock;
2 11 1 s1 Ljava/lang/String;
5 11 2 s2 Ljava/lang/String;
7 8 3 s3 Ljava/lang/String;
9 11 3 s3 Ljava/lang/String;
Exception table:
from to target type
1 10 11 any
11 12 11 any
protected void finalize();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.finalize:()V
1: aload 0
iconst_0
invokevirtual android.net.wifi.WifiManager$MulticastLock.setReferenceCounted:(Z)V
2: aload 0
invokevirtual android.net.wifi.WifiManager$MulticastLock.release:()V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/net/wifi/WifiManager$MulticastLock;
Exceptions:
throws java.lang.Throwable
}
SourceFile: "WifiManager.java"
NestHost: android.net.wifi.WifiManager
InnerClasses:
public MulticastLock = android.net.wifi.WifiManager$MulticastLock of android.net.wifi.WifiManager