public abstract class com.sun.prism.impl.ManagedResource<T> implements com.sun.prism.GraphicsResource
minor version: 0
major version: 59
flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
this_class: com.sun.prism.impl.ManagedResource
super_class: java.lang.Object
{
static final boolean trackLockSources;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
protected T resource;
descriptor: Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Signature: TT;
private final com.sun.prism.impl.ResourcePool<T> pool;
descriptor: Lcom/sun/prism/impl/ResourcePool;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lcom/sun/prism/impl/ResourcePool<TT;>;
private int lockcount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int employcount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
java.util.ArrayList<java.lang.Throwable> lockedFrom;
descriptor: Ljava/util/ArrayList;
flags: (0x0000)
Signature: Ljava/util/ArrayList<Ljava/lang/Throwable;>;
private boolean permanent;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean mismatchDetected;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean disposalRequested;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int age;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static boolean _isgone(com.sun.prism.impl.ManagedResource<?>);
descriptor: (Lcom/sun/prism/impl/ManagedResource;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnonnull 1
iconst_1
ireturn
1: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.prism.impl.ManagedResource.disposalRequested:Z
ifeq 6
2: aload 0
invokevirtual com.sun.prism.impl.ManagedResource.free:()V
3: aload 0
aconst_null
putfield com.sun.prism.impl.ManagedResource.resource:Ljava/lang/Object;
4: aload 0
iconst_0
putfield com.sun.prism.impl.ManagedResource.disposalRequested:Z
5: iconst_1
ireturn
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.prism.impl.ManagedResource.isValid:()Z
ifeq 7
iconst_0
goto 8
StackMap locals:
StackMap stack:
7: iconst_1
StackMap locals:
StackMap stack: int
8: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 mr Lcom/sun/prism/impl/ManagedResource<*>;
Signature: (Lcom/sun/prism/impl/ManagedResource<*>;)Z
MethodParameters:
Name Flags
mr
protected void <init>(T, com.sun.prism.impl.ResourcePool<T>);
descriptor: (Ljava/lang/Object;Lcom/sun/prism/impl/ResourcePool;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, 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
aload 1
putfield com.sun.prism.impl.ManagedResource.resource:Ljava/lang/Object;
2: aload 0
aload 2
putfield com.sun.prism.impl.ManagedResource.pool:Lcom/sun/prism/impl/ResourcePool;
3: aload 0
invokevirtual com.sun.prism.impl.ManagedResource.manage:()V
4: aload 0
invokevirtual com.sun.prism.impl.ManagedResource.lock:()Ljava/lang/Object;
pop
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
0 6 1 resource TT;
0 6 2 pool Lcom/sun/prism/impl/ResourcePool<TT;>;
Signature: (TT;Lcom/sun/prism/impl/ResourcePool<TT;>;)V
MethodParameters:
Name Flags
resource
pool
private void manage();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.prism.impl.ManagedResource.pool:Lcom/sun/prism/impl/ResourcePool;
aload 0
invokeinterface com.sun.prism.impl.ResourcePool.resourceManaged:(Lcom/sun/prism/impl/ManagedResource;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public final T getResource();
descriptor: ()Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.prism.impl.ManagedResource.assertLocked:()V
1: aload 0
getfield com.sun.prism.impl.ManagedResource.resource:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
Signature: ()TT;
public final com.sun.prism.impl.ResourcePool<T> getPool();
descriptor: ()Lcom/sun/prism/impl/ResourcePool;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.prism.impl.ManagedResource.pool:Lcom/sun/prism/impl/ResourcePool;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
Signature: ()Lcom/sun/prism/impl/ResourcePool<TT;>;
public boolean isValid();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.prism.impl.ManagedResource.resource:Ljava/lang/Object;
ifnull 1
aload 0
getfield com.sun.prism.impl.ManagedResource.disposalRequested:Z
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public boolean isDisposalRequested();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.prism.impl.ManagedResource.disposalRequested:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public final boolean isLocked();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.prism.impl.ManagedResource.lockcount:I
ifle 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public final int getLockCount();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.prism.impl.ManagedResource.lockcount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public final void assertLocked();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.prism.impl.ManagedResource.lockcount:I
ifgt 2
1: new java.lang.IllegalStateException
dup
ldc "Operation requires resource lock"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public final boolean isPermanent();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.prism.impl.ManagedResource.permanent:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public final boolean isInteresting();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.prism.impl.ManagedResource.employcount:I
ifle 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public final int getInterestCount();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.prism.impl.ManagedResource.employcount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public void free();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public int getAge();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.prism.impl.ManagedResource.age:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public final void dispose();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.prism.impl.ManagedResource.pool:Lcom/sun/prism/impl/ResourcePool;
invokeinterface com.sun.prism.impl.ResourcePool.isManagerThread:()Z
ifeq 8
1: aload 0
getfield com.sun.prism.impl.ManagedResource.resource:Ljava/lang/Object;
astore 1
start local 1 2: aload 1
ifnull 9
3: aload 0
invokevirtual com.sun.prism.impl.ManagedResource.free:()V
4: aload 0
iconst_0
putfield com.sun.prism.impl.ManagedResource.disposalRequested:Z
5: aload 0
aconst_null
putfield com.sun.prism.impl.ManagedResource.resource:Ljava/lang/Object;
6: aload 0
getfield com.sun.prism.impl.ManagedResource.pool:Lcom/sun/prism/impl/ResourcePool;
aload 0
invokeinterface com.sun.prism.impl.ResourcePool.resourceFreed:(Lcom/sun/prism/impl/ManagedResource;)V
end local 1 7: goto 9
8: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.sun.prism.impl.ManagedResource.disposalRequested:Z
9: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
2 7 1 r TT;
public final void makePermanent();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.prism.impl.ManagedResource.assertLocked:()V
1: aload 0
iconst_1
putfield com.sun.prism.impl.ManagedResource.permanent:Z
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public final T lock();
descriptor: ()Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
dup
getfield com.sun.prism.impl.ManagedResource.lockcount:I
iconst_1
iadd
putfield com.sun.prism.impl.ManagedResource.lockcount:I
1: aload 0
iconst_0
putfield com.sun.prism.impl.ManagedResource.age:I
2: aload 0
getfield com.sun.prism.impl.ManagedResource.resource:Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
Signature: ()TT;
void unlockall();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
putfield com.sun.prism.impl.ManagedResource.lockcount:I
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public final void unlock();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.prism.impl.ManagedResource.assertLocked:()V
1: aload 0
dup
getfield com.sun.prism.impl.ManagedResource.lockcount:I
iconst_1
isub
putfield com.sun.prism.impl.ManagedResource.lockcount:I
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public final void contentsUseful();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.prism.impl.ManagedResource.assertLocked:()V
1: aload 0
dup
getfield com.sun.prism.impl.ManagedResource.employcount:I
iconst_1
iadd
putfield com.sun.prism.impl.ManagedResource.employcount:I
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public final void contentsNotUseful();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.prism.impl.ManagedResource.employcount:I
ifgt 2
1: new java.lang.IllegalStateException
dup
ldc "Resource obsoleted too many times"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
dup
getfield com.sun.prism.impl.ManagedResource.employcount:I
iconst_1
isub
putfield com.sun.prism.impl.ManagedResource.employcount:I
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public final boolean wasMismatched();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.prism.impl.ManagedResource.mismatchDetected:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public final void setMismatched();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield com.sun.prism.impl.ManagedResource.mismatchDetected:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
public final void bumpAge(int);
descriptor: (I)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.prism.impl.ManagedResource.age:I
istore 2
start local 2 1: iload 2
iload 1
if_icmpge 3
2: aload 0
iload 2
iconst_1
iadd
putfield com.sun.prism.impl.ManagedResource.age:I
3: StackMap locals: int
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/prism/impl/ManagedResource<TT;>;
0 4 1 forever I
1 4 2 a I
MethodParameters:
Name Flags
forever
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lcom/sun/prism/GraphicsResource;
SourceFile: "ManagedResource.java"