public final class org.apache.lucene.util.RecyclingIntBlockAllocator extends org.apache.lucene.util.IntBlockPool$Allocator
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.apache.lucene.util.RecyclingIntBlockAllocator
  super_class: org.apache.lucene.util.IntBlockPool$Allocator
{
  private int[][] freeByteBlocks;
    descriptor: [[I
    flags: (0x0002) ACC_PRIVATE

  private final int maxBufferedBlocks;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int freeBlocks;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final org.apache.lucene.util.Counter bytesUsed;
    descriptor: Lorg/apache/lucene/util/Counter;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public static final int DEFAULT_BUFFERED_BLOCKS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 64

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 31
            ldc Lorg/apache/lucene/util/RecyclingIntBlockAllocator;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic org.apache.lucene.util.RecyclingIntBlockAllocator.$assertionsDisabled:Z
         3: .line 36
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(int, int, org.apache.lucene.util.Counter);
    descriptor: (IILorg/apache/lucene/util/Counter;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
        start local 1 // int blockSize
        start local 2 // int maxBufferedBlocks
        start local 3 // org.apache.lucene.util.Counter bytesUsed
         0: .line 50
            aload 0 /* this */
            iload 1 /* blockSize */
            invokespecial org.apache.lucene.util.IntBlockPool$Allocator.<init>:(I)V
         1: .line 34
            aload 0 /* this */
            iconst_0
            putfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
         2: .line 51
            aload 0 /* this */
            iload 2 /* maxBufferedBlocks */
            anewarray int[]
            putfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeByteBlocks:[[I
         3: .line 52
            aload 0 /* this */
            iload 2 /* maxBufferedBlocks */
            putfield org.apache.lucene.util.RecyclingIntBlockAllocator.maxBufferedBlocks:I
         4: .line 53
            aload 0 /* this */
            aload 3 /* bytesUsed */
            putfield org.apache.lucene.util.RecyclingIntBlockAllocator.bytesUsed:Lorg/apache/lucene/util/Counter;
         5: .line 54
            return
        end local 3 // org.apache.lucene.util.Counter bytesUsed
        end local 2 // int maxBufferedBlocks
        end local 1 // int blockSize
        end local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    6     0               this  Lorg/apache/lucene/util/RecyclingIntBlockAllocator;
            0    6     1          blockSize  I
            0    6     2  maxBufferedBlocks  I
            0    6     3          bytesUsed  Lorg/apache/lucene/util/Counter;
    MethodParameters:
                   Name  Flags
      blockSize          
      maxBufferedBlocks  
      bytesUsed          

  public void <init>(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
        start local 1 // int blockSize
        start local 2 // int maxBufferedBlocks
         0: .line 65
            aload 0 /* this */
            iload 1 /* blockSize */
            iload 2 /* maxBufferedBlocks */
            iconst_0
            invokestatic org.apache.lucene.util.Counter.newCounter:(Z)Lorg/apache/lucene/util/Counter;
            invokespecial org.apache.lucene.util.RecyclingIntBlockAllocator.<init>:(IILorg/apache/lucene/util/Counter;)V
         1: .line 66
            return
        end local 2 // int maxBufferedBlocks
        end local 1 // int blockSize
        end local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0               this  Lorg/apache/lucene/util/RecyclingIntBlockAllocator;
            0    2     1          blockSize  I
            0    2     2  maxBufferedBlocks  I
    MethodParameters:
                   Name  Flags
      blockSize          
      maxBufferedBlocks  

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
         0: .line 75
            aload 0 /* this */
            sipush 8192
            bipush 64
            iconst_0
            invokestatic org.apache.lucene.util.Counter.newCounter:(Z)Lorg/apache/lucene/util/Counter;
            invokespecial org.apache.lucene.util.RecyclingIntBlockAllocator.<init>:(IILorg/apache/lucene/util/Counter;)V
         1: .line 76
            return
        end local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/lucene/util/RecyclingIntBlockAllocator;

  public int[] getIntBlock();
    descriptor: ()[I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
         0: .line 80
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
            ifne 3
         1: .line 81
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.bytesUsed:Lorg/apache/lucene/util/Counter;
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.blockSize:I
            iconst_4
            imul
            i2l
            invokevirtual org.apache.lucene.util.Counter.addAndGet:(J)J
            pop2
         2: .line 82
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.blockSize:I
            newarray 10
            areturn
         3: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeByteBlocks:[[I
            aload 0 /* this */
            dup
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
            iconst_1
            isub
            dup_x1
            putfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
            aaload
            astore 1 /* b */
        start local 1 // int[] b
         4: .line 85
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeByteBlocks:[[I
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
            aconst_null
            aastore
         5: .line 86
            aload 1 /* b */
            areturn
        end local 1 // int[] b
        end local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/apache/lucene/util/RecyclingIntBlockAllocator;
            4    6     1     b  [I

  public void recycleIntBlocks(int[][], int, int);
    descriptor: ([[III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
        start local 1 // int[][] blocks
        start local 2 // int start
        start local 3 // int end
         0: .line 91
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.maxBufferedBlocks:I
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
            isub
            iload 3 /* end */
            iload 2 /* start */
            isub
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* numBlocks */
        start local 4 // int numBlocks
         1: .line 92
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
            iload 4 /* numBlocks */
            iadd
            istore 5 /* size */
        start local 5 // int size
         2: .line 93
            iload 5 /* size */
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeByteBlocks:[[I
            arraylength
            if_icmplt 8
         3: .line 94
            iload 5 /* size */
         4: .line 95
            getstatic org.apache.lucene.util.RamUsageEstimator.NUM_BYTES_OBJECT_REF:I
         5: .line 94
            invokestatic org.apache.lucene.util.ArrayUtil.oversize:(II)I
            anewarray int[]
            astore 6 /* newBlocks */
        start local 6 // int[][] newBlocks
         6: .line 96
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeByteBlocks:[[I
            iconst_0
            aload 6 /* newBlocks */
            iconst_0
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         7: .line 97
            aload 0 /* this */
            aload 6 /* newBlocks */
            putfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeByteBlocks:[[I
        end local 6 // int[][] newBlocks
         8: .line 99
      StackMap locals: int int
      StackMap stack:
            iload 2 /* start */
            iload 4 /* numBlocks */
            iadd
            istore 6 /* stop */
        start local 6 // int stop
         9: .line 100
            iload 2 /* start */
            istore 7 /* i */
        start local 7 // int i
        10: goto 14
        11: .line 101
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeByteBlocks:[[I
            aload 0 /* this */
            dup
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
            dup_x1
            iconst_1
            iadd
            putfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
            aload 1 /* blocks */
            iload 7 /* i */
            aaload
            aastore
        12: .line 102
            aload 1 /* blocks */
            iload 7 /* i */
            aconst_null
            aastore
        13: .line 100
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 7 /* i */
            iload 6 /* stop */
            if_icmplt 11
        end local 7 // int i
        15: .line 104
            iload 6 /* stop */
            istore 7 /* i */
        start local 7 // int i
        16: goto 19
        17: .line 105
      StackMap locals:
      StackMap stack:
            aload 1 /* blocks */
            iload 7 /* i */
            aconst_null
            aastore
        18: .line 104
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        19: iload 7 /* i */
            iload 3 /* end */
            if_icmplt 17
        end local 7 // int i
        20: .line 107
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.bytesUsed:Lorg/apache/lucene/util/Counter;
            iload 3 /* end */
            iload 6 /* stop */
            isub
            ineg
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.blockSize:I
            iconst_4
            imul
            imul
            i2l
            invokevirtual org.apache.lucene.util.Counter.addAndGet:(J)J
            pop2
        21: .line 108
            getstatic org.apache.lucene.util.RecyclingIntBlockAllocator.$assertionsDisabled:Z
            ifne 22
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.bytesUsed:Lorg/apache/lucene/util/Counter;
            invokevirtual org.apache.lucene.util.Counter.get:()J
            lconst_0
            lcmp
            ifge 22
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        22: .line 109
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int stop
        end local 5 // int size
        end local 4 // int numBlocks
        end local 3 // int end
        end local 2 // int start
        end local 1 // int[][] blocks
        end local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   23     0       this  Lorg/apache/lucene/util/RecyclingIntBlockAllocator;
            0   23     1     blocks  [[I
            0   23     2      start  I
            0   23     3        end  I
            1   23     4  numBlocks  I
            2   23     5       size  I
            6    8     6  newBlocks  [[I
            9   23     6       stop  I
           10   15     7          i  I
           16   20     7          i  I
    MethodParameters:
        Name  Flags
      blocks  
      start   
      end     

  public int numBufferedBlocks();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
         0: .line 115
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
            ireturn
        end local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/util/RecyclingIntBlockAllocator;

  public long bytesUsed();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
         0: .line 122
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.bytesUsed:Lorg/apache/lucene/util/Counter;
            invokevirtual org.apache.lucene.util.Counter.get:()J
            lreturn
        end local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/util/RecyclingIntBlockAllocator;

  public int maxBufferedBlocks();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
         0: .line 129
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.maxBufferedBlocks:I
            ireturn
        end local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/lucene/util/RecyclingIntBlockAllocator;

  public int freeBlocks(int);
    descriptor: (I)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
        start local 1 // int num
         0: .line 140
            getstatic org.apache.lucene.util.RecyclingIntBlockAllocator.$assertionsDisabled:Z
            ifne 1
            iload 1 /* num */
            ifge 1
            new java.lang.AssertionError
            dup
            new java.lang.StringBuilder
            dup
            ldc "free blocks must be >= 0 but was: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* num */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         1: .line 143
      StackMap locals:
      StackMap stack:
            iload 1 /* num */
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
            if_icmple 5
         2: .line 144
            iconst_0
            istore 2 /* stop */
        start local 2 // int stop
         3: .line 145
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
            istore 3 /* count */
        start local 3 // int count
         4: .line 146
            goto 9
        end local 3 // int count
        end local 2 // int stop
         5: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
            iload 1 /* num */
            isub
            istore 2 /* stop */
        start local 2 // int stop
         6: .line 148
            iload 1 /* num */
            istore 3 /* count */
        start local 3 // int count
         7: .line 150
            goto 9
         8: .line 151
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeByteBlocks:[[I
            aload 0 /* this */
            dup
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
            iconst_1
            isub
            dup_x1
            putfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
            aconst_null
            aastore
         9: .line 150
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.freeBlocks:I
            iload 2 /* stop */
            if_icmpgt 8
        10: .line 153
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.bytesUsed:Lorg/apache/lucene/util/Counter;
            iload 3 /* count */
            ineg
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.blockSize:I
            imul
            iconst_4
            imul
            i2l
            invokevirtual org.apache.lucene.util.Counter.addAndGet:(J)J
            pop2
        11: .line 154
            getstatic org.apache.lucene.util.RecyclingIntBlockAllocator.$assertionsDisabled:Z
            ifne 12
            aload 0 /* this */
            getfield org.apache.lucene.util.RecyclingIntBlockAllocator.bytesUsed:Lorg/apache/lucene/util/Counter;
            invokevirtual org.apache.lucene.util.Counter.get:()J
            lconst_0
            lcmp
            ifge 12
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        12: .line 155
      StackMap locals:
      StackMap stack:
            iload 3 /* count */
            ireturn
        end local 3 // int count
        end local 2 // int stop
        end local 1 // int num
        end local 0 // org.apache.lucene.util.RecyclingIntBlockAllocator this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lorg/apache/lucene/util/RecyclingIntBlockAllocator;
            0   13     1    num  I
            3    5     2   stop  I
            6   13     2   stop  I
            4    5     3  count  I
            7   13     3  count  I
    MethodParameters:
      Name  Flags
      num   
}
SourceFile: "RecyclingIntBlockAllocator.java"
InnerClasses:
  public abstract Allocator = org.apache.lucene.util.IntBlockPool$Allocator of org.apache.lucene.util.IntBlockPool