final class org.apache.cassandra.utils.memory.BufferPool$Chunk
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.apache.cassandra.utils.memory.BufferPool$Chunk
  super_class: java.lang.Object
{
  private final java.nio.ByteBuffer slab;
    descriptor: Ljava/nio/ByteBuffer;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final long baseAddress;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

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

  private volatile long freeSlots;
    descriptor: J
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<org.apache.cassandra.utils.memory.BufferPool$Chunk> freeSlotsUpdater;
    descriptor: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater<Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;>;

  private volatile org.apache.cassandra.utils.memory.BufferPool$LocalPool owner;
    descriptor: Lorg/apache/cassandra/utils/memory/BufferPool$LocalPool;
    flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE

  private long lastRecycled;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private final org.apache.cassandra.utils.memory.BufferPool$Chunk original;
    descriptor: Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  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=2, locals=0, args_size=0
         0: .line 552
            ldc Lorg/apache/cassandra/utils/memory/BufferPool;
            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.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
         3: .line 559
            ldc Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
            ldc "freeSlots"
            invokestatic java.util.concurrent.atomic.AtomicLongFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
            putstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlotsUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(org.apache.cassandra.utils.memory.BufferPool$Chunk);
    descriptor: (Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
        start local 1 // org.apache.cassandra.utils.memory.BufferPool$Chunk recycle
         0: .line 568
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 570
            getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
            ifne 2
            aload 1 /* recycle */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
            lconst_0
            lcmp
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 571
      StackMap locals: org.apache.cassandra.utils.memory.BufferPool$Chunk org.apache.cassandra.utils.memory.BufferPool$Chunk
      StackMap stack:
            aload 0 /* this */
            aload 1 /* recycle */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
            putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
         3: .line 572
            aload 0 /* this */
            aload 1 /* recycle */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.baseAddress:J
            putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.baseAddress:J
         4: .line 573
            aload 0 /* this */
            aload 1 /* recycle */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
            putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
         5: .line 574
            aload 0 /* this */
            ldc -1
            putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
         6: .line 575
            aload 0 /* this */
            aload 1 /* recycle */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.original:Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
            putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.original:Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
         7: .line 576
            getstatic org.apache.cassandra.utils.memory.BufferPool.DEBUG:Z
            ifeq 9
         8: .line 577
            getstatic org.apache.cassandra.utils.memory.BufferPool.globalPool:Lorg/apache/cassandra/utils/memory/BufferPool$GlobalPool;
            getfield org.apache.cassandra.utils.memory.BufferPool$GlobalPool.debug:Lorg/apache/cassandra/utils/memory/BufferPool$Debug;
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.original:Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$Debug.recycle:(Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;)V
         9: .line 578
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.cassandra.utils.memory.BufferPool$Chunk recycle
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
            0   10     1  recycle  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
    MethodParameters:
         Name  Flags
      recycle  

  void <init>(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
        start local 1 // java.nio.ByteBuffer slab
         0: .line 580
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 582
            getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
            ifne 2
            aload 1 /* slab */
            invokevirtual java.nio.ByteBuffer.hasArray:()Z
            ifeq 2
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         2: .line 583
      StackMap locals: org.apache.cassandra.utils.memory.BufferPool$Chunk java.nio.ByteBuffer
      StackMap stack:
            aload 0 /* this */
            aload 1 /* slab */
            putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
         3: .line 584
            aload 0 /* this */
            aload 1 /* slab */
            invokestatic org.apache.cassandra.utils.memory.MemoryUtil.getAddress:(Ljava/nio/ByteBuffer;)J
            putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.baseAddress:J
         4: .line 588
            aload 0 /* this */
            bipush 31
            aload 1 /* slab */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            bipush 64
            idiv
            invokestatic java.lang.Integer.numberOfTrailingZeros:(I)I
            iand
            putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
         5: .line 590
            aload 0 /* this */
            aload 1 /* slab */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            ifne 6
            lconst_0
            goto 7
      StackMap locals:
      StackMap stack: org.apache.cassandra.utils.memory.BufferPool$Chunk
         6: ldc -1
      StackMap locals: org.apache.cassandra.utils.memory.BufferPool$Chunk java.nio.ByteBuffer
      StackMap stack: org.apache.cassandra.utils.memory.BufferPool$Chunk long
         7: putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
         8: .line 591
            aload 0 /* this */
            getstatic org.apache.cassandra.utils.memory.BufferPool.DEBUG:Z
            ifeq 9
            aload 0 /* this */
            goto 10
      StackMap locals:
      StackMap stack: org.apache.cassandra.utils.memory.BufferPool$Chunk
         9: aconst_null
      StackMap locals: org.apache.cassandra.utils.memory.BufferPool$Chunk java.nio.ByteBuffer
      StackMap stack: org.apache.cassandra.utils.memory.BufferPool$Chunk org.apache.cassandra.utils.memory.BufferPool$Chunk
        10: putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.original:Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
        11: .line 592
            return
        end local 1 // java.nio.ByteBuffer slab
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
            0   12     1  slab  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      slab  

  void acquire(org.apache.cassandra.utils.memory.BufferPool$LocalPool);
    descriptor: (Lorg/apache/cassandra/utils/memory/BufferPool$LocalPool;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
        start local 1 // org.apache.cassandra.utils.memory.BufferPool$LocalPool owner
         0: .line 600
            getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.owner:Lorg/apache/cassandra/utils/memory/BufferPool$LocalPool;
            ifnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 601
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* owner */
            putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.owner:Lorg/apache/cassandra/utils/memory/BufferPool$LocalPool;
         2: .line 602
            return
        end local 1 // org.apache.cassandra.utils.memory.BufferPool$LocalPool owner
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
            0    3     1  owner  Lorg/apache/cassandra/utils/memory/BufferPool$LocalPool;
    MethodParameters:
       Name  Flags
      owner  

  void release();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
         0: .line 611
            aload 0 /* this */
            aconst_null
            putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.owner:Lorg/apache/cassandra/utils/memory/BufferPool$LocalPool;
         1: .line 612
            aload 0 /* this */
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.tryRecycle:()V
         2: .line 613
            return
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;

  void tryRecycle();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
         0: .line 617
            getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.owner:Lorg/apache/cassandra/utils/memory/BufferPool$LocalPool;
            ifnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 618
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.isFree:()Z
            ifeq 3
            getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlotsUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
            aload 0 /* this */
            ldc -1
            lconst_0
            invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.compareAndSet:(Ljava/lang/Object;JJ)Z
            ifeq 3
         2: .line 619
            aload 0 /* this */
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.recycle:()V
         3: .line 620
      StackMap locals:
      StackMap stack:
            return
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;

  void recycle();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
         0: .line 624
            getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
            ifne 1
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
            lconst_0
            lcmp
            ifeq 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 625
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.utils.memory.BufferPool.globalPool:Lorg/apache/cassandra/utils/memory/BufferPool$GlobalPool;
            new org.apache.cassandra.utils.memory.BufferPool$Chunk
            dup
            aload 0 /* this */
            invokespecial org.apache.cassandra.utils.memory.BufferPool$Chunk.<init>:(Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;)V
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$GlobalPool.recycle:(Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;)V
         2: .line 626
            return
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;

  static org.apache.cassandra.utils.memory.BufferPool$Chunk getParentChunk(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // java.nio.ByteBuffer buffer
         0: .line 635
            aload 0 /* buffer */
            invokestatic org.apache.cassandra.utils.memory.MemoryUtil.getAttachment:(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
            astore 1 /* attachment */
        start local 1 // java.lang.Object attachment
         1: .line 637
            aload 1 /* attachment */
            instanceof org.apache.cassandra.utils.memory.BufferPool$Chunk
            ifeq 3
         2: .line 638
            aload 1 /* attachment */
            checkcast org.apache.cassandra.utils.memory.BufferPool$Chunk
            areturn
         3: .line 640
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1 /* attachment */
            instanceof org.apache.cassandra.utils.concurrent.Ref
            ifeq 5
         4: .line 641
            aload 1 /* attachment */
            checkcast org.apache.cassandra.utils.concurrent.Ref
            invokevirtual org.apache.cassandra.utils.concurrent.Ref.get:()Ljava/lang/Object;
            checkcast org.apache.cassandra.utils.memory.BufferPool$Chunk
            areturn
         5: .line 643
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // java.lang.Object attachment
        end local 0 // java.nio.ByteBuffer buffer
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0      buffer  Ljava/nio/ByteBuffer;
            1    6     1  attachment  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      buffer  

  java.nio.ByteBuffer setAttachment(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
    flags: (0x0000) 
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
        start local 1 // java.nio.ByteBuffer buffer
         0: .line 648
            getstatic org.apache.cassandra.utils.concurrent.Ref.DEBUG_ENABLED:Z
            ifeq 2
         1: .line 649
            aload 1 /* buffer */
            new org.apache.cassandra.utils.concurrent.Ref
            dup
            aload 0 /* this */
            aconst_null
            invokespecial org.apache.cassandra.utils.concurrent.Ref.<init>:(Ljava/lang/Object;Lorg/apache/cassandra/utils/concurrent/RefCounted$Tidy;)V
            invokestatic org.apache.cassandra.utils.memory.MemoryUtil.setAttachment:(Ljava/nio/ByteBuffer;Ljava/lang/Object;)V
            goto 3
         2: .line 651
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            aload 0 /* this */
            invokestatic org.apache.cassandra.utils.memory.MemoryUtil.setAttachment:(Ljava/nio/ByteBuffer;Ljava/lang/Object;)V
         3: .line 653
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            areturn
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
            0    4     1  buffer  Ljava/nio/ByteBuffer;
    MethodParameters:
        Name  Flags
      buffer  

  boolean releaseAttachment(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Z
    flags: (0x0000) 
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
        start local 1 // java.nio.ByteBuffer buffer
         0: .line 658
            aload 1 /* buffer */
            invokestatic org.apache.cassandra.utils.memory.MemoryUtil.getAttachment:(Ljava/nio/ByteBuffer;)Ljava/lang/Object;
            astore 2 /* attachment */
        start local 2 // java.lang.Object attachment
         1: .line 659
            aload 2 /* attachment */
            ifnonnull 3
         2: .line 660
            iconst_0
            ireturn
         3: .line 662
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2 /* attachment */
            instanceof org.apache.cassandra.utils.concurrent.Ref
            ifeq 5
         4: .line 663
            aload 2 /* attachment */
            checkcast org.apache.cassandra.utils.concurrent.Ref
            invokevirtual org.apache.cassandra.utils.concurrent.Ref.release:()V
         5: .line 665
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // java.lang.Object attachment
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
            0    6     1      buffer  Ljava/nio/ByteBuffer;
            1    6     2  attachment  Ljava/lang/Object;
    MethodParameters:
        Name  Flags
      buffer  

  void reset();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
         0: .line 671
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
            invokestatic org.apache.cassandra.utils.memory.BufferPool$Chunk.getParentChunk:(Ljava/nio/ByteBuffer;)Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
            astore 1 /* parent */
        start local 1 // org.apache.cassandra.utils.memory.BufferPool$Chunk parent
         1: .line 672
            aload 1 /* parent */
            ifnull 3
         2: .line 673
            aload 1 /* parent */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
            iconst_0
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.free:(Ljava/nio/ByteBuffer;Z)J
            pop2
            goto 4
         3: .line 675
      StackMap locals: org.apache.cassandra.utils.memory.BufferPool$Chunk
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
            invokestatic org.apache.cassandra.io.util.FileUtils.clean:(Ljava/nio/ByteBuffer;)V
         4: .line 676
      StackMap locals:
      StackMap stack:
            return
        end local 1 // org.apache.cassandra.utils.memory.BufferPool$Chunk parent
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
            1    5     1  parent  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()

  long setFreeSlots(long);
    descriptor: (J)J
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
        start local 1 // long val
         0: .line 681
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
            lstore 3 /* ret */
        start local 3 // long ret
         1: .line 682
            aload 0 /* this */
            lload 1 /* val */
            putfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
         2: .line 683
            lload 3 /* ret */
            lreturn
        end local 3 // long ret
        end local 1 // long val
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
            0    3     1   val  J
            1    3     3   ret  J
    RuntimeInvisibleAnnotations: 
      com.google.common.annotations.VisibleForTesting()
    RuntimeInvisibleTypeAnnotations: 
      METHOD_RETURN
        com.google.common.annotations.VisibleForTesting()
    MethodParameters:
      Name  Flags
      val   

  int capacity();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
         0: .line 688
            bipush 64
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
            ishl
            ireturn
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;

  final int unit();
    descriptor: ()I
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
         0: .line 693
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
            ishl
            ireturn
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;

  final boolean isFree();
    descriptor: ()Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
         0: .line 698
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
            ldc -1
            lcmp
            ifne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;

  int free();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
         0: .line 704
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
            invokestatic java.lang.Long.bitCount:(J)I
            aload 0 /* this */
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.unit:()I
            imul
            ireturn
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;

  java.nio.ByteBuffer get(int);
    descriptor: (I)Ljava/nio/ByteBuffer;
    flags: (0x0000) 
    Code:
      stack=10, locals=12, args_size=2
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
        start local 1 // int size
         0: .line 715
            iload 1 /* size */
            iconst_1
            isub
            aload 0 /* this */
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.unit:()I
            iadd
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
            iushr
            istore 2 /* slotCount */
        start local 2 // int slotCount
         1: .line 718
            iload 2 /* slotCount */
            bipush 64
            if_icmple 3
         2: .line 719
            aconst_null
            areturn
         3: .line 722
      StackMap locals: int
      StackMap stack:
            ldc -1
            bipush 64
            iload 2 /* slotCount */
            isub
            lushr
            lstore 3 /* slotBits */
        start local 3 // long slotBits
         4: .line 733
            ldc 1229782938247303441
            lstore 5 /* searchMask */
        start local 5 // long searchMask
         5: .line 734
            lload 5 /* searchMask */
            ldc 15
            iload 2 /* slotCount */
            iconst_1
            isub
            iconst_3
            iand
            lushr
            lmul
            lstore 5 /* searchMask */
         6: .line 742
            lload 5 /* searchMask */
            ldc -1
            iload 2 /* slotCount */
            iconst_1
            isub
            lushr
            land
            lstore 5 /* searchMask */
         7: .line 748
      StackMap locals: long long
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
            lstore 7 /* cur */
        start local 7 // long cur
         8: .line 752
            lload 7 /* cur */
            lload 5 /* searchMask */
            land
            invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
            istore 9 /* index */
        start local 9 // int index
         9: .line 757
            iload 9 /* index */
            bipush 64
            if_icmpne 11
        10: .line 758
            aconst_null
            areturn
        11: .line 761
      StackMap locals: long int
      StackMap stack:
            lload 5 /* searchMask */
            lconst_1
            iload 9 /* index */
            lshl
            lxor
            lstore 5 /* searchMask */
        12: .line 763
            lload 3 /* slotBits */
            iload 9 /* index */
            lshl
            lstore 10 /* candidate */
        start local 10 // long candidate
        13: .line 764
            lload 10 /* candidate */
            lload 7 /* cur */
            land
            lload 10 /* candidate */
            lcmp
            ifne 7
        14: .line 772
      StackMap locals: long
      StackMap stack:
            getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlotsUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
            aload 0 /* this */
            lload 7 /* cur */
            lload 7 /* cur */
            lload 10 /* candidate */
            ldc -1
            lxor
            land
            invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.compareAndSet:(Ljava/lang/Object;JJ)Z
            ifeq 16
        15: .line 773
            goto 18
        16: .line 775
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
            lstore 7 /* cur */
        17: .line 777
            getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
            ifne 14
            lload 10 /* candidate */
            lload 7 /* cur */
            land
            lload 10 /* candidate */
            lcmp
            ifeq 14
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        18: .line 779
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 9 /* index */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
            ishl
            iload 1 /* size */
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.get:(II)Ljava/nio/ByteBuffer;
            areturn
        end local 10 // long candidate
        end local 9 // int index
        end local 7 // long cur
        end local 5 // long searchMask
        end local 3 // long slotBits
        end local 2 // int slotCount
        end local 1 // int size
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   19     0        this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
            0   19     1        size  I
            1   19     2   slotCount  I
            4   19     3    slotBits  J
            5   19     5  searchMask  J
            8   19     7         cur  J
            9   19     9       index  I
           13   19    10   candidate  J
    MethodParameters:
      Name  Flags
      size  

  private java.nio.ByteBuffer get(int, int);
    descriptor: (II)Ljava/nio/ByteBuffer;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
        start local 1 // int offset
        start local 2 // int size
         0: .line 786
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
            iload 1 /* offset */
            iload 2 /* size */
            iadd
            invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
            pop
         1: .line 787
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
            iload 1 /* offset */
            invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
            pop
         2: .line 789
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
            invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.setAttachment:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
            areturn
        end local 2 // int size
        end local 1 // int offset
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
            0    3     1  offset  I
            0    3     2    size  I
    MethodParameters:
        Name  Flags
      offset  
      size    

  int roundUp(int);
    descriptor: (I)I
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
        start local 1 // int v
         0: .line 797
            iload 1 /* v */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.unit:()I
            invokestatic org.apache.cassandra.utils.memory.BufferPool.roundUp:(II)I
            ireturn
        end local 1 // int v
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
            0    1     1     v  I
    MethodParameters:
      Name  Flags
      v     

  long free(java.nio.ByteBuffer, boolean);
    descriptor: (Ljava/nio/ByteBuffer;Z)J
    flags: (0x0000) 
    Code:
      stack=7, locals=16, args_size=3
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
        start local 1 // java.nio.ByteBuffer buffer
        start local 2 // boolean tryRelease
         0: .line 808
            aload 0 /* this */
            aload 1 /* buffer */
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.releaseAttachment:(Ljava/nio/ByteBuffer;)Z
            ifne 2
         1: .line 809
            lconst_1
            lreturn
         2: .line 811
      StackMap locals:
      StackMap stack:
            aload 1 /* buffer */
            invokestatic org.apache.cassandra.utils.memory.MemoryUtil.getAddress:(Ljava/nio/ByteBuffer;)J
            lstore 3 /* address */
        start local 3 // long address
         3: .line 812
            getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
            ifne 8
            lload 3 /* address */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.baseAddress:J
            lcmp
            iflt 4
            iconst_1
            goto 5
      StackMap locals: long
      StackMap stack:
         4: iconst_0
      StackMap locals:
      StackMap stack: int
         5: lload 3 /* address */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.baseAddress:J
            aload 0 /* this */
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.capacity:()I
            i2l
            ladd
            lcmp
            ifgt 6
            iconst_1
            goto 7
      StackMap locals:
      StackMap stack: int
         6: iconst_0
      StackMap locals: org.apache.cassandra.utils.memory.BufferPool$Chunk java.nio.ByteBuffer int long
      StackMap stack: int int
         7: iand
            ifne 8
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         8: .line 814
      StackMap locals:
      StackMap stack:
            lload 3 /* address */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.baseAddress:J
            lsub
            l2i
            istore 5 /* position */
        start local 5 // int position
         9: .line 815
            aload 0 /* this */
            aload 1 /* buffer */
            invokevirtual java.nio.ByteBuffer.capacity:()I
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.roundUp:(I)I
            istore 6 /* size */
        start local 6 // int size
        10: .line 817
            iload 5 /* position */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
            ishr
            istore 5 /* position */
        11: .line 818
            iload 6 /* size */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.shift:I
            ishr
            istore 7 /* slotCount */
        start local 7 // int slotCount
        12: .line 820
            lconst_1
            iload 7 /* slotCount */
            lshl
            lconst_1
            lsub
            lstore 8 /* slotBits */
        start local 8 // long slotBits
        13: .line 821
            lload 8 /* slotBits */
            iload 5 /* position */
            lshl
            lstore 10 /* shiftedSlotBits */
        start local 10 // long shiftedSlotBits
        14: .line 823
            iload 7 /* slotCount */
            bipush 64
            if_icmpne 18
        15: .line 825
            getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
            ifne 16
            iload 6 /* size */
            aload 0 /* this */
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.capacity:()I
            if_icmpeq 16
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        16: .line 826
      StackMap locals: org.apache.cassandra.utils.memory.BufferPool$Chunk java.nio.ByteBuffer int long int int int long long
      StackMap stack:
            getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
            ifne 17
            iload 5 /* position */
            ifeq 17
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        17: .line 827
      StackMap locals:
      StackMap stack:
            ldc -1
            lstore 10 /* shiftedSlotBits */
        18: .line 833
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
            lstore 14 /* cur */
        start local 14 // long cur
        19: .line 834
            lload 14 /* cur */
            lload 10 /* shiftedSlotBits */
            lor
            lstore 12 /* next */
        start local 12 // long next
        20: .line 835
            getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.$assertionsDisabled:Z
            ifne 21
            lload 12 /* next */
            lload 14 /* cur */
            lload 10 /* shiftedSlotBits */
            lxor
            lcmp
            ifeq 21
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        21: .line 836
      StackMap locals: long long
      StackMap stack:
            iload 2 /* tryRelease */
            ifeq 23
            lload 12 /* next */
            ldc -1
            lcmp
            ifne 23
        22: .line 837
            lconst_0
            lstore 12 /* next */
        23: .line 838
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlotsUpdater:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
            aload 0 /* this */
            lload 14 /* cur */
            lload 12 /* next */
            invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.compareAndSet:(Ljava/lang/Object;JJ)Z
            ifeq 18
        24: .line 839
            lload 12 /* next */
            lreturn
        end local 14 // long cur
        end local 12 // long next
        end local 10 // long shiftedSlotBits
        end local 8 // long slotBits
        end local 7 // int slotCount
        end local 6 // int size
        end local 5 // int position
        end local 3 // long address
        end local 2 // boolean tryRelease
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   25     0             this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
            0   25     1           buffer  Ljava/nio/ByteBuffer;
            0   25     2       tryRelease  Z
            3   25     3          address  J
            9   25     5         position  I
           10   25     6             size  I
           12   25     7        slotCount  I
           13   25     8         slotBits  J
           14   25    10  shiftedSlotBits  J
           20   25    12             next  J
           19   25    14              cur  J
    MethodParameters:
            Name  Flags
      buffer      
      tryRelease  

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
         0: .line 846
            ldc "[slab %s, slots bitmap %s, capacity %d, free %d]"
            iconst_4
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.slab:Ljava/nio/ByteBuffer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.apache.cassandra.utils.memory.BufferPool$Chunk.freeSlots:J
            invokestatic java.lang.Long.toBinaryString:(J)Ljava/lang/String;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.capacity:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_3
            aload 0 /* this */
            invokevirtual org.apache.cassandra.utils.memory.BufferPool$Chunk.free:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // org.apache.cassandra.utils.memory.BufferPool$Chunk this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/apache/cassandra/utils/memory/BufferPool$Chunk;
}
SourceFile: "BufferPool.java"
NestHost: org.apache.cassandra.utils.memory.BufferPool
InnerClasses:
  public abstract Tidy = org.apache.cassandra.utils.concurrent.RefCounted$Tidy of org.apache.cassandra.utils.concurrent.RefCounted
  final Chunk = org.apache.cassandra.utils.memory.BufferPool$Chunk of org.apache.cassandra.utils.memory.BufferPool
  final Debug = org.apache.cassandra.utils.memory.BufferPool$Debug of org.apache.cassandra.utils.memory.BufferPool
  final GlobalPool = org.apache.cassandra.utils.memory.BufferPool$GlobalPool of org.apache.cassandra.utils.memory.BufferPool
  final LocalPool = org.apache.cassandra.utils.memory.BufferPool$LocalPool of org.apache.cassandra.utils.memory.BufferPool