public abstract class com.sun.prism.impl.BaseResourcePool<T> implements com.sun.prism.impl.ResourcePool<T>
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.sun.prism.impl.BaseResourcePool
  super_class: java.lang.Object
{
  private static final int FOREVER;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  private static final int RECENTLY_USEFUL;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 100

  private static final int RECENT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  private static final com.sun.prism.impl.BaseResourcePool$Predicate[] stageTesters;
    descriptor: [Lcom/sun/prism/impl/BaseResourcePool$Predicate;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] stageReasons;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  long managedSize;
    descriptor: J
    flags: (0x0000) 

  final long origTarget;
    descriptor: J
    flags: (0x0010) ACC_FINAL

  long curTarget;
    descriptor: J
    flags: (0x0000) 

  final long maxSize;
    descriptor: J
    flags: (0x0010) ACC_FINAL

  final com.sun.prism.impl.ResourcePool<T> sharedParent;
    descriptor: Lcom/sun/prism/impl/ResourcePool;
    flags: (0x0010) ACC_FINAL
    Signature: Lcom/sun/prism/impl/ResourcePool<TT;>;

  private final java.lang.Thread managerThread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.sun.prism.impl.BaseResourcePool$WeakLinkedList<T> resourceHead;
    descriptor: Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList<TT;>;

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 53
            bipush 6
            anewarray com.sun.prism.impl.BaseResourcePool$Predicate
            putstatic com.sun.prism.impl.BaseResourcePool.stageTesters:[Lcom/sun/prism/impl/BaseResourcePool$Predicate;
         1: .line 54
            bipush 6
            anewarray java.lang.String
            putstatic com.sun.prism.impl.BaseResourcePool.stageReasons:[Ljava/lang/String;
         2: .line 55
            getstatic com.sun.prism.impl.BaseResourcePool.stageTesters:[Lcom/sun/prism/impl/BaseResourcePool$Predicate;
            iconst_0
            invokedynamic test()Lcom/sun/prism/impl/BaseResourcePool$Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/sun/prism/impl/ManagedResource;)Z
                  com/sun/prism/impl/BaseResourcePool.lambda$0(Lcom/sun/prism/impl/ManagedResource;)Z (6)
                  (Lcom/sun/prism/impl/ManagedResource;)Z
            aastore
         3: .line 56
            getstatic com.sun.prism.impl.BaseResourcePool.stageReasons:[Ljava/lang/String;
            iconst_0
            ldc "Pruning unuseful older than 1024"
            aastore
         4: .line 57
            getstatic com.sun.prism.impl.BaseResourcePool.stageTesters:[Lcom/sun/prism/impl/BaseResourcePool$Predicate;
            iconst_1
            invokedynamic test()Lcom/sun/prism/impl/BaseResourcePool$Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/sun/prism/impl/ManagedResource;)Z
                  com/sun/prism/impl/BaseResourcePool.lambda$1(Lcom/sun/prism/impl/ManagedResource;)Z (6)
                  (Lcom/sun/prism/impl/ManagedResource;)Z
            aastore
         5: .line 58
            getstatic com.sun.prism.impl.BaseResourcePool.stageReasons:[Ljava/lang/String;
            iconst_1
            ldc "Pruning unuseful older than 512"
            aastore
         6: .line 59
            getstatic com.sun.prism.impl.BaseResourcePool.stageTesters:[Lcom/sun/prism/impl/BaseResourcePool$Predicate;
            iconst_2
            invokedynamic test()Lcom/sun/prism/impl/BaseResourcePool$Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/sun/prism/impl/ManagedResource;)Z
                  com/sun/prism/impl/BaseResourcePool.lambda$2(Lcom/sun/prism/impl/ManagedResource;)Z (6)
                  (Lcom/sun/prism/impl/ManagedResource;)Z
            aastore
         7: .line 60
            getstatic com.sun.prism.impl.BaseResourcePool.stageReasons:[Ljava/lang/String;
            iconst_2
            ldc "Pruning unuseful older than 10"
            aastore
         8: .line 61
            getstatic com.sun.prism.impl.BaseResourcePool.stageTesters:[Lcom/sun/prism/impl/BaseResourcePool$Predicate;
            iconst_3
            invokedynamic test()Lcom/sun/prism/impl/BaseResourcePool$Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/sun/prism/impl/ManagedResource;)Z
                  com/sun/prism/impl/BaseResourcePool.lambda$3(Lcom/sun/prism/impl/ManagedResource;)Z (6)
                  (Lcom/sun/prism/impl/ManagedResource;)Z
            aastore
         9: .line 62
            getstatic com.sun.prism.impl.BaseResourcePool.stageReasons:[Ljava/lang/String;
            iconst_3
            ldc "Pruning all older than 1024"
            aastore
        10: .line 63
            getstatic com.sun.prism.impl.BaseResourcePool.stageTesters:[Lcom/sun/prism/impl/BaseResourcePool$Predicate;
            iconst_4
            invokedynamic test()Lcom/sun/prism/impl/BaseResourcePool$Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/sun/prism/impl/ManagedResource;)Z
                  com/sun/prism/impl/BaseResourcePool.lambda$4(Lcom/sun/prism/impl/ManagedResource;)Z (6)
                  (Lcom/sun/prism/impl/ManagedResource;)Z
            aastore
        11: .line 64
            getstatic com.sun.prism.impl.BaseResourcePool.stageReasons:[Ljava/lang/String;
            iconst_4
            ldc "Pruning all older than 512"
            aastore
        12: .line 65
            getstatic com.sun.prism.impl.BaseResourcePool.stageTesters:[Lcom/sun/prism/impl/BaseResourcePool$Predicate;
            iconst_5
            invokedynamic test()Lcom/sun/prism/impl/BaseResourcePool$Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/sun/prism/impl/ManagedResource;)Z
                  com/sun/prism/impl/BaseResourcePool.lambda$5(Lcom/sun/prism/impl/ManagedResource;)Z (6)
                  (Lcom/sun/prism/impl/ManagedResource;)Z
            aastore
        13: .line 66
            getstatic com.sun.prism.impl.BaseResourcePool.stageReasons:[Ljava/lang/String;
            iconst_5
            ldc "Pruning all older than 100"
            aastore
        14: .line 67
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(long, long);
    descriptor: (JJ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // com.sun.prism.impl.BaseResourcePool this
        start local 1 // long target
        start local 3 // long max
         0: .line 78
            aload 0 /* this */
            aconst_null
            lload 1 /* target */
            lload 3 /* max */
            invokespecial com.sun.prism.impl.BaseResourcePool.<init>:(Lcom/sun/prism/impl/ResourcePool;JJ)V
         1: .line 79
            return
        end local 3 // long max
        end local 1 // long target
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;
            0    2     1  target  J
            0    2     3     max  J
    MethodParameters:
        Name  Flags
      target  
      max     

  protected void <init>(com.sun.prism.impl.ResourcePool<T>);
    descriptor: (Lcom/sun/prism/impl/ResourcePool;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // com.sun.prism.impl.BaseResourcePool this
        start local 1 // com.sun.prism.impl.ResourcePool parent
         0: .line 82
            aload 0 /* this */
            aload 1 /* parent */
            aload 1 /* parent */
            invokeinterface com.sun.prism.impl.ResourcePool.target:()J
            aload 1 /* parent */
            invokeinterface com.sun.prism.impl.ResourcePool.max:()J
            invokespecial com.sun.prism.impl.BaseResourcePool.<init>:(Lcom/sun/prism/impl/ResourcePool;JJ)V
         1: .line 83
            return
        end local 1 // com.sun.prism.impl.ResourcePool parent
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;
            0    2     1  parent  Lcom/sun/prism/impl/ResourcePool<TT;>;
    Signature: (Lcom/sun/prism/impl/ResourcePool<TT;>;)V
    MethodParameters:
        Name  Flags
      parent  

  protected void <init>(com.sun.prism.impl.ResourcePool<T>, long, );
    descriptor: (Lcom/sun/prism/impl/ResourcePool;JJ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // com.sun.prism.impl.BaseResourcePool this
        start local 1 // com.sun.prism.impl.ResourcePool parent
        start local 2 // long target
        start local 4 // long max
         0: .line 85
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 86
            aload 0 /* this */
            new com.sun.prism.impl.BaseResourcePool$WeakLinkedList
            dup
            invokespecial com.sun.prism.impl.BaseResourcePool$WeakLinkedList.<init>:()V
            putfield com.sun.prism.impl.BaseResourcePool.resourceHead:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
         2: .line 87
            aload 0 /* this */
            aload 1 /* parent */
            putfield com.sun.prism.impl.BaseResourcePool.sharedParent:Lcom/sun/prism/impl/ResourcePool;
         3: .line 88
            aload 0 /* this */
            aload 0 /* this */
            lload 2 /* target */
            dup2_x1
            putfield com.sun.prism.impl.BaseResourcePool.curTarget:J
            putfield com.sun.prism.impl.BaseResourcePool.origTarget:J
         4: .line 89
            aload 0 /* this */
            aload 1 /* parent */
            ifnonnull 6
         5: .line 90
            lload 4 /* max */
            goto 7
         6: .line 91
      StackMap locals: com.sun.prism.impl.BaseResourcePool com.sun.prism.impl.ResourcePool long long
      StackMap stack: com.sun.prism.impl.BaseResourcePool
            aload 1 /* parent */
            invokeinterface com.sun.prism.impl.ResourcePool.max:()J
            lload 4 /* max */
            invokestatic java.lang.Math.min:(JJ)J
         7: .line 89
      StackMap locals: com.sun.prism.impl.BaseResourcePool com.sun.prism.impl.ResourcePool long long
      StackMap stack: com.sun.prism.impl.BaseResourcePool long
            putfield com.sun.prism.impl.BaseResourcePool.maxSize:J
         8: .line 92
            aload 0 /* this */
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            putfield com.sun.prism.impl.BaseResourcePool.managerThread:Ljava/lang/Thread;
         9: .line 93
            return
        end local 4 // long max
        end local 2 // long target
        end local 1 // com.sun.prism.impl.ResourcePool parent
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   10     0    this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;
            0   10     1  parent  Lcom/sun/prism/impl/ResourcePool<TT;>;
            0   10     2  target  J
            0   10     4     max  J
    Signature: (Lcom/sun/prism/impl/ResourcePool<TT;>;JJ)V
    MethodParameters:
        Name  Flags
      parent  
      target  
      max     

  public boolean cleanup(long);
    descriptor: (J)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=12, args_size=2
        start local 0 // com.sun.prism.impl.BaseResourcePool this
        start local 1 // long needed
         0: .line 118
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            lload 1 /* needed */
            ladd
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.target:()J
            lcmp
            ifgt 1
            iconst_1
            ireturn
         1: .line 119
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            lstore 3 /* wasused */
        start local 3 // long wasused
         2: .line 120
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.target:()J
            ldc 16
            ldiv
            lstore 5 /* wanted */
        start local 5 // long wanted
         3: .line 121
            lload 5 /* wanted */
            lload 1 /* needed */
            lcmp
            ifge 5
         4: .line 122
            lload 1 /* needed */
            lstore 5 /* wanted */
         5: .line 124
      StackMap locals: long long
      StackMap stack:
            getstatic com.sun.prism.impl.PrismSettings.poolDebug:Z
            ifeq 8
         6: .line 125
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Need %,d (hoping for %,d) from pool: %s\n"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            lload 1 /* needed */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            lload 5 /* wanted */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         7: .line 126
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.prism.impl.BaseResourcePool.printSummary:(Z)V
         8: .line 134
      StackMap locals:
      StackMap stack:
            invokestatic com.sun.prism.impl.Disposer.cleanUp:()V
         9: .line 135
            getstatic com.sun.prism.impl.PrismSettings.poolDebug:Z
            ifeq 10
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc "Pruning obsolete in pool: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        10: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokedynamic test()Lcom/sun/prism/impl/BaseResourcePool$Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/sun/prism/impl/ManagedResource;)Z
                  com/sun/prism/impl/BaseResourcePool.lambda$6(Lcom/sun/prism/impl/ManagedResource;)Z (6)
                  (Lcom/sun/prism/impl/ManagedResource;)Z
            invokevirtual com.sun.prism.impl.BaseResourcePool.cleanup:(Lcom/sun/prism/impl/BaseResourcePool$Predicate;)V
        11: .line 137
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            lload 5 /* wanted */
            ladd
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.target:()J
            lcmp
            ifgt 17
        12: .line 190
            getstatic com.sun.prism.impl.PrismSettings.poolDebug:Z
            ifeq 16
        13: .line 191
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "cleaned up %,d from pool: %s\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            lload 3 /* wasused */
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            lsub
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        14: .line 192
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.prism.impl.BaseResourcePool.printSummary:(Z)V
        15: .line 193
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        16: .line 137
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        17: .line 141
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 7 /* stage */
        start local 7 // int stage
        18: goto 29
        19: .line 142
      StackMap locals: int
      StackMap stack:
            getstatic com.sun.prism.impl.PrismSettings.poolDebug:Z
            ifeq 21
        20: .line 143
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            getstatic com.sun.prism.impl.BaseResourcePool.stageReasons:[Ljava/lang/String;
            iload 7 /* stage */
            aaload
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " in pool: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        21: .line 145
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getstatic com.sun.prism.impl.BaseResourcePool.stageTesters:[Lcom/sun/prism/impl/BaseResourcePool$Predicate;
            iload 7 /* stage */
            aaload
            invokevirtual com.sun.prism.impl.BaseResourcePool.cleanup:(Lcom/sun/prism/impl/BaseResourcePool$Predicate;)V
        22: .line 146
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            lload 5 /* wanted */
            ladd
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.target:()J
            lcmp
            ifgt 28
        23: .line 190
            getstatic com.sun.prism.impl.PrismSettings.poolDebug:Z
            ifeq 27
        24: .line 191
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "cleaned up %,d from pool: %s\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            lload 3 /* wasused */
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            lsub
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        25: .line 192
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.prism.impl.BaseResourcePool.printSummary:(Z)V
        26: .line 193
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        27: .line 146
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        28: .line 141
      StackMap locals:
      StackMap stack:
            iinc 7 /* stage */ 1
      StackMap locals:
      StackMap stack:
        29: iload 7 /* stage */
            getstatic com.sun.prism.impl.BaseResourcePool.stageTesters:[Lcom/sun/prism/impl/BaseResourcePool$Predicate;
            arraylength
            if_icmplt 19
        end local 7 // int stage
        30: .line 151
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.max:()J
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            lsub
            lstore 7 /* rem */
        start local 7 // long rem
        31: .line 152
            lload 5 /* wanted */
            lload 7 /* rem */
            lcmp
            ifle 33
        32: .line 153
            lload 1 /* needed */
            lstore 5 /* wanted */
        33: .line 155
      StackMap locals: com.sun.prism.impl.BaseResourcePool long long long long
      StackMap stack:
            lload 5 /* wanted */
            lload 7 /* rem */
            lcmp
            ifgt 48
        34: .line 156
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.max:()J
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.origTarget:()J
            lsub
            ldc 32
            ldiv
            lstore 9 /* grow */
        start local 9 // long grow
        35: .line 157
            lload 9 /* grow */
            lload 5 /* wanted */
            lcmp
            ifge 38
        36: .line 158
            lload 5 /* wanted */
            lstore 9 /* grow */
        37: .line 159
            goto 40
      StackMap locals: long
      StackMap stack:
        38: lload 9 /* grow */
            lload 7 /* rem */
            lcmp
            ifle 40
        39: .line 160
            lload 7 /* rem */
            lstore 9 /* grow */
        40: .line 162
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            lload 9 /* grow */
            ladd
            invokevirtual com.sun.prism.impl.BaseResourcePool.setTarget:(J)V
        41: .line 163
            getstatic com.sun.prism.impl.PrismSettings.poolDebug:Z
            ifne 42
            getstatic com.sun.prism.impl.PrismSettings.verbose:Z
            ifeq 43
        42: .line 164
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Growing pool %s target to %,d\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.target:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        43: .line 190
      StackMap locals:
      StackMap stack:
            getstatic com.sun.prism.impl.PrismSettings.poolDebug:Z
            ifeq 47
        44: .line 191
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "cleaned up %,d from pool: %s\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            lload 3 /* wasused */
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            lsub
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        45: .line 192
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.prism.impl.BaseResourcePool.printSummary:(Z)V
        46: .line 193
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        47: .line 166
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 9 // long grow
        48: .line 173
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 9 /* i */
        start local 9 // int i
        49: goto 64
        50: .line 174
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            iload 9 /* i */
            ifle 51
            iconst_1
            goto 52
      StackMap locals:
      StackMap stack: com.sun.prism.impl.BaseResourcePool
        51: iconst_0
      StackMap locals: com.sun.prism.impl.BaseResourcePool long long long long int
      StackMap stack: com.sun.prism.impl.BaseResourcePool int
        52: invokevirtual com.sun.prism.impl.BaseResourcePool.pruneLastChance:(Z)V
        53: .line 175
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            lload 1 /* needed */
            ladd
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.max:()J
            lcmp
            ifgt 63
        54: .line 176
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            lload 1 /* needed */
            ladd
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.target:()J
            lcmp
            ifle 58
        55: .line 177
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            lload 1 /* needed */
            ladd
            invokevirtual com.sun.prism.impl.BaseResourcePool.setTarget:(J)V
        56: .line 178
            getstatic com.sun.prism.impl.PrismSettings.poolDebug:Z
            ifne 57
            getstatic com.sun.prism.impl.PrismSettings.verbose:Z
            ifeq 58
        57: .line 179
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Growing pool %s target to %,d\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.target:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        58: .line 190
      StackMap locals:
      StackMap stack:
            getstatic com.sun.prism.impl.PrismSettings.poolDebug:Z
            ifeq 62
        59: .line 191
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "cleaned up %,d from pool: %s\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            lload 3 /* wasused */
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            lsub
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        60: .line 192
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.prism.impl.BaseResourcePool.printSummary:(Z)V
        61: .line 193
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        62: .line 182
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        63: .line 173
      StackMap locals:
      StackMap stack:
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        64: iload 9 /* i */
            iconst_2
            if_icmplt 50
        end local 9 // int i
        65: .line 190
            getstatic com.sun.prism.impl.PrismSettings.poolDebug:Z
            ifeq 69
        66: .line 191
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "cleaned up %,d from pool: %s\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            lload 3 /* wasused */
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            lsub
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        67: .line 192
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.prism.impl.BaseResourcePool.printSummary:(Z)V
        68: .line 193
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        69: .line 188
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 7 // long rem
        70: .line 189
      StackMap locals: com.sun.prism.impl.BaseResourcePool long long long
      StackMap stack: java.lang.Throwable
            astore 11
        71: .line 190
            getstatic com.sun.prism.impl.PrismSettings.poolDebug:Z
            ifeq 75
        72: .line 191
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "cleaned up %,d from pool: %s\n"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            lload 3 /* wasused */
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            lsub
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        73: .line 192
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.prism.impl.BaseResourcePool.printSummary:(Z)V
        74: .line 193
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        75: .line 195
      StackMap locals: com.sun.prism.impl.BaseResourcePool long long long top top top top java.lang.Throwable
      StackMap stack:
            aload 11
            athrow
        end local 5 // long wanted
        end local 3 // long wasused
        end local 1 // long needed
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   76     0     this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;
            0   76     1   needed  J
            2   76     3  wasused  J
            3   76     5   wanted  J
           18   30     7    stage  I
           31   70     7      rem  J
           35   48     9     grow  J
           49   65     9        i  I
      Exception table:
        from    to  target  type
           8    12      70  any
          17    23      70  any
          28    43      70  any
          48    58      70  any
          63    65      70  any
    MethodParameters:
        Name  Flags
      needed  

  private void pruneLastChance(boolean);
    descriptor: (Z)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.prism.impl.BaseResourcePool this
        start local 1 // boolean desperate
         0: .line 199
            invokestatic java.lang.System.gc:()V
         1: .line 200
            iload 1 /* desperate */
            ifeq 5
         2: .line 205
            ldc 20
            invokestatic java.lang.Thread.sleep:(J)V
         3: goto 5
         4: .line 206
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
            pop
         5: .line 208
      StackMap locals:
      StackMap stack:
            invokestatic com.sun.prism.impl.Disposer.cleanUp:()V
         6: .line 209
            getstatic com.sun.prism.impl.PrismSettings.poolDebug:Z
            ifeq 12
         7: .line 210
            iload 1 /* desperate */
            ifeq 10
         8: .line 211
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Last chance pruning"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         9: .line 212
            goto 11
        10: .line 213
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Pruning everything"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
        11: .line 215
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            ldc " in pool: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        12: .line 217
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokedynamic test()Lcom/sun/prism/impl/BaseResourcePool$Predicate;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  (Lcom/sun/prism/impl/ManagedResource;)Z
                  com/sun/prism/impl/BaseResourcePool.lambda$7(Lcom/sun/prism/impl/ManagedResource;)Z (6)
                  (Lcom/sun/prism/impl/ManagedResource;)Z
            invokevirtual com.sun.prism.impl.BaseResourcePool.cleanup:(Lcom/sun/prism/impl/BaseResourcePool$Predicate;)V
        13: .line 218
            return
        end local 1 // boolean desperate
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0       this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;
            0   14     1  desperate  Z
      Exception table:
        from    to  target  type
           2     3       4  Class java.lang.InterruptedException
    MethodParameters:
           Name  Flags
      desperate  

  private void cleanup(com.sun.prism.impl.BaseResourcePool$Predicate);
    descriptor: (Lcom/sun/prism/impl/BaseResourcePool$Predicate;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.sun.prism.impl.BaseResourcePool this
        start local 1 // com.sun.prism.impl.BaseResourcePool$Predicate predicate
         0: .line 221
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.resourceHead:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            astore 2 /* prev */
        start local 2 // com.sun.prism.impl.BaseResourcePool$WeakLinkedList prev
         1: .line 222
            aload 2 /* prev */
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.next:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            astore 3 /* cur */
        start local 3 // com.sun.prism.impl.BaseResourcePool$WeakLinkedList cur
         2: .line 223
            goto 22
         3: .line 224
      StackMap locals: com.sun.prism.impl.BaseResourcePool$WeakLinkedList com.sun.prism.impl.BaseResourcePool$WeakLinkedList
      StackMap stack:
            aload 3 /* cur */
            invokevirtual com.sun.prism.impl.BaseResourcePool$WeakLinkedList.getResource:()Lcom/sun/prism/impl/ManagedResource;
            astore 4 /* mr */
        start local 4 // com.sun.prism.impl.ManagedResource mr
         4: .line 225
            aload 4 /* mr */
            invokestatic com.sun.prism.impl.ManagedResource._isgone:(Lcom/sun/prism/impl/ManagedResource;)Z
            ifeq 10
         5: .line 226
            getstatic com.sun.prism.impl.PrismSettings.poolDebug:Z
            ifeq 6
            ldc "unlinking"
            aload 3 /* cur */
            iconst_0
            invokestatic com.sun.prism.impl.BaseResourcePool.showLink:(Ljava/lang/String;Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;Z)V
         6: .line 227
      StackMap locals: com.sun.prism.impl.ManagedResource
      StackMap stack:
            aload 0 /* this */
            aload 3 /* cur */
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.size:J
            invokevirtual com.sun.prism.impl.BaseResourcePool.recordFree:(J)V
         7: .line 228
            aload 3 /* cur */
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.next:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            astore 3 /* cur */
         8: .line 229
            aload 2 /* prev */
            aload 3 /* cur */
            putfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.next:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
         9: .line 230
            goto 22
      StackMap locals:
      StackMap stack:
        10: aload 4 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.isPermanent:()Z
            ifne 20
        11: .line 231
            aload 4 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.isLocked:()Z
            ifne 20
        12: .line 232
            aload 1 /* predicate */
            aload 4 /* mr */
            invokeinterface com.sun.prism.impl.BaseResourcePool$Predicate.test:(Lcom/sun/prism/impl/ManagedResource;)Z
            ifeq 20
        13: .line 234
            getstatic com.sun.prism.impl.PrismSettings.poolDebug:Z
            ifeq 14
            ldc "pruning"
            aload 3 /* cur */
            iconst_1
            invokestatic com.sun.prism.impl.BaseResourcePool.showLink:(Ljava/lang/String;Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;Z)V
        14: .line 235
      StackMap locals:
      StackMap stack:
            aload 4 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.free:()V
        15: .line 236
            aload 4 /* mr */
            aconst_null
            putfield com.sun.prism.impl.ManagedResource.resource:Ljava/lang/Object;
        16: .line 237
            aload 0 /* this */
            aload 3 /* cur */
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.size:J
            invokevirtual com.sun.prism.impl.BaseResourcePool.recordFree:(J)V
        17: .line 238
            aload 3 /* cur */
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.next:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            astore 3 /* cur */
        18: .line 239
            aload 2 /* prev */
            aload 3 /* cur */
            putfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.next:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
        19: .line 240
            goto 22
        20: .line 241
      StackMap locals:
      StackMap stack:
            aload 3 /* cur */
            astore 2 /* prev */
        21: .line 242
            aload 3 /* cur */
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.next:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            astore 3 /* cur */
        end local 4 // com.sun.prism.impl.ManagedResource mr
        22: .line 223
      StackMap locals:
      StackMap stack:
            aload 3 /* cur */
            ifnonnull 3
        23: .line 245
            return
        end local 3 // com.sun.prism.impl.BaseResourcePool$WeakLinkedList cur
        end local 2 // com.sun.prism.impl.BaseResourcePool$WeakLinkedList prev
        end local 1 // com.sun.prism.impl.BaseResourcePool$Predicate predicate
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   24     0       this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;
            0   24     1  predicate  Lcom/sun/prism/impl/BaseResourcePool$Predicate;
            1   24     2       prev  Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList<TT;>;
            2   24     3        cur  Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList<TT;>;
            4   22     4         mr  Lcom/sun/prism/impl/ManagedResource<TT;>;
    MethodParameters:
           Name  Flags
      predicate  

  static void showLink(java.lang.String, com.sun.prism.impl.BaseResourcePool$WeakLinkedList<?>, );
    descriptor: (Ljava/lang/String;Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;Z)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=7, locals=4, args_size=3
        start local 0 // java.lang.String label
        start local 1 // com.sun.prism.impl.BaseResourcePool$WeakLinkedList cur
        start local 2 // boolean showAge
         0: .line 248
            aload 1 /* cur */
            invokevirtual com.sun.prism.impl.BaseResourcePool$WeakLinkedList.getResource:()Lcom/sun/prism/impl/ManagedResource;
            astore 3 /* mr */
        start local 3 // com.sun.prism.impl.ManagedResource mr
         1: .line 249
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "%s: %s (size=%,d)"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* label */
            aastore
            dup
            iconst_1
            aload 3 /* mr */
            aastore
            dup
            iconst_2
            aload 1 /* cur */
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.size:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         2: .line 250
            aload 3 /* mr */
            ifnull 8
         3: .line 251
            iload 2 /* showAge */
            ifeq 5
         4: .line 252
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc " (age=%d)"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 3 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.getAge:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         5: .line 254
      StackMap locals: com.sun.prism.impl.ManagedResource
      StackMap stack:
            aload 3 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.isPermanent:()Z
            ifeq 6
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc " perm"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         6: .line 255
      StackMap locals:
      StackMap stack:
            aload 3 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.isLocked:()Z
            ifeq 7
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc " lock"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         7: .line 256
      StackMap locals:
      StackMap stack:
            aload 3 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.isInteresting:()Z
            ifeq 8
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc " int"
            invokevirtual java.io.PrintStream.print:(Ljava/lang/String;)V
         8: .line 258
      StackMap locals:
      StackMap stack:
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
         9: .line 259
            return
        end local 3 // com.sun.prism.impl.ManagedResource mr
        end local 2 // boolean showAge
        end local 1 // com.sun.prism.impl.BaseResourcePool$WeakLinkedList cur
        end local 0 // java.lang.String label
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0    label  Ljava/lang/String;
            0   10     1      cur  Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList<*>;
            0   10     2  showAge  Z
            1   10     3       mr  Lcom/sun/prism/impl/ManagedResource<*>;
    Signature: (Ljava/lang/String;Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList<*>;Z)V
    MethodParameters:
         Name  Flags
      label    
      cur      
      showAge  

  public void freeDisposalRequestedAndCheckResources(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // com.sun.prism.impl.BaseResourcePool this
        start local 1 // boolean forgiveStaleLocks
         0: .line 278
            iconst_0
            istore 2 /* anyLockedResources */
        start local 2 // boolean anyLockedResources
         1: .line 279
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.resourceHead:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            astore 3 /* prev */
        start local 3 // com.sun.prism.impl.BaseResourcePool$WeakLinkedList prev
         2: .line 280
            aload 3 /* prev */
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.next:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            astore 4 /* cur */
        start local 4 // com.sun.prism.impl.BaseResourcePool$WeakLinkedList cur
         3: .line 281
            goto 20
         4: .line 282
      StackMap locals: int com.sun.prism.impl.BaseResourcePool$WeakLinkedList com.sun.prism.impl.BaseResourcePool$WeakLinkedList
      StackMap stack:
            aload 4 /* cur */
            invokevirtual com.sun.prism.impl.BaseResourcePool$WeakLinkedList.getResource:()Lcom/sun/prism/impl/ManagedResource;
            astore 5 /* mr */
        start local 5 // com.sun.prism.impl.ManagedResource mr
         5: .line 283
            aload 5 /* mr */
            invokestatic com.sun.prism.impl.ManagedResource._isgone:(Lcom/sun/prism/impl/ManagedResource;)Z
            ifeq 10
         6: .line 284
            aload 0 /* this */
            aload 4 /* cur */
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.size:J
            invokevirtual com.sun.prism.impl.BaseResourcePool.recordFree:(J)V
         7: .line 285
            aload 4 /* cur */
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.next:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            astore 4 /* cur */
         8: .line 286
            aload 3 /* prev */
            aload 4 /* cur */
            putfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.next:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
         9: .line 287
            goto 20
        10: .line 288
      StackMap locals: com.sun.prism.impl.ManagedResource
      StackMap stack:
            aload 5 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.isPermanent:()Z
            ifne 18
        11: .line 289
            aload 5 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.isLocked:()Z
            ifeq 17
            aload 5 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.wasMismatched:()Z
            ifne 17
        12: .line 290
            iload 1 /* forgiveStaleLocks */
            ifeq 15
        13: .line 291
            aload 5 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.unlockall:()V
        14: .line 292
            goto 17
        15: .line 293
      StackMap locals:
      StackMap stack:
            aload 5 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.setMismatched:()V
        16: .line 294
            iconst_1
            istore 2 /* anyLockedResources */
        17: .line 297
      StackMap locals:
      StackMap stack:
            aload 5 /* mr */
            sipush 1024
            invokevirtual com.sun.prism.impl.ManagedResource.bumpAge:(I)V
        18: .line 299
      StackMap locals:
      StackMap stack:
            aload 4 /* cur */
            astore 3 /* prev */
        19: .line 300
            aload 4 /* cur */
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.next:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            astore 4 /* cur */
        end local 5 // com.sun.prism.impl.ManagedResource mr
        20: .line 281
      StackMap locals:
      StackMap stack:
            aload 4 /* cur */
            ifnonnull 4
        21: .line 304
            getstatic com.sun.prism.impl.PrismSettings.poolStats:Z
            ifne 22
            iload 2 /* anyLockedResources */
            ifeq 26
        22: .line 305
      StackMap locals:
      StackMap stack:
            iload 2 /* anyLockedResources */
            ifeq 24
        23: .line 306
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "Outstanding resource locks detected:"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        24: .line 308
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.prism.impl.BaseResourcePool.printSummary:(Z)V
        25: .line 309
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual java.io.PrintStream.println:()V
        26: .line 311
      StackMap locals:
      StackMap stack:
            return
        end local 4 // com.sun.prism.impl.BaseResourcePool$WeakLinkedList cur
        end local 3 // com.sun.prism.impl.BaseResourcePool$WeakLinkedList prev
        end local 2 // boolean anyLockedResources
        end local 1 // boolean forgiveStaleLocks
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   27     0                this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;
            0   27     1   forgiveStaleLocks  Z
            1   27     2  anyLockedResources  Z
            2   27     3                prev  Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList<TT;>;
            3   27     4                 cur  Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList<TT;>;
            5   20     5                  mr  Lcom/sun/prism/impl/ManagedResource<*>;
    MethodParameters:
                   Name  Flags
      forgiveStaleLocks  

  static java.lang.String commas(long);
    descriptor: (J)Ljava/lang/String;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // long v
         0: .line 314
            ldc "%,d"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            lload 0 /* v */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // long v
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0     v  J
    MethodParameters:
      Name  Flags
      v     

  public void printSummary(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=21, args_size=2
        start local 0 // com.sun.prism.impl.BaseResourcePool this
        start local 1 // boolean printlocksources
         0: .line 318
            iconst_0
            istore 2 /* numgone */
        start local 2 // int numgone
         1: .line 319
            iconst_0
            istore 3 /* numlocked */
        start local 3 // int numlocked
         2: .line 320
            iconst_0
            istore 4 /* numpermanent */
        start local 4 // int numpermanent
         3: .line 321
            iconst_0
            istore 5 /* numinteresting */
        start local 5 // int numinteresting
         4: .line 322
            iconst_0
            istore 6 /* nummismatched */
        start local 6 // int nummismatched
         5: .line 323
            iconst_0
            istore 7 /* numancient */
        start local 7 // int numancient
         6: .line 324
            lconst_0
            lstore 8 /* total_age */
        start local 8 // long total_age
         7: .line 325
            iconst_0
            istore 10 /* total */
        start local 10 // int total
         8: .line 326
            iconst_0
            istore 11 /* trackLockSources */
        start local 11 // boolean trackLockSources
         9: .line 328
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            l2d
            ldc 100.0
            dmul
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.max:()J
            l2d
            ddiv
            dstore 12 /* percentUsed */
        start local 12 // double percentUsed
        10: .line 329
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.target:()J
            l2d
            ldc 100.0
            dmul
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.max:()J
            l2d
            ddiv
            dstore 14 /* percentTarget */
        start local 14 // double percentTarget
        11: .line 330
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "%s: %,d used (%.1f%%), %,d target (%.1f%%), %,d max\n"
            bipush 6
            anewarray java.lang.Object
            dup
            iconst_0
        12: .line 331
            aload 0 /* this */
            aastore
            dup
            iconst_1
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.used:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_2
            dload 12 /* percentUsed */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_3
        13: .line 332
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.target:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_4
            dload 14 /* percentTarget */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            dup
            iconst_5
        14: .line 333
            aload 0 /* this */
            invokevirtual com.sun.prism.impl.BaseResourcePool.max:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
        15: .line 330
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        16: .line 335
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.resourceHead:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.next:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            astore 16 /* cur */
        start local 16 // com.sun.prism.impl.BaseResourcePool$WeakLinkedList cur
        17: goto 43
        18: .line 336
      StackMap locals: com.sun.prism.impl.BaseResourcePool int int int int int int int long int int double double com.sun.prism.impl.BaseResourcePool$WeakLinkedList
      StackMap stack:
            aload 16 /* cur */
            invokevirtual com.sun.prism.impl.BaseResourcePool$WeakLinkedList.getResource:()Lcom/sun/prism/impl/ManagedResource;
            astore 17 /* mr */
        start local 17 // com.sun.prism.impl.ManagedResource mr
        19: .line 337
            iinc 10 /* total */ 1
        20: .line 338
            aload 17 /* mr */
            ifnull 21
            aload 17 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.isValid:()Z
            ifeq 21
            aload 17 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.isDisposalRequested:()Z
            ifeq 23
        21: .line 339
      StackMap locals: com.sun.prism.impl.ManagedResource
      StackMap stack:
            iinc 2 /* numgone */ 1
        22: .line 340
            goto 42
        23: .line 341
      StackMap locals:
      StackMap stack:
            aload 17 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.getAge:()I
            istore 18 /* a */
        start local 18 // int a
        24: .line 342
            lload 8 /* total_age */
            iload 18 /* a */
            i2l
            ladd
            lstore 8 /* total_age */
        25: .line 343
            iload 18 /* a */
            sipush 1024
            if_icmplt 27
        26: .line 344
            iinc 7 /* numancient */ 1
        27: .line 346
      StackMap locals: int
      StackMap stack:
            aload 17 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.wasMismatched:()Z
            ifeq 29
        28: .line 347
            iinc 6 /* nummismatched */ 1
        29: .line 349
      StackMap locals:
      StackMap stack:
            aload 17 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.isPermanent:()Z
            ifeq 32
        30: .line 350
            iinc 4 /* numpermanent */ 1
        31: .line 351
            goto 40
      StackMap locals:
      StackMap stack:
        32: aload 17 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.isLocked:()Z
            ifeq 40
        33: .line 352
            iinc 3 /* numlocked */ 1
        34: .line 353
            iload 11 /* trackLockSources */
            ifeq 40
            iload 1 /* printlocksources */
            ifeq 40
        35: .line 354
            aload 17 /* mr */
            getfield com.sun.prism.impl.ManagedResource.lockedFrom:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 20
            goto 38
      StackMap locals: com.sun.prism.impl.BaseResourcePool int int int int int int int long int int double double com.sun.prism.impl.BaseResourcePool$WeakLinkedList com.sun.prism.impl.ManagedResource int top java.util.Iterator
      StackMap stack:
        36: aload 20
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Throwable
            astore 19 /* th */
        start local 19 // java.lang.Throwable th
        37: .line 355
            aload 19 /* th */
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            invokevirtual java.lang.Throwable.printStackTrace:(Ljava/io/PrintStream;)V
        end local 19 // java.lang.Throwable th
        38: .line 354
      StackMap locals:
      StackMap stack:
            aload 20
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 36
        39: .line 357
            aload 17 /* mr */
            getfield com.sun.prism.impl.ManagedResource.lockedFrom:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.clear:()V
        40: .line 360
      StackMap locals: com.sun.prism.impl.BaseResourcePool int int int int int int int long int int double double com.sun.prism.impl.BaseResourcePool$WeakLinkedList com.sun.prism.impl.ManagedResource int
      StackMap stack:
            aload 17 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.isInteresting:()Z
            ifeq 42
        41: .line 361
            iinc 5 /* numinteresting */ 1
        end local 18 // int a
        end local 17 // com.sun.prism.impl.ManagedResource mr
        42: .line 335
      StackMap locals:
      StackMap stack:
            aload 16 /* cur */
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.next:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            astore 16 /* cur */
      StackMap locals:
      StackMap stack:
        43: aload 16 /* cur */
            ifnonnull 18
        end local 16 // com.sun.prism.impl.BaseResourcePool$WeakLinkedList cur
        44: .line 366
            lload 8 /* total_age */
            l2d
            iload 10 /* total */
            i2d
            ddiv
            dstore 16 /* avg_age */
        start local 16 // double avg_age
        45: .line 367
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            new java.lang.StringBuilder
            dup
            iload 10 /* total */
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " total resources being managed"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
        46: .line 368
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "average resource age is %.1f frames\n"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            dload 16 /* avg_age */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
        47: .line 369
            iload 7 /* numancient */
            iload 10 /* total */
            ldc "at maximum supported age"
            invokestatic com.sun.prism.impl.BaseResourcePool.printpoolpercent:(IILjava/lang/String;)V
        48: .line 370
            iload 4 /* numpermanent */
            iload 10 /* total */
            ldc "marked permanent"
            invokestatic com.sun.prism.impl.BaseResourcePool.printpoolpercent:(IILjava/lang/String;)V
        49: .line 371
            iload 6 /* nummismatched */
            iload 10 /* total */
            ldc "have had mismatched locks"
            invokestatic com.sun.prism.impl.BaseResourcePool.printpoolpercent:(IILjava/lang/String;)V
        50: .line 372
            iload 3 /* numlocked */
            iload 10 /* total */
            ldc "locked"
            invokestatic com.sun.prism.impl.BaseResourcePool.printpoolpercent:(IILjava/lang/String;)V
        51: .line 373
            iload 5 /* numinteresting */
            iload 10 /* total */
            ldc "contain interesting data"
            invokestatic com.sun.prism.impl.BaseResourcePool.printpoolpercent:(IILjava/lang/String;)V
        52: .line 374
            iload 2 /* numgone */
            iload 10 /* total */
            ldc "disappeared"
            invokestatic com.sun.prism.impl.BaseResourcePool.printpoolpercent:(IILjava/lang/String;)V
        53: .line 375
            return
        end local 16 // double avg_age
        end local 14 // double percentTarget
        end local 12 // double percentUsed
        end local 11 // boolean trackLockSources
        end local 10 // int total
        end local 8 // long total_age
        end local 7 // int numancient
        end local 6 // int nummismatched
        end local 5 // int numinteresting
        end local 4 // int numpermanent
        end local 3 // int numlocked
        end local 2 // int numgone
        end local 1 // boolean printlocksources
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   54     0              this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;
            0   54     1  printlocksources  Z
            1   54     2           numgone  I
            2   54     3         numlocked  I
            3   54     4      numpermanent  I
            4   54     5    numinteresting  I
            5   54     6     nummismatched  I
            6   54     7        numancient  I
            7   54     8         total_age  J
            8   54    10             total  I
            9   54    11  trackLockSources  Z
           10   54    12       percentUsed  D
           11   54    14     percentTarget  D
           17   44    16               cur  Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList<TT;>;
           19   42    17                mr  Lcom/sun/prism/impl/ManagedResource<TT;>;
           24   42    18                 a  I
           37   38    19                th  Ljava/lang/Throwable;
           45   54    16           avg_age  D
    MethodParameters:
                  Name  Flags
      printlocksources  

  private static void printpoolpercent(int, int, java.lang.String);
    descriptor: (IILjava/lang/String;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=7, locals=5, args_size=3
        start local 0 // int stat
        start local 1 // int total
        start local 2 // java.lang.String desc
         0: .line 378
            iload 0 /* stat */
            i2d
            ldc 100.0
            dmul
            iload 1 /* total */
            i2d
            ddiv
            dstore 3 /* percent */
        start local 3 // double percent
         1: .line 379
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "%,d resources %s (%.1f%%)\n"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
            iload 0 /* stat */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 2 /* desc */
            aastore
            dup
            iconst_2
            dload 3 /* percent */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aastore
            invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
            pop
         2: .line 380
            return
        end local 3 // double percent
        end local 2 // java.lang.String desc
        end local 1 // int total
        end local 0 // int stat
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     stat  I
            0    3     1    total  I
            0    3     2     desc  Ljava/lang/String;
            1    3     3  percent  D
    MethodParameters:
       Name  Flags
      stat   
      total  
      desc   

  public boolean isManagerThread();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.BaseResourcePool this
         0: .line 384
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.managerThread:Ljava/lang/Thread;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;

  public final long managed();
    descriptor: ()J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.BaseResourcePool this
         0: .line 389
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.managedSize:J
            lreturn
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;

  public long used();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.BaseResourcePool this
         0: .line 394
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.sharedParent:Lcom/sun/prism/impl/ResourcePool;
            ifnull 2
         1: .line 395
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.sharedParent:Lcom/sun/prism/impl/ResourcePool;
            invokeinterface com.sun.prism.impl.ResourcePool.used:()J
            lreturn
         2: .line 397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.managedSize:J
            lreturn
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;

  public final long max();
    descriptor: ()J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.BaseResourcePool this
         0: .line 402
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.maxSize:J
            lreturn
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;

  public final long origTarget();
    descriptor: ()J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.BaseResourcePool this
         0: .line 407
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.origTarget:J
            lreturn
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;

  public final long target();
    descriptor: ()J
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.BaseResourcePool this
         0: .line 412
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.curTarget:J
            lreturn
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;

  public final void setTarget(long);
    descriptor: (J)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.prism.impl.BaseResourcePool this
        start local 1 // long newTarget
         0: .line 417
            lload 1 /* newTarget */
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.maxSize:J
            lcmp
            ifle 4
         1: .line 418
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "New target "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* newTarget */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
         2: .line 419
            ldc " larger than max "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.maxSize:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         3: .line 418
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 421
      StackMap locals:
      StackMap stack:
            lload 1 /* newTarget */
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.origTarget:J
            lcmp
            ifge 8
         5: .line 422
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "New target "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* newTarget */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
         6: .line 423
            ldc " smaller than initial target "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.origTarget:J
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 422
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 425
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* newTarget */
            putfield com.sun.prism.impl.BaseResourcePool.curTarget:J
         9: .line 426
            return
        end local 1 // long newTarget
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;
            0   10     1  newTarget  J
    MethodParameters:
           Name  Flags
      newTarget  

  public boolean prepareForAllocation(long);
    descriptor: (J)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // com.sun.prism.impl.BaseResourcePool this
        start local 1 // long size
         0: .line 430
            aload 0 /* this */
            lload 1 /* size */
            invokevirtual com.sun.prism.impl.BaseResourcePool.cleanup:(J)Z
            ireturn
        end local 1 // long size
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;
            0    1     1  size  J
    MethodParameters:
      Name  Flags
      size  

  public final void recordAllocated(long);
    descriptor: (J)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.prism.impl.BaseResourcePool this
        start local 1 // long size
         0: .line 435
            aload 0 /* this */
            dup
            getfield com.sun.prism.impl.BaseResourcePool.managedSize:J
            lload 1 /* size */
            ladd
            putfield com.sun.prism.impl.BaseResourcePool.managedSize:J
         1: .line 436
            return
        end local 1 // long size
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;
            0    2     1  size  J
    MethodParameters:
      Name  Flags
      size  

  public final void resourceManaged(com.sun.prism.impl.ManagedResource<T>);
    descriptor: (Lcom/sun/prism/impl/ManagedResource;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // com.sun.prism.impl.BaseResourcePool this
        start local 1 // com.sun.prism.impl.ManagedResource mr
         0: .line 440
            aload 0 /* this */
            aload 1 /* mr */
            getfield com.sun.prism.impl.ManagedResource.resource:Ljava/lang/Object;
            invokevirtual com.sun.prism.impl.BaseResourcePool.size:(Ljava/lang/Object;)J
            lstore 2 /* size */
        start local 2 // long size
         1: .line 441
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.resourceHead:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            aload 1 /* mr */
            lload 2 /* size */
            invokevirtual com.sun.prism.impl.BaseResourcePool$WeakLinkedList.insert:(Lcom/sun/prism/impl/ManagedResource;J)V
         2: .line 442
            aload 0 /* this */
            lload 2 /* size */
            invokevirtual com.sun.prism.impl.BaseResourcePool.recordAllocated:(J)V
         3: .line 443
            return
        end local 2 // long size
        end local 1 // com.sun.prism.impl.ManagedResource mr
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;
            0    4     1    mr  Lcom/sun/prism/impl/ManagedResource<TT;>;
            1    4     2  size  J
    Signature: (Lcom/sun/prism/impl/ManagedResource<TT;>;)V
    MethodParameters:
      Name  Flags
      mr    

  public final void resourceFreed(com.sun.prism.impl.ManagedResource<T>);
    descriptor: (Lcom/sun/prism/impl/ManagedResource;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // com.sun.prism.impl.BaseResourcePool this
        start local 1 // com.sun.prism.impl.ManagedResource freed
         0: .line 447
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.resourceHead:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            astore 2 /* prev */
        start local 2 // com.sun.prism.impl.BaseResourcePool$WeakLinkedList prev
         1: .line 448
            aload 2 /* prev */
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.next:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            astore 3 /* cur */
        start local 3 // com.sun.prism.impl.BaseResourcePool$WeakLinkedList cur
         2: .line 449
            goto 12
         3: .line 450
      StackMap locals: com.sun.prism.impl.BaseResourcePool$WeakLinkedList com.sun.prism.impl.BaseResourcePool$WeakLinkedList
      StackMap stack:
            aload 3 /* cur */
            invokevirtual com.sun.prism.impl.BaseResourcePool$WeakLinkedList.getResource:()Lcom/sun/prism/impl/ManagedResource;
            astore 4 /* res */
        start local 4 // com.sun.prism.impl.ManagedResource res
         4: .line 451
            aload 4 /* res */
            ifnull 5
            aload 4 /* res */
            aload 1 /* freed */
            if_acmpne 10
         5: .line 452
      StackMap locals: com.sun.prism.impl.ManagedResource
      StackMap stack:
            aload 0 /* this */
            aload 3 /* cur */
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.size:J
            invokevirtual com.sun.prism.impl.BaseResourcePool.recordFree:(J)V
         6: .line 453
            aload 3 /* cur */
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.next:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            astore 3 /* cur */
         7: .line 454
            aload 2 /* prev */
            aload 3 /* cur */
            putfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.next:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
         8: .line 455
            aload 4 /* res */
            aload 1 /* freed */
            if_acmpne 12
         9: .line 456
            return
        10: .line 459
      StackMap locals:
      StackMap stack:
            aload 3 /* cur */
            astore 2 /* prev */
        11: .line 460
            aload 3 /* cur */
            getfield com.sun.prism.impl.BaseResourcePool$WeakLinkedList.next:Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList;
            astore 3 /* cur */
        end local 4 // com.sun.prism.impl.ManagedResource res
        12: .line 449
      StackMap locals:
      StackMap stack:
            aload 3 /* cur */
            ifnonnull 3
        13: .line 463
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "unmanaged resource freed from pool "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
        end local 3 // com.sun.prism.impl.BaseResourcePool$WeakLinkedList cur
        end local 2 // com.sun.prism.impl.BaseResourcePool$WeakLinkedList prev
        end local 1 // com.sun.prism.impl.ManagedResource freed
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0   this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;
            0   14     1  freed  Lcom/sun/prism/impl/ManagedResource<TT;>;
            1   14     2   prev  Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList<TT;>;
            2   14     3    cur  Lcom/sun/prism/impl/BaseResourcePool$WeakLinkedList<TT;>;
            4   12     4    res  Lcom/sun/prism/impl/ManagedResource<TT;>;
    Signature: (Lcom/sun/prism/impl/ManagedResource<TT;>;)V
    MethodParameters:
       Name  Flags
      freed  

  public final void recordFree(long);
    descriptor: (J)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.prism.impl.BaseResourcePool this
        start local 1 // long size
         0: .line 468
            aload 0 /* this */
            dup
            getfield com.sun.prism.impl.BaseResourcePool.managedSize:J
            lload 1 /* size */
            lsub
            putfield com.sun.prism.impl.BaseResourcePool.managedSize:J
         1: .line 469
            aload 0 /* this */
            getfield com.sun.prism.impl.BaseResourcePool.managedSize:J
            lconst_0
            lcmp
            ifge 3
         2: .line 470
            new java.lang.IllegalStateException
            dup
            ldc "Negative resource amount"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 472
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long size
        end local 0 // com.sun.prism.impl.BaseResourcePool this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/prism/impl/BaseResourcePool<TT;>;
            0    4     1  size  J
    MethodParameters:
      Name  Flags
      size  

  private static boolean lambda$0(com.sun.prism.impl.ManagedResource);
    descriptor: (Lcom/sun/prism/impl/ManagedResource;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.ManagedResource mr
         0: .line 55
            aload 0 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.isInteresting:()Z
            ifne 1
            aload 0 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.getAge:()I
            sipush 1024
            if_icmple 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.sun.prism.impl.ManagedResource mr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    mr  Lcom/sun/prism/impl/ManagedResource<*>;

  private static boolean lambda$1(com.sun.prism.impl.ManagedResource);
    descriptor: (Lcom/sun/prism/impl/ManagedResource;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.ManagedResource mr
         0: .line 57
            aload 0 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.isInteresting:()Z
            ifne 1
            aload 0 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.getAge:()I
            sipush 512
            if_icmple 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.sun.prism.impl.ManagedResource mr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    mr  Lcom/sun/prism/impl/ManagedResource<*>;

  private static boolean lambda$2(com.sun.prism.impl.ManagedResource);
    descriptor: (Lcom/sun/prism/impl/ManagedResource;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.ManagedResource mr
         0: .line 59
            aload 0 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.isInteresting:()Z
            ifne 1
            aload 0 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.getAge:()I
            bipush 10
            if_icmple 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.sun.prism.impl.ManagedResource mr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    mr  Lcom/sun/prism/impl/ManagedResource<*>;

  private static boolean lambda$3(com.sun.prism.impl.ManagedResource);
    descriptor: (Lcom/sun/prism/impl/ManagedResource;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.ManagedResource mr
         0: .line 61
            aload 0 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.getAge:()I
            sipush 1024
            if_icmple 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.sun.prism.impl.ManagedResource mr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    mr  Lcom/sun/prism/impl/ManagedResource<*>;

  private static boolean lambda$4(com.sun.prism.impl.ManagedResource);
    descriptor: (Lcom/sun/prism/impl/ManagedResource;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.ManagedResource mr
         0: .line 63
            aload 0 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.getAge:()I
            sipush 512
            if_icmple 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.sun.prism.impl.ManagedResource mr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    mr  Lcom/sun/prism/impl/ManagedResource<*>;

  private static boolean lambda$5(com.sun.prism.impl.ManagedResource);
    descriptor: (Lcom/sun/prism/impl/ManagedResource;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.ManagedResource mr
         0: .line 65
            aload 0 /* mr */
            invokevirtual com.sun.prism.impl.ManagedResource.getAge:()I
            bipush 100
            if_icmple 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // com.sun.prism.impl.ManagedResource mr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0    mr  Lcom/sun/prism/impl/ManagedResource<*>;

  private static boolean lambda$6(com.sun.prism.impl.ManagedResource);
    descriptor: (Lcom/sun/prism/impl/ManagedResource;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.ManagedResource mr
         0: .line 136
            iconst_0
            ireturn
        end local 0 // com.sun.prism.impl.ManagedResource mr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    mr  Lcom/sun/prism/impl/ManagedResource<*>;

  private static boolean lambda$7(com.sun.prism.impl.ManagedResource);
    descriptor: (Lcom/sun/prism/impl/ManagedResource;)Z
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.impl.ManagedResource mr
         0: .line 217
            iconst_1
            ireturn
        end local 0 // com.sun.prism.impl.ManagedResource mr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    mr  Lcom/sun/prism/impl/ManagedResource<*>;
}
Signature: <T:Ljava/lang/Object;>Ljava/lang/Object;Lcom/sun/prism/impl/ResourcePool<TT;>;
SourceFile: "BaseResourcePool.java"
NestMembers:
  com.sun.prism.impl.BaseResourcePool$Predicate  com.sun.prism.impl.BaseResourcePool$WeakLinkedList
InnerClasses:
  abstract Predicate = com.sun.prism.impl.BaseResourcePool$Predicate of com.sun.prism.impl.BaseResourcePool
  WeakLinkedList = com.sun.prism.impl.BaseResourcePool$WeakLinkedList of com.sun.prism.impl.BaseResourcePool
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles