final class org.apache.cassandra.utils.btree.TreeBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: org.apache.cassandra.utils.btree.TreeBuilder
  super_class: java.lang.Object
{
  private static final io.netty.util.Recycler<org.apache.cassandra.utils.btree.TreeBuilder> builderRecycler;
    descriptor: Lio/netty/util/Recycler;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Signature: Lio/netty/util/Recycler<Lorg/apache/cassandra/utils/btree/TreeBuilder;>;

  private final io.netty.util.Recycler$Handle recycleHandle;
    descriptor: Lio/netty/util/Recycler$Handle;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.apache.cassandra.utils.btree.NodeBuilder rootBuilder;
    descriptor: Lorg/apache/cassandra/utils/btree/NodeBuilder;
    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 35
            ldc Lorg/apache/cassandra/utils/btree/TreeBuilder;
            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.btree.TreeBuilder.$assertionsDisabled:Z
         3: .line 38
            new org.apache.cassandra.utils.btree.TreeBuilder$1
            dup
            invokespecial org.apache.cassandra.utils.btree.TreeBuilder$1.<init>:()V
            putstatic org.apache.cassandra.utils.btree.TreeBuilder.builderRecycler:Lio/netty/util/Recycler;
         4: .line 44
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static org.apache.cassandra.utils.btree.TreeBuilder newInstance();
    descriptor: ()Lorg/apache/cassandra/utils/btree/TreeBuilder;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 48
            getstatic org.apache.cassandra.utils.btree.TreeBuilder.builderRecycler:Lio/netty/util/Recycler;
            invokevirtual io.netty.util.Recycler.get:()Ljava/lang/Object;
            checkcast org.apache.cassandra.utils.btree.TreeBuilder
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  private void <init>(io.netty.util.Recycler$Handle);
    descriptor: (Lio/netty/util/Recycler$Handle;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.apache.cassandra.utils.btree.TreeBuilder this
        start local 1 // io.netty.util.Recycler$Handle handle
         0: .line 54
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 52
            aload 0 /* this */
            new org.apache.cassandra.utils.btree.NodeBuilder
            dup
            invokespecial org.apache.cassandra.utils.btree.NodeBuilder.<init>:()V
            putfield org.apache.cassandra.utils.btree.TreeBuilder.rootBuilder:Lorg/apache/cassandra/utils/btree/NodeBuilder;
         2: .line 56
            aload 0 /* this */
            aload 1 /* handle */
            putfield org.apache.cassandra.utils.btree.TreeBuilder.recycleHandle:Lio/netty/util/Recycler$Handle;
         3: .line 57
            return
        end local 1 // io.netty.util.Recycler$Handle handle
        end local 0 // org.apache.cassandra.utils.btree.TreeBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Lorg/apache/cassandra/utils/btree/TreeBuilder;
            0    4     1  handle  Lio/netty/util/Recycler$Handle;
    MethodParameters:
        Name  Flags
      handle  

  public <C, K extends C, V extends C> [] update([], java.util.Comparator<C>, java.lang.Iterable<K>, org.apache.cassandra.utils.btree.UpdateFunction<K, V>);
    descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Iterable;Lorg/apache/cassandra/utils/btree/UpdateFunction;)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=9, args_size=5
        start local 0 // org.apache.cassandra.utils.btree.TreeBuilder this
        start local 1 // java.lang.Object[] btree
        start local 2 // java.util.Comparator comparator
        start local 3 // java.lang.Iterable source
        start local 4 // org.apache.cassandra.utils.btree.UpdateFunction updateF
         0: .line 81
            getstatic org.apache.cassandra.utils.btree.TreeBuilder.$assertionsDisabled:Z
            ifne 1
            aload 4 /* updateF */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 83
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.btree.TreeBuilder.rootBuilder:Lorg/apache/cassandra/utils/btree/NodeBuilder;
            astore 5 /* current */
        start local 5 // org.apache.cassandra.utils.btree.NodeBuilder current
         2: .line 84
            aload 5 /* current */
            aload 1 /* btree */
            getstatic org.apache.cassandra.utils.btree.BTree.POSITIVE_INFINITY:Ljava/lang/Object;
            aload 4 /* updateF */
            aload 2 /* comparator */
            invokevirtual org.apache.cassandra.utils.btree.NodeBuilder.reset:([Ljava/lang/Object;Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/UpdateFunction;Ljava/util/Comparator;)V
         3: .line 86
            aload 3 /* source */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 7
            goto 13
      StackMap locals: org.apache.cassandra.utils.btree.TreeBuilder java.lang.Object[] java.util.Comparator java.lang.Iterable org.apache.cassandra.utils.btree.UpdateFunction org.apache.cassandra.utils.btree.NodeBuilder top java.util.Iterator
      StackMap stack:
         4: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Object
            astore 6 /* key */
        start local 6 // java.lang.Object key
         5: .line 90
      StackMap locals: org.apache.cassandra.utils.btree.TreeBuilder java.lang.Object[] java.util.Comparator java.lang.Iterable org.apache.cassandra.utils.btree.UpdateFunction org.apache.cassandra.utils.btree.NodeBuilder java.lang.Object java.util.Iterator
      StackMap stack:
            aload 4 /* updateF */
            invokeinterface org.apache.cassandra.utils.btree.UpdateFunction.abortEarly:()Z
            ifeq 8
         6: .line 92
            aload 0 /* this */
            getfield org.apache.cassandra.utils.btree.TreeBuilder.rootBuilder:Lorg/apache/cassandra/utils/btree/NodeBuilder;
            invokevirtual org.apache.cassandra.utils.btree.NodeBuilder.clear:()V
         7: .line 93
            aconst_null
            areturn
         8: .line 95
      StackMap locals:
      StackMap stack:
            aload 5 /* current */
            aload 6 /* key */
            invokevirtual org.apache.cassandra.utils.btree.NodeBuilder.update:(Ljava/lang/Object;)Lorg/apache/cassandra/utils/btree/NodeBuilder;
            astore 8 /* next */
        start local 8 // org.apache.cassandra.utils.btree.NodeBuilder next
         9: .line 96
            aload 8 /* next */
            ifnonnull 11
        10: .line 97
            goto 13
        11: .line 100
      StackMap locals: org.apache.cassandra.utils.btree.NodeBuilder
      StackMap stack:
            aload 8 /* next */
            astore 5 /* current */
        end local 8 // org.apache.cassandra.utils.btree.NodeBuilder next
        12: .line 88
            goto 5
        end local 6 // java.lang.Object key
        13: .line 86
      StackMap locals: org.apache.cassandra.utils.btree.TreeBuilder java.lang.Object[] java.util.Comparator java.lang.Iterable org.apache.cassandra.utils.btree.UpdateFunction org.apache.cassandra.utils.btree.NodeBuilder top java.util.Iterator
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        14: .line 107
      StackMap locals: org.apache.cassandra.utils.btree.TreeBuilder java.lang.Object[] java.util.Comparator java.lang.Iterable org.apache.cassandra.utils.btree.UpdateFunction org.apache.cassandra.utils.btree.NodeBuilder
      StackMap stack:
            aload 5 /* current */
            invokevirtual org.apache.cassandra.utils.btree.NodeBuilder.finish:()Lorg/apache/cassandra/utils/btree/NodeBuilder;
            astore 6 /* next */
        start local 6 // org.apache.cassandra.utils.btree.NodeBuilder next
        15: .line 108
            aload 6 /* next */
            ifnonnull 17
        16: .line 109
            goto 19
        17: .line 110
      StackMap locals: org.apache.cassandra.utils.btree.NodeBuilder
      StackMap stack:
            aload 6 /* next */
            astore 5 /* current */
        end local 6 // org.apache.cassandra.utils.btree.NodeBuilder next
        18: .line 105
            goto 14
        19: .line 114
      StackMap locals:
      StackMap stack:
            getstatic org.apache.cassandra.utils.btree.TreeBuilder.$assertionsDisabled:Z
            ifne 20
            aload 5 /* current */
            invokevirtual org.apache.cassandra.utils.btree.NodeBuilder.isRoot:()Z
            ifne 20
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
        20: .line 116
      StackMap locals:
      StackMap stack:
            aload 5 /* current */
            invokevirtual org.apache.cassandra.utils.btree.NodeBuilder.toNode:()[Ljava/lang/Object;
            astore 6 /* r */
        start local 6 // java.lang.Object[] r
        21: .line 117
            aload 5 /* current */
            invokevirtual org.apache.cassandra.utils.btree.NodeBuilder.clear:()V
        22: .line 119
            getstatic org.apache.cassandra.utils.btree.TreeBuilder.builderRecycler:Lio/netty/util/Recycler;
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.btree.TreeBuilder.recycleHandle:Lio/netty/util/Recycler$Handle;
            invokevirtual io.netty.util.Recycler.recycle:(Ljava/lang/Object;Lio/netty/util/Recycler$Handle;)Z
            pop
        23: .line 121
            aload 6 /* r */
            areturn
        end local 6 // java.lang.Object[] r
        end local 5 // org.apache.cassandra.utils.btree.NodeBuilder current
        end local 4 // org.apache.cassandra.utils.btree.UpdateFunction updateF
        end local 3 // java.lang.Iterable source
        end local 2 // java.util.Comparator comparator
        end local 1 // java.lang.Object[] btree
        end local 0 // org.apache.cassandra.utils.btree.TreeBuilder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0        this  Lorg/apache/cassandra/utils/btree/TreeBuilder;
            0   24     1       btree  [Ljava/lang/Object;
            0   24     2  comparator  Ljava/util/Comparator<TC;>;
            0   24     3      source  Ljava/lang/Iterable<TK;>;
            0   24     4     updateF  Lorg/apache/cassandra/utils/btree/UpdateFunction<TK;TV;>;
            2   24     5     current  Lorg/apache/cassandra/utils/btree/NodeBuilder;
            5   13     6         key  TK;
            9   12     8        next  Lorg/apache/cassandra/utils/btree/NodeBuilder;
           15   18     6        next  Lorg/apache/cassandra/utils/btree/NodeBuilder;
           21   24     6           r  [Ljava/lang/Object;
    Signature: <C:Ljava/lang/Object;K:TC;V:TC;>([Ljava/lang/Object;Ljava/util/Comparator<TC;>;Ljava/lang/Iterable<TK;>;Lorg/apache/cassandra/utils/btree/UpdateFunction<TK;TV;>;)[Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      btree       
      comparator  
      source      
      updateF     

  public <C, K extends C, V extends C> [] build(java.lang.Iterable<K>, org.apache.cassandra.utils.btree.UpdateFunction<K, V>, int);
    descriptor: (Ljava/lang/Iterable;Lorg/apache/cassandra/utils/btree/UpdateFunction;I)[Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=4
        start local 0 // org.apache.cassandra.utils.btree.TreeBuilder this
        start local 1 // java.lang.Iterable source
        start local 2 // org.apache.cassandra.utils.btree.UpdateFunction updateF
        start local 3 // int size
         0: .line 126
            getstatic org.apache.cassandra.utils.btree.TreeBuilder.$assertionsDisabled:Z
            ifne 1
            aload 2 /* updateF */
            ifnonnull 1
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         1: .line 128
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.apache.cassandra.utils.btree.TreeBuilder.rootBuilder:Lorg/apache/cassandra/utils/btree/NodeBuilder;
            astore 4 /* current */
        start local 4 // org.apache.cassandra.utils.btree.NodeBuilder current
         2: .line 131
            goto 4
         3: .line 132
      StackMap locals: org.apache.cassandra.utils.btree.NodeBuilder
      StackMap stack:
            aload 4 /* current */
            invokevirtual org.apache.cassandra.utils.btree.NodeBuilder.ensureChild:()Lorg/apache/cassandra/utils/btree/NodeBuilder;
            astore 4 /* current */
         4: .line 131
      StackMap locals:
      StackMap stack:
            iload 3 /* size */
            getstatic org.apache.cassandra.utils.btree.BTree.FAN_SHIFT:I
            ishr
            dup
            istore 3 /* size */
            ifgt 3
         5: .line 134
            aload 4 /* current */
            getstatic org.apache.cassandra.utils.btree.BTree.EMPTY_LEAF:[Ljava/lang/Object;
            getstatic org.apache.cassandra.utils.btree.BTree.POSITIVE_INFINITY:Ljava/lang/Object;
            aload 2 /* updateF */
            aconst_null
            invokevirtual org.apache.cassandra.utils.btree.NodeBuilder.reset:([Ljava/lang/Object;Ljava/lang/Object;Lorg/apache/cassandra/utils/btree/UpdateFunction;Ljava/util/Comparator;)V
         6: .line 135
            aload 1 /* source */
            invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
            astore 6
            goto 9
      StackMap locals: org.apache.cassandra.utils.btree.TreeBuilder java.lang.Iterable org.apache.cassandra.utils.btree.UpdateFunction int org.apache.cassandra.utils.btree.NodeBuilder top java.util.Iterator
      StackMap stack:
         7: aload 6
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.Object
            astore 5 /* key */
        start local 5 // java.lang.Object key
         8: .line 136
            aload 4 /* current */
            aload 5 /* key */
            invokevirtual org.apache.cassandra.utils.btree.NodeBuilder.addNewKey:(Ljava/lang/Object;)V
        end local 5 // java.lang.Object key
         9: .line 135
      StackMap locals:
      StackMap stack:
            aload 6
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        10: .line 138
            aload 4 /* current */
            invokevirtual org.apache.cassandra.utils.btree.NodeBuilder.ascendToRoot:()Lorg/apache/cassandra/utils/btree/NodeBuilder;
            astore 4 /* current */
        11: .line 140
            aload 4 /* current */
            invokevirtual org.apache.cassandra.utils.btree.NodeBuilder.toNode:()[Ljava/lang/Object;
            astore 5 /* r */
        start local 5 // java.lang.Object[] r
        12: .line 141
            aload 4 /* current */
            invokevirtual org.apache.cassandra.utils.btree.NodeBuilder.clear:()V
        13: .line 143
            getstatic org.apache.cassandra.utils.btree.TreeBuilder.builderRecycler:Lio/netty/util/Recycler;
            aload 0 /* this */
            aload 0 /* this */
            getfield org.apache.cassandra.utils.btree.TreeBuilder.recycleHandle:Lio/netty/util/Recycler$Handle;
            invokevirtual io.netty.util.Recycler.recycle:(Ljava/lang/Object;Lio/netty/util/Recycler$Handle;)Z
            pop
        14: .line 145
            aload 5 /* r */
            areturn
        end local 5 // java.lang.Object[] r
        end local 4 // org.apache.cassandra.utils.btree.NodeBuilder current
        end local 3 // int size
        end local 2 // org.apache.cassandra.utils.btree.UpdateFunction updateF
        end local 1 // java.lang.Iterable source
        end local 0 // org.apache.cassandra.utils.btree.TreeBuilder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   15     0     this  Lorg/apache/cassandra/utils/btree/TreeBuilder;
            0   15     1   source  Ljava/lang/Iterable<TK;>;
            0   15     2  updateF  Lorg/apache/cassandra/utils/btree/UpdateFunction<TK;TV;>;
            0   15     3     size  I
            2   15     4  current  Lorg/apache/cassandra/utils/btree/NodeBuilder;
            8    9     5      key  TK;
           12   15     5        r  [Ljava/lang/Object;
    Signature: <C:Ljava/lang/Object;K:TC;V:TC;>(Ljava/lang/Iterable<TK;>;Lorg/apache/cassandra/utils/btree/UpdateFunction<TK;TV;>;I)[Ljava/lang/Object;
    MethodParameters:
         Name  Flags
      source   
      updateF  
      size     
}
SourceFile: "TreeBuilder.java"
NestMembers:
  org.apache.cassandra.utils.btree.TreeBuilder$1
InnerClasses:
  public abstract Handle = io.netty.util.Recycler$Handle of io.netty.util.Recycler
  org.apache.cassandra.utils.btree.TreeBuilder$1