public class sun.lwawt.macosx.CFRetainedResource
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: sun.lwawt.macosx.CFRetainedResource
super_class: java.lang.Object
{
private final boolean disposeOnAppKitThread;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected volatile long ptr;
descriptor: J
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
private final java.util.concurrent.locks.ReadWriteLock lock;
descriptor: Ljava/util/concurrent/locks/ReadWriteLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.Lock writeLock;
descriptor: Ljava/util/concurrent/locks/Lock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.concurrent.locks.Lock readLock;
descriptor: Ljava/util/concurrent/locks/Lock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static native void nativeCFRelease(long, boolean);
descriptor: (JZ)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
ptr final
disposeOnAppKitThread final
protected void <init>(long, boolean);
descriptor: (JZ)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.concurrent.locks.ReentrantReadWriteLock
dup
invokespecial java.util.concurrent.locks.ReentrantReadWriteLock.<init>:()V
putfield sun.lwawt.macosx.CFRetainedResource.lock:Ljava/util/concurrent/locks/ReadWriteLock;
2: aload 0
aload 0
getfield sun.lwawt.macosx.CFRetainedResource.lock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.writeLock:()Ljava/util/concurrent/locks/Lock;
putfield sun.lwawt.macosx.CFRetainedResource.writeLock:Ljava/util/concurrent/locks/Lock;
3: aload 0
aload 0
getfield sun.lwawt.macosx.CFRetainedResource.lock:Ljava/util/concurrent/locks/ReadWriteLock;
invokeinterface java.util.concurrent.locks.ReadWriteLock.readLock:()Ljava/util/concurrent/locks/Lock;
putfield sun.lwawt.macosx.CFRetainedResource.readLock:Ljava/util/concurrent/locks/Lock;
4: aload 0
iload 3
putfield sun.lwawt.macosx.CFRetainedResource.disposeOnAppKitThread:Z
5: aload 0
lload 1
putfield sun.lwawt.macosx.CFRetainedResource.ptr:J
6: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/lwawt/macosx/CFRetainedResource;
0 7 1 ptr J
0 7 3 disposeOnAppKitThread Z
MethodParameters:
Name Flags
ptr final
disposeOnAppKitThread final
protected void setPtr(long);
descriptor: (J)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.lwawt.macosx.CFRetainedResource.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
getfield sun.lwawt.macosx.CFRetainedResource.ptr:J
lconst_0
lcmp
ifeq 3
2: aload 0
invokevirtual sun.lwawt.macosx.CFRetainedResource.dispose:()V
3: StackMap locals:
StackMap stack:
aload 0
lload 1
putfield sun.lwawt.macosx.CFRetainedResource.ptr:J
4: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 3
6: aload 0
getfield sun.lwawt.macosx.CFRetainedResource.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
7: aload 3
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.lwawt.macosx.CFRetainedResource.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/lwawt/macosx/CFRetainedResource;
0 10 1 ptr J
Exception table:
from to target type
1 5 5 any
MethodParameters:
Name Flags
ptr final
protected void dispose();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=1
start local 0 0: lconst_0
lstore 1
start local 1 1: aload 0
getfield sun.lwawt.macosx.CFRetainedResource.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
2: aload 0
getfield sun.lwawt.macosx.CFRetainedResource.ptr:J
lconst_0
lcmp
ifne 5
3: aload 0
getfield sun.lwawt.macosx.CFRetainedResource.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
4: return
5: StackMap locals: long
StackMap stack:
aload 0
getfield sun.lwawt.macosx.CFRetainedResource.ptr:J
lstore 1
6: aload 0
lconst_0
putfield sun.lwawt.macosx.CFRetainedResource.ptr:J
7: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
8: astore 3
9: aload 0
getfield sun.lwawt.macosx.CFRetainedResource.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
10: aload 3
athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield sun.lwawt.macosx.CFRetainedResource.writeLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
12: lload 1
aload 0
getfield sun.lwawt.macosx.CFRetainedResource.disposeOnAppKitThread:Z
invokestatic sun.lwawt.macosx.CFRetainedResource.nativeCFRelease:(JZ)V
13: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/lwawt/macosx/CFRetainedResource;
1 14 1 oldPtr J
Exception table:
from to target type
2 3 8 any
5 8 8 any
public final void execute(sun.lwawt.macosx.CFRetainedResource$CFNativeAction);
descriptor: (Lsun/lwawt/macosx/CFRetainedResource$CFNativeAction;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.lwawt.macosx.CFRetainedResource.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
getfield sun.lwawt.macosx.CFRetainedResource.ptr:J
lconst_0
lcmp
ifeq 7
2: aload 1
aload 0
getfield sun.lwawt.macosx.CFRetainedResource.ptr:J
invokeinterface sun.lwawt.macosx.CFRetainedResource$CFNativeAction.run:(J)V
3: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
4: astore 2
5: aload 0
getfield sun.lwawt.macosx.CFRetainedResource.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
6: aload 2
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield sun.lwawt.macosx.CFRetainedResource.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/lwawt/macosx/CFRetainedResource;
0 9 1 action Lsun/lwawt/macosx/CFRetainedResource$CFNativeAction;
Exception table:
from to target type
1 4 4 any
MethodParameters:
Name Flags
action final
final long executeGet(sun.lwawt.macosx.CFRetainedResource$CFNativeActionGet);
descriptor: (Lsun/lwawt/macosx/CFRetainedResource$CFNativeActionGet;)J
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.lwawt.macosx.CFRetainedResource.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.lock:()V
1: aload 0
getfield sun.lwawt.macosx.CFRetainedResource.ptr:J
lconst_0
lcmp
ifeq 8
2: aload 1
aload 0
getfield sun.lwawt.macosx.CFRetainedResource.ptr:J
invokeinterface sun.lwawt.macosx.CFRetainedResource$CFNativeActionGet.run:(J)J
lstore 3
3: aload 0
getfield sun.lwawt.macosx.CFRetainedResource.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
4: lload 3
lreturn
5: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
6: aload 0
getfield sun.lwawt.macosx.CFRetainedResource.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
7: aload 2
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield sun.lwawt.macosx.CFRetainedResource.readLock:Ljava/util/concurrent/locks/Lock;
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
9: lconst_0
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lsun/lwawt/macosx/CFRetainedResource;
0 10 1 action Lsun/lwawt/macosx/CFRetainedResource$CFNativeActionGet;
Exception table:
from to target type
1 3 5 any
MethodParameters:
Name Flags
action final
protected final void finalize();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual sun.lwawt.macosx.CFRetainedResource.dispose:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lsun/lwawt/macosx/CFRetainedResource;
Exceptions:
throws java.lang.Throwable
}
SourceFile: "CFRetainedResource.java"
NestMembers:
sun.lwawt.macosx.CFRetainedResource$CFNativeAction sun.lwawt.macosx.CFRetainedResource$CFNativeActionGet
InnerClasses:
public abstract CFNativeAction = sun.lwawt.macosx.CFRetainedResource$CFNativeAction of sun.lwawt.macosx.CFRetainedResource
abstract CFNativeActionGet = sun.lwawt.macosx.CFRetainedResource$CFNativeActionGet of sun.lwawt.macosx.CFRetainedResource