public class org.apache.cassandra.utils.btree.BTreeRemoval
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.apache.cassandra.utils.btree.BTreeRemoval
super_class: java.lang.Object
{
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 24
ldc Lorg/apache/cassandra/utils/btree/BTreeRemoval;
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.BTreeRemoval.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 // org.apache.cassandra.utils.btree.BTreeRemoval this
0: .line 24
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // org.apache.cassandra.utils.btree.BTreeRemoval this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/btree/BTreeRemoval;
public static <V> [] remove([], java.util.Comparator<? super V>, V);
descriptor: ([Ljava/lang/Object;Ljava/util/Comparator;Ljava/lang/Object;)[Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=10, args_size=3
start local 0 // java.lang.Object[] btree
start local 1 // java.util.Comparator comparator
start local 2 // java.lang.Object elem
0: .line 31
aload 0 /* btree */
invokestatic org.apache.cassandra.utils.btree.BTree.isEmpty:([Ljava/lang/Object;)Z
ifeq 2
1: .line 32
aload 0 /* btree */
areturn
2: .line 33
StackMap locals:
StackMap stack:
iconst_m1
istore 3 /* index */
start local 3 // int index
3: .line 34
aconst_null
astore 4 /* elemToSwap */
start local 4 // java.lang.Object elemToSwap
4: .line 35
iconst_0
istore 5 /* lb */
start local 5 // int lb
5: .line 36
aload 0 /* btree */
astore 6 /* node */
start local 6 // java.lang.Object[] node
6: .line 39
StackMap locals: java.lang.Object[] java.util.Comparator java.lang.Object int java.lang.Object int java.lang.Object[]
StackMap stack:
aload 6 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
istore 7 /* keyEnd */
start local 7 // int keyEnd
7: .line 40
aload 6 /* node */
iconst_0
iload 7 /* keyEnd */
aload 2 /* elem */
aload 1 /* comparator */
invokestatic java.util.Arrays.binarySearch:([Ljava/lang/Object;IILjava/lang/Object;Ljava/util/Comparator;)I
istore 8 /* i */
start local 8 // int i
8: .line 42
iload 8 /* i */
iflt 15
9: .line 44
aload 6 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
ifeq 11
10: .line 45
iload 5 /* lb */
iload 8 /* i */
iadd
istore 3 /* index */
goto 22
11: .line 48
StackMap locals: int int
StackMap stack:
aload 6 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
iload 8 /* i */
iaload
istore 9 /* indexInNode */
start local 9 // int indexInNode
12: .line 49
iload 5 /* lb */
iload 9 /* indexInNode */
iadd
iconst_1
isub
istore 3 /* index */
13: .line 50
aload 6 /* node */
iload 9 /* indexInNode */
iconst_1
isub
invokestatic org.apache.cassandra.utils.btree.BTree.findByIndex:([Ljava/lang/Object;I)Ljava/lang/Object;
astore 4 /* elemToSwap */
end local 9 // int indexInNode
14: .line 52
goto 22
15: .line 54
StackMap locals:
StackMap stack:
aload 6 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
ifeq 17
16: .line 55
aload 0 /* btree */
areturn
17: .line 57
StackMap locals:
StackMap stack:
iconst_m1
iload 8 /* i */
isub
istore 8 /* i */
18: .line 58
iload 8 /* i */
ifle 20
19: .line 59
iload 5 /* lb */
aload 6 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
iload 8 /* i */
iconst_1
isub
iaload
iconst_1
iadd
iadd
istore 5 /* lb */
20: .line 61
StackMap locals:
StackMap stack:
aload 6 /* node */
iload 7 /* keyEnd */
iload 8 /* i */
iadd
aaload
checkcast java.lang.Object[]
astore 6 /* node */
end local 8 // int i
end local 7 // int keyEnd
21: .line 37
goto 6
22: .line 63
StackMap locals:
StackMap stack:
aload 0 /* btree */
invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
iconst_1
if_icmpne 24
23: .line 64
invokestatic org.apache.cassandra.utils.btree.BTree.empty:()[Ljava/lang/Object;
areturn
24: .line 65
StackMap locals:
StackMap stack:
aload 0 /* btree */
iload 3 /* index */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.removeFromLeaf:([Ljava/lang/Object;I)[Ljava/lang/Object;
astore 7 /* result */
start local 7 // java.lang.Object[] result
25: .line 66
aload 4 /* elemToSwap */
ifnull 27
26: .line 67
aload 7 /* result */
iload 3 /* index */
aload 4 /* elemToSwap */
invokestatic org.apache.cassandra.utils.btree.BTree.replaceInSitu:([Ljava/lang/Object;ILjava/lang/Object;)V
27: .line 68
StackMap locals: java.lang.Object[]
StackMap stack:
aload 7 /* result */
areturn
end local 7 // java.lang.Object[] result
end local 6 // java.lang.Object[] node
end local 5 // int lb
end local 4 // java.lang.Object elemToSwap
end local 3 // int index
end local 2 // java.lang.Object elem
end local 1 // java.util.Comparator comparator
end local 0 // java.lang.Object[] btree
LocalVariableTable:
Start End Slot Name Signature
0 28 0 btree [Ljava/lang/Object;
0 28 1 comparator Ljava/util/Comparator<-TV;>;
0 28 2 elem TV;
3 28 3 index I
4 28 4 elemToSwap TV;
5 28 5 lb I
6 28 6 node [Ljava/lang/Object;
7 21 7 keyEnd I
8 21 8 i I
12 14 9 indexInNode I
25 28 7 result [Ljava/lang/Object;
Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;Ljava/util/Comparator<-TV;>;TV;)[Ljava/lang/Object;
MethodParameters:
Name Flags
btree final
comparator final
elem final
private static java.lang.Object[] removeFromLeaf(java.lang.Object[], int);
descriptor: ([Ljava/lang/Object;I)[Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=12, args_size=2
start local 0 // java.lang.Object[] node
start local 1 // int index
0: .line 76
aconst_null
astore 2 /* result */
start local 2 // java.lang.Object[] result
1: .line 77
aconst_null
astore 3 /* prevNode */
start local 3 // java.lang.Object[] prevNode
2: .line 78
iconst_m1
istore 4 /* prevI */
start local 4 // int prevI
3: .line 79
iconst_1
istore 5 /* needsCopy */
start local 5 // boolean needsCopy
4: .line 80
goto 56
5: .line 82
StackMap locals: java.lang.Object[] int java.lang.Object[] java.lang.Object[] int int
StackMap stack:
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getBranchKeyEnd:([Ljava/lang/Object;)I
istore 6 /* keyEnd */
start local 6 // int keyEnd
6: .line 83
iconst_m1
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
iload 1 /* index */
invokestatic java.util.Arrays.binarySearch:([II)I
isub
istore 7 /* i */
start local 7 // int i
7: .line 84
iload 7 /* i */
ifle 9
8: .line 85
iload 1 /* index */
iconst_1
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
iload 7 /* i */
iconst_1
isub
iaload
iadd
isub
istore 1 /* index */
9: .line 86
StackMap locals: int int
StackMap stack:
aload 0 /* node */
iload 6 /* keyEnd */
iload 7 /* i */
iadd
aaload
checkcast java.lang.Object[]
astore 8 /* nextNode */
start local 8 // java.lang.Object[] nextNode
10: .line 87
iconst_1
istore 9 /* nextNodeNeedsCopy */
start local 9 // boolean nextNodeNeedsCopy
11: .line 88
aload 8 /* nextNode */
invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
getstatic org.apache.cassandra.utils.btree.BTree.MINIMAL_NODE_SIZE:I
if_icmple 13
12: .line 89
aload 0 /* node */
iload 5 /* needsCopy */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copyIfNeeded:([Ljava/lang/Object;Z)[Ljava/lang/Object;
astore 0 /* node */
goto 42
13: .line 90
StackMap locals: java.lang.Object[] int
StackMap stack:
iload 7 /* i */
ifle 21
aload 0 /* node */
iload 6 /* keyEnd */
iload 7 /* i */
iadd
iconst_1
isub
aaload
checkcast java.lang.Object[]
invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
getstatic org.apache.cassandra.utils.btree.BTree.MINIMAL_NODE_SIZE:I
if_icmple 21
14: .line 92
aload 0 /* node */
iload 5 /* needsCopy */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copyIfNeeded:([Ljava/lang/Object;Z)[Ljava/lang/Object;
astore 0 /* node */
15: .line 93
aload 0 /* node */
iload 6 /* keyEnd */
iload 7 /* i */
iadd
iconst_1
isub
aaload
checkcast java.lang.Object[]
astore 10 /* leftNeighbour */
start local 10 // java.lang.Object[] leftNeighbour
16: .line 94
iinc 1 /* index */ 1
17: .line 95
aload 10 /* leftNeighbour */
invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
ifne 19
18: .line 96
iload 1 /* index */
aload 10 /* leftNeighbour */
aload 10 /* leftNeighbour */
invokestatic org.apache.cassandra.utils.btree.BTree.getChildEnd:([Ljava/lang/Object;)I
iconst_1
isub
aaload
checkcast java.lang.Object[]
invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
iadd
istore 1 /* index */
19: .line 97
StackMap locals: java.lang.Object[]
StackMap stack:
aload 0 /* node */
iload 7 /* i */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.rotateLeft:([Ljava/lang/Object;I)[Ljava/lang/Object;
astore 8 /* nextNode */
end local 10 // java.lang.Object[] leftNeighbour
20: .line 98
goto 42
21: .line 99
StackMap locals:
StackMap stack:
iload 7 /* i */
iload 6 /* keyEnd */
if_icmpge 25
aload 0 /* node */
iload 6 /* keyEnd */
iload 7 /* i */
iadd
iconst_1
iadd
aaload
checkcast java.lang.Object[]
invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
getstatic org.apache.cassandra.utils.btree.BTree.MINIMAL_NODE_SIZE:I
if_icmple 25
22: .line 101
aload 0 /* node */
iload 5 /* needsCopy */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copyIfNeeded:([Ljava/lang/Object;Z)[Ljava/lang/Object;
astore 0 /* node */
23: .line 102
aload 0 /* node */
iload 7 /* i */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.rotateRight:([Ljava/lang/Object;I)[Ljava/lang/Object;
astore 8 /* nextNode */
24: .line 103
goto 42
25: .line 106
StackMap locals:
StackMap stack:
iconst_0
istore 9 /* nextNodeNeedsCopy */
26: .line 107
iload 7 /* i */
ifle 36
27: .line 109
aload 0 /* node */
iload 6 /* keyEnd */
iload 7 /* i */
iadd
iconst_1
isub
aaload
checkcast java.lang.Object[]
astore 10 /* leftNeighbour */
start local 10 // java.lang.Object[] leftNeighbour
28: .line 110
aload 0 /* node */
iload 7 /* i */
iconst_1
isub
aaload
astore 11 /* nodeKey */
start local 11 // java.lang.Object nodeKey
29: .line 111
iload 6 /* keyEnd */
iconst_1
if_icmpne 30
aconst_null
goto 31
StackMap locals: java.lang.Object[] java.lang.Object
StackMap stack:
30: aload 0 /* node */
iload 7 /* i */
iconst_1
isub
iload 7 /* i */
iconst_1
isub
iconst_0
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copyWithKeyAndChildRemoved:([Ljava/lang/Object;IIZ)[Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object[]
31: astore 0 /* node */
32: .line 112
aload 10 /* leftNeighbour */
aload 8 /* nextNode */
aload 11 /* nodeKey */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.merge:([Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
astore 8 /* nextNode */
33: .line 113
iinc 7 /* i */ -1
34: .line 114
iload 1 /* index */
aload 10 /* leftNeighbour */
invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
iconst_1
iadd
iadd
istore 1 /* index */
end local 11 // java.lang.Object nodeKey
end local 10 // java.lang.Object[] leftNeighbour
35: .line 115
goto 42
36: .line 118
StackMap locals:
StackMap stack:
aload 0 /* node */
iload 6 /* keyEnd */
iload 7 /* i */
iadd
iconst_1
iadd
aaload
checkcast java.lang.Object[]
astore 10 /* rightNeighbour */
start local 10 // java.lang.Object[] rightNeighbour
37: .line 119
aload 0 /* node */
iload 7 /* i */
aaload
astore 11 /* nodeKey */
start local 11 // java.lang.Object nodeKey
38: .line 120
iload 6 /* keyEnd */
iconst_1
if_icmpne 39
aconst_null
goto 40
StackMap locals: java.lang.Object[] java.lang.Object
StackMap stack:
39: aload 0 /* node */
iload 7 /* i */
iload 7 /* i */
iconst_0
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copyWithKeyAndChildRemoved:([Ljava/lang/Object;IIZ)[Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object[]
40: astore 0 /* node */
41: .line 121
aload 8 /* nextNode */
aload 10 /* rightNeighbour */
aload 11 /* nodeKey */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.merge:([Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
astore 8 /* nextNode */
end local 11 // java.lang.Object nodeKey
end local 10 // java.lang.Object[] rightNeighbour
42: .line 125
StackMap locals:
StackMap stack:
aload 0 /* node */
ifnull 54
43: .line 127
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
astore 10 /* sizeMap */
start local 10 // int[] sizeMap
44: .line 128
iload 7 /* i */
istore 11 /* j */
start local 11 // int j
45: goto 48
46: .line 129
StackMap locals: int[] int
StackMap stack:
aload 10 /* sizeMap */
iload 11 /* j */
dup2
iaload
iconst_1
isub
iastore
47: .line 128
iinc 11 /* j */ 1
StackMap locals:
StackMap stack:
48: iload 11 /* j */
aload 10 /* sizeMap */
arraylength
if_icmplt 46
end local 11 // int j
49: .line 130
aload 3 /* prevNode */
ifnull 51
50: .line 131
aload 3 /* prevNode */
iload 4 /* prevI */
aload 0 /* node */
aastore
goto 52
51: .line 133
StackMap locals:
StackMap stack:
aload 0 /* node */
astore 2 /* result */
52: .line 134
StackMap locals:
StackMap stack:
aload 0 /* node */
astore 3 /* prevNode */
53: .line 135
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
iload 7 /* i */
iadd
istore 4 /* prevI */
end local 10 // int[] sizeMap
54: .line 138
StackMap locals:
StackMap stack:
aload 8 /* nextNode */
astore 0 /* node */
55: .line 139
iload 9 /* nextNodeNeedsCopy */
istore 5 /* needsCopy */
end local 9 // boolean nextNodeNeedsCopy
end local 8 // java.lang.Object[] nextNode
end local 7 // int i
end local 6 // int keyEnd
56: .line 80
StackMap locals: java.lang.Object[] int java.lang.Object[] java.lang.Object[] int int
StackMap stack:
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
ifeq 5
57: .line 141
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getLeafKeyEnd:([Ljava/lang/Object;)I
istore 6 /* keyEnd */
start local 6 // int keyEnd
58: .line 142
iload 6 /* keyEnd */
iconst_1
iand
iconst_1
if_icmpne 59
iload 6 /* keyEnd */
goto 60
StackMap locals: int
StackMap stack:
59: iload 6 /* keyEnd */
iconst_1
isub
StackMap locals:
StackMap stack: int
60: anewarray java.lang.Object
astore 7 /* newLeaf */
start local 7 // java.lang.Object[] newLeaf
61: .line 143
aload 0 /* node */
aload 7 /* newLeaf */
iconst_0
iload 1 /* index */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copyKeys:([Ljava/lang/Object;[Ljava/lang/Object;II)I
pop
62: .line 144
aload 3 /* prevNode */
ifnull 64
63: .line 145
aload 3 /* prevNode */
iload 4 /* prevI */
aload 7 /* newLeaf */
aastore
goto 65
64: .line 147
StackMap locals: java.lang.Object[]
StackMap stack:
aload 7 /* newLeaf */
astore 2 /* result */
65: .line 148
StackMap locals:
StackMap stack:
aload 2 /* result */
areturn
end local 7 // java.lang.Object[] newLeaf
end local 6 // int keyEnd
end local 5 // boolean needsCopy
end local 4 // int prevI
end local 3 // java.lang.Object[] prevNode
end local 2 // java.lang.Object[] result
end local 1 // int index
end local 0 // java.lang.Object[] node
LocalVariableTable:
Start End Slot Name Signature
0 66 0 node [Ljava/lang/Object;
0 66 1 index I
1 66 2 result [Ljava/lang/Object;
2 66 3 prevNode [Ljava/lang/Object;
3 66 4 prevI I
4 66 5 needsCopy Z
6 56 6 keyEnd I
7 56 7 i I
10 56 8 nextNode [Ljava/lang/Object;
11 56 9 nextNodeNeedsCopy Z
16 20 10 leftNeighbour [Ljava/lang/Object;
28 35 10 leftNeighbour [Ljava/lang/Object;
29 35 11 nodeKey Ljava/lang/Object;
37 42 10 rightNeighbour [Ljava/lang/Object;
38 42 11 nodeKey Ljava/lang/Object;
44 54 10 sizeMap [I
45 49 11 j I
58 66 6 keyEnd I
61 66 7 newLeaf [Ljava/lang/Object;
MethodParameters:
Name Flags
node
index
private static java.lang.Object[] rotateRight(java.lang.Object[], int);
descriptor: ([Ljava/lang/Object;I)[Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=9, args_size=2
start local 0 // java.lang.Object[] node
start local 1 // int i
0: .line 153
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getBranchKeyEnd:([Ljava/lang/Object;)I
istore 2 /* keyEnd */
start local 2 // int keyEnd
1: .line 154
aload 0 /* node */
iload 2 /* keyEnd */
iload 1 /* i */
iadd
aaload
checkcast java.lang.Object[]
astore 3 /* nextNode */
start local 3 // java.lang.Object[] nextNode
2: .line 155
aload 0 /* node */
iload 2 /* keyEnd */
iload 1 /* i */
iadd
iconst_1
iadd
aaload
checkcast java.lang.Object[]
astore 4 /* rightNeighbour */
start local 4 // java.lang.Object[] rightNeighbour
3: .line 156
aload 3 /* nextNode */
invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
istore 5 /* leaves */
start local 5 // boolean leaves
4: .line 157
aload 3 /* nextNode */
invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
istore 6 /* nextKeyEnd */
start local 6 // int nextKeyEnd
5: .line 158
iload 5 /* leaves */
ifeq 6
aconst_null
goto 7
StackMap locals: java.lang.Object[] int int java.lang.Object[] java.lang.Object[] int int
StackMap stack:
6: aload 4 /* rightNeighbour */
aload 4 /* rightNeighbour */
invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
aaload
checkcast java.lang.Object[]
StackMap locals:
StackMap stack: java.lang.Object[]
7: astore 7 /* newChild */
start local 7 // java.lang.Object[] newChild
8: .line 160
aload 3 /* nextNode */
iload 6 /* nextKeyEnd */
aload 0 /* node */
iload 1 /* i */
aaload
aload 3 /* nextNode */
invokestatic org.apache.cassandra.utils.btree.BTree.getChildCount:([Ljava/lang/Object;)I
aload 7 /* newChild */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copyWithKeyAndChildInserted:([Ljava/lang/Object;ILjava/lang/Object;I[Ljava/lang/Object;)[Ljava/lang/Object;
9: .line 159
astore 8 /* newNextNode */
start local 8 // java.lang.Object[] newNextNode
10: .line 161
aload 0 /* node */
iload 1 /* i */
aload 4 /* rightNeighbour */
iconst_0
aaload
aastore
11: .line 162
aload 0 /* node */
iload 2 /* keyEnd */
iload 1 /* i */
iadd
iconst_1
iadd
aload 4 /* rightNeighbour */
iconst_0
iconst_0
iconst_1
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copyWithKeyAndChildRemoved:([Ljava/lang/Object;IIZ)[Ljava/lang/Object;
aastore
12: .line 163
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
iload 1 /* i */
dup2
iaload
13: .line 164
iload 5 /* leaves */
ifeq 14
iconst_1
goto 15
StackMap locals: java.lang.Object[] int int java.lang.Object[] java.lang.Object[] int int java.lang.Object[] java.lang.Object[]
StackMap stack: int[] int int
14: iconst_1
aload 8 /* newNextNode */
aload 8 /* newNextNode */
invokestatic org.apache.cassandra.utils.btree.BTree.getChildEnd:([Ljava/lang/Object;)I
iconst_1
isub
aaload
checkcast java.lang.Object[]
invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
iadd
15: .line 163
StackMap locals: java.lang.Object[] int int java.lang.Object[] java.lang.Object[] int int java.lang.Object[] java.lang.Object[]
StackMap stack: int[] int int int
iadd
iastore
16: .line 165
aload 8 /* newNextNode */
areturn
end local 8 // java.lang.Object[] newNextNode
end local 7 // java.lang.Object[] newChild
end local 6 // int nextKeyEnd
end local 5 // boolean leaves
end local 4 // java.lang.Object[] rightNeighbour
end local 3 // java.lang.Object[] nextNode
end local 2 // int keyEnd
end local 1 // int i
end local 0 // java.lang.Object[] node
LocalVariableTable:
Start End Slot Name Signature
0 17 0 node [Ljava/lang/Object;
0 17 1 i I
1 17 2 keyEnd I
2 17 3 nextNode [Ljava/lang/Object;
3 17 4 rightNeighbour [Ljava/lang/Object;
4 17 5 leaves Z
5 17 6 nextKeyEnd I
8 17 7 newChild [Ljava/lang/Object;
10 17 8 newNextNode [Ljava/lang/Object;
MethodParameters:
Name Flags
node final
i final
private static java.lang.Object[] rotateLeft(java.lang.Object[], int);
descriptor: ([Ljava/lang/Object;I)[Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=9, args_size=2
start local 0 // java.lang.Object[] node
start local 1 // int i
0: .line 170
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getBranchKeyEnd:([Ljava/lang/Object;)I
istore 2 /* keyEnd */
start local 2 // int keyEnd
1: .line 171
aload 0 /* node */
iload 2 /* keyEnd */
iload 1 /* i */
iadd
aaload
checkcast java.lang.Object[]
astore 3 /* nextNode */
start local 3 // java.lang.Object[] nextNode
2: .line 172
aload 0 /* node */
iload 2 /* keyEnd */
iload 1 /* i */
iadd
iconst_1
isub
aaload
checkcast java.lang.Object[]
astore 4 /* leftNeighbour */
start local 4 // java.lang.Object[] leftNeighbour
3: .line 173
aload 4 /* leftNeighbour */
invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
istore 5 /* leftNeighbourEndKey */
start local 5 // int leftNeighbourEndKey
4: .line 174
aload 3 /* nextNode */
invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
istore 6 /* leaves */
start local 6 // boolean leaves
5: .line 175
iload 6 /* leaves */
ifeq 6
aconst_null
goto 7
StackMap locals: java.lang.Object[] int int java.lang.Object[] java.lang.Object[] int int
StackMap stack:
6: aload 4 /* leftNeighbour */
aload 4 /* leftNeighbour */
invokestatic org.apache.cassandra.utils.btree.BTree.getChildEnd:([Ljava/lang/Object;)I
iconst_1
isub
aaload
checkcast java.lang.Object[]
StackMap locals:
StackMap stack: java.lang.Object[]
7: astore 7 /* newChild */
start local 7 // java.lang.Object[] newChild
8: .line 176
aload 3 /* nextNode */
iconst_0
aload 0 /* node */
iload 1 /* i */
iconst_1
isub
aaload
iconst_0
aload 7 /* newChild */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copyWithKeyAndChildInserted:([Ljava/lang/Object;ILjava/lang/Object;I[Ljava/lang/Object;)[Ljava/lang/Object;
astore 8 /* newNextNode */
start local 8 // java.lang.Object[] newNextNode
9: .line 177
aload 0 /* node */
iload 1 /* i */
iconst_1
isub
aload 4 /* leftNeighbour */
iload 5 /* leftNeighbourEndKey */
iconst_1
isub
aaload
aastore
10: .line 178
aload 0 /* node */
iload 2 /* keyEnd */
iload 1 /* i */
iadd
iconst_1
isub
aload 4 /* leftNeighbour */
iload 5 /* leftNeighbourEndKey */
iconst_1
isub
iload 5 /* leftNeighbourEndKey */
iconst_1
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copyWithKeyAndChildRemoved:([Ljava/lang/Object;IIZ)[Ljava/lang/Object;
aastore
11: .line 179
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
iload 1 /* i */
iconst_1
isub
dup2
iaload
iload 6 /* leaves */
ifeq 12
iconst_1
goto 13
StackMap locals: java.lang.Object[] int int java.lang.Object[] java.lang.Object[] int int java.lang.Object[] java.lang.Object[]
StackMap stack: int[] int int
12: iconst_1
aload 8 /* newNextNode */
invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
iconst_0
iaload
iadd
StackMap locals: java.lang.Object[] int int java.lang.Object[] java.lang.Object[] int int java.lang.Object[] java.lang.Object[]
StackMap stack: int[] int int int
13: isub
iastore
14: .line 180
aload 8 /* newNextNode */
areturn
end local 8 // java.lang.Object[] newNextNode
end local 7 // java.lang.Object[] newChild
end local 6 // boolean leaves
end local 5 // int leftNeighbourEndKey
end local 4 // java.lang.Object[] leftNeighbour
end local 3 // java.lang.Object[] nextNode
end local 2 // int keyEnd
end local 1 // int i
end local 0 // java.lang.Object[] node
LocalVariableTable:
Start End Slot Name Signature
0 15 0 node [Ljava/lang/Object;
0 15 1 i I
1 15 2 keyEnd I
2 15 3 nextNode [Ljava/lang/Object;
3 15 4 leftNeighbour [Ljava/lang/Object;
4 15 5 leftNeighbourEndKey I
5 15 6 leaves Z
8 15 7 newChild [Ljava/lang/Object;
9 15 8 newNextNode [Ljava/lang/Object;
MethodParameters:
Name Flags
node final
i final
private static <V> [] copyWithKeyAndChildInserted([], int, V, int, []);
descriptor: ([Ljava/lang/Object;ILjava/lang/Object;I[Ljava/lang/Object;)[Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=12, args_size=5
start local 0 // java.lang.Object[] node
start local 1 // int keyIndex
start local 2 // java.lang.Object key
start local 3 // int childIndex
start local 4 // java.lang.Object[] child
0: .line 185
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
istore 5 /* leaf */
start local 5 // boolean leaf
1: .line 186
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
istore 6 /* keyEnd */
start local 6 // int keyEnd
2: .line 188
iload 5 /* leaf */
ifeq 7
3: .line 189
iload 6 /* keyEnd */
iload 6 /* keyEnd */
iconst_1
iand
iconst_1
if_icmpne 4
iconst_2
goto 5
StackMap locals: java.lang.Object[] int java.lang.Object int java.lang.Object[] int int
StackMap stack: int
4: iconst_1
StackMap locals: java.lang.Object[] int java.lang.Object int java.lang.Object[] int int
StackMap stack: int int
5: iadd
anewarray java.lang.Object
astore 7 /* copy */
start local 7 // java.lang.Object[] copy
6: goto 8
end local 7 // java.lang.Object[] copy
7: .line 191
StackMap locals:
StackMap stack:
aload 0 /* node */
arraylength
iconst_2
iadd
anewarray java.lang.Object
astore 7 /* copy */
start local 7 // java.lang.Object[] copy
8: .line 193
StackMap locals: java.lang.Object[]
StackMap stack:
iload 1 /* keyIndex */
ifle 10
9: .line 194
aload 0 /* node */
iconst_0
aload 7 /* copy */
iconst_0
iload 1 /* keyIndex */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
10: .line 195
StackMap locals:
StackMap stack:
aload 7 /* copy */
iload 1 /* keyIndex */
aload 2 /* key */
aastore
11: .line 196
iload 1 /* keyIndex */
iload 6 /* keyEnd */
if_icmpge 13
12: .line 197
aload 0 /* node */
iload 1 /* keyIndex */
aload 7 /* copy */
iload 1 /* keyIndex */
iconst_1
iadd
iload 6 /* keyEnd */
iload 1 /* keyIndex */
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
13: .line 199
StackMap locals:
StackMap stack:
iload 5 /* leaf */
ifne 43
14: .line 201
iload 3 /* childIndex */
ifle 21
15: .line 202
aload 0 /* node */
16: .line 203
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
17: .line 204
aload 7 /* copy */
18: .line 205
iload 6 /* keyEnd */
iconst_1
iadd
19: .line 206
iload 3 /* childIndex */
20: .line 202
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
21: .line 207
StackMap locals:
StackMap stack:
aload 7 /* copy */
iload 6 /* keyEnd */
iconst_1
iadd
iload 3 /* childIndex */
iadd
aload 4 /* child */
aastore
22: .line 208
iload 3 /* childIndex */
iload 6 /* keyEnd */
if_icmpgt 29
23: .line 209
aload 0 /* node */
24: .line 210
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
iload 3 /* childIndex */
iadd
25: .line 211
aload 7 /* copy */
26: .line 212
iload 6 /* keyEnd */
iload 3 /* childIndex */
iadd
iconst_2
iadd
27: .line 213
iload 6 /* keyEnd */
iload 3 /* childIndex */
isub
iconst_1
iadd
28: .line 209
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
29: .line 214
StackMap locals:
StackMap stack:
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
astore 8 /* sizeMap */
start local 8 // int[] sizeMap
30: .line 215
aload 8 /* sizeMap */
arraylength
iconst_1
iadd
newarray 10
astore 9 /* newSizeMap */
start local 9 // int[] newSizeMap
31: .line 216
iload 3 /* childIndex */
ifle 33
32: .line 217
aload 8 /* sizeMap */
iconst_0
aload 9 /* newSizeMap */
iconst_0
iload 3 /* childIndex */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
33: .line 218
StackMap locals: int[] int[]
StackMap stack:
aload 4 /* child */
invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
istore 10 /* childSize */
start local 10 // int childSize
34: .line 219
aload 9 /* newSizeMap */
iload 3 /* childIndex */
iload 10 /* childSize */
iload 3 /* childIndex */
ifne 35
iconst_0
goto 36
StackMap locals: java.lang.Object[] int java.lang.Object int java.lang.Object[] int int java.lang.Object[] int[] int[] int
StackMap stack: int[] int int
35: aload 9 /* newSizeMap */
iload 3 /* childIndex */
iconst_1
isub
iaload
iconst_1
iadd
StackMap locals: java.lang.Object[] int java.lang.Object int java.lang.Object[] int int java.lang.Object[] int[] int[] int
StackMap stack: int[] int int int
36: iadd
iastore
37: .line 220
iload 3 /* childIndex */
iconst_1
iadd
istore 11 /* i */
start local 11 // int i
38: goto 41
39: .line 221
StackMap locals: int
StackMap stack:
aload 9 /* newSizeMap */
iload 11 /* i */
aload 8 /* sizeMap */
iload 11 /* i */
iconst_1
isub
iaload
iload 10 /* childSize */
iadd
iconst_1
iadd
iastore
40: .line 220
iinc 11 /* i */ 1
StackMap locals:
StackMap stack:
41: iload 11 /* i */
aload 9 /* newSizeMap */
arraylength
if_icmplt 39
end local 11 // int i
42: .line 222
aload 7 /* copy */
aload 7 /* copy */
arraylength
iconst_1
isub
aload 9 /* newSizeMap */
aastore
end local 10 // int childSize
end local 9 // int[] newSizeMap
end local 8 // int[] sizeMap
43: .line 224
StackMap locals: java.lang.Object[] int java.lang.Object int java.lang.Object[] int int java.lang.Object[]
StackMap stack:
aload 7 /* copy */
areturn
end local 7 // java.lang.Object[] copy
end local 6 // int keyEnd
end local 5 // boolean leaf
end local 4 // java.lang.Object[] child
end local 3 // int childIndex
end local 2 // java.lang.Object key
end local 1 // int keyIndex
end local 0 // java.lang.Object[] node
LocalVariableTable:
Start End Slot Name Signature
0 44 0 node [Ljava/lang/Object;
0 44 1 keyIndex I
0 44 2 key TV;
0 44 3 childIndex I
0 44 4 child [Ljava/lang/Object;
1 44 5 leaf Z
2 44 6 keyEnd I
6 7 7 copy [Ljava/lang/Object;
8 44 7 copy [Ljava/lang/Object;
30 43 8 sizeMap [I
31 43 9 newSizeMap [I
34 43 10 childSize I
38 42 11 i I
Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;ITV;I[Ljava/lang/Object;)[Ljava/lang/Object;
MethodParameters:
Name Flags
node final
keyIndex final
key final
childIndex final
child final
private static java.lang.Object[] copyWithKeyAndChildRemoved(java.lang.Object[], int, int, boolean);
descriptor: ([Ljava/lang/Object;IIZ)[Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=12, args_size=4
start local 0 // java.lang.Object[] node
start local 1 // int keyIndex
start local 2 // int childIndex
start local 3 // boolean substractSize
0: .line 229
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
istore 4 /* leaf */
start local 4 // boolean leaf
1: .line 231
iload 4 /* leaf */
ifeq 7
2: .line 233
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
istore 6 /* keyEnd */
start local 6 // int keyEnd
3: .line 234
iload 6 /* keyEnd */
iload 6 /* keyEnd */
iconst_1
iand
iconst_1
if_icmpne 4
iconst_0
goto 5
StackMap locals: java.lang.Object[] int int int int top int
StackMap stack: int
4: iconst_1
StackMap locals: java.lang.Object[] int int int int top int
StackMap stack: int int
5: isub
anewarray java.lang.Object
astore 5 /* newNode */
end local 6 // int keyEnd
start local 5 // java.lang.Object[] newNode
6: .line 235
goto 8
end local 5 // java.lang.Object[] newNode
7: .line 238
StackMap locals: java.lang.Object[] int int int int
StackMap stack:
aload 0 /* node */
arraylength
iconst_2
isub
anewarray java.lang.Object
astore 5 /* newNode */
start local 5 // java.lang.Object[] newNode
8: .line 240
StackMap locals: java.lang.Object[]
StackMap stack:
aload 0 /* node */
aload 5 /* newNode */
iconst_0
iload 1 /* keyIndex */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copyKeys:([Ljava/lang/Object;[Ljava/lang/Object;II)I
istore 6 /* offset */
start local 6 // int offset
9: .line 241
iload 4 /* leaf */
ifne 26
10: .line 243
aload 0 /* node */
aload 5 /* newNode */
iload 6 /* offset */
iload 2 /* childIndex */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copyChildren:([Ljava/lang/Object;[Ljava/lang/Object;II)I
istore 6 /* offset */
11: .line 244
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
astore 7 /* nodeSizeMap */
start local 7 // int[] nodeSizeMap
12: .line 245
aload 7 /* nodeSizeMap */
arraylength
iconst_1
isub
newarray 10
astore 8 /* newNodeSizeMap */
start local 8 // int[] newNodeSizeMap
13: .line 246
iconst_0
istore 9 /* pos */
start local 9 // int pos
14: .line 247
aload 0 /* node */
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
iload 2 /* childIndex */
iadd
aaload
checkcast java.lang.Object[]
invokestatic org.apache.cassandra.utils.btree.BTree.size:([Ljava/lang/Object;)I
iconst_1
iadd
istore 10 /* sizeToRemove */
start local 10 // int sizeToRemove
15: .line 248
iconst_0
istore 11 /* i */
start local 11 // int i
16: goto 24
17: .line 249
StackMap locals: java.lang.Object[] int int int int java.lang.Object[] int int[] int[] int int int
StackMap stack:
iload 11 /* i */
iload 2 /* childIndex */
if_icmpeq 23
18: .line 250
aload 8 /* newNodeSizeMap */
iload 9 /* pos */
iinc 9 /* pos */ 1
aload 7 /* nodeSizeMap */
iload 11 /* i */
iaload
19: .line 251
iload 3 /* substractSize */
ifeq 20
iload 11 /* i */
iload 2 /* childIndex */
if_icmple 20
iload 10 /* sizeToRemove */
goto 21
StackMap locals: java.lang.Object[] int int int int java.lang.Object[] int int[] int[] int int int
StackMap stack: int[] int int
20: iconst_0
StackMap locals: java.lang.Object[] int int int int java.lang.Object[] int int[] int[] int int int
StackMap stack: int[] int int int
21: isub
22: .line 250
iastore
23: .line 248
StackMap locals:
StackMap stack:
iinc 11 /* i */ 1
StackMap locals:
StackMap stack:
24: iload 11 /* i */
aload 7 /* nodeSizeMap */
arraylength
if_icmplt 17
end local 11 // int i
25: .line 252
aload 5 /* newNode */
iload 6 /* offset */
aload 8 /* newNodeSizeMap */
aastore
end local 10 // int sizeToRemove
end local 9 // int pos
end local 8 // int[] newNodeSizeMap
end local 7 // int[] nodeSizeMap
26: .line 254
StackMap locals: java.lang.Object[] int int int int java.lang.Object[] int
StackMap stack:
aload 5 /* newNode */
areturn
end local 6 // int offset
end local 5 // java.lang.Object[] newNode
end local 4 // boolean leaf
end local 3 // boolean substractSize
end local 2 // int childIndex
end local 1 // int keyIndex
end local 0 // java.lang.Object[] node
LocalVariableTable:
Start End Slot Name Signature
0 27 0 node [Ljava/lang/Object;
0 27 1 keyIndex I
0 27 2 childIndex I
0 27 3 substractSize Z
1 27 4 leaf Z
6 7 5 newNode [Ljava/lang/Object;
8 27 5 newNode [Ljava/lang/Object;
3 6 6 keyEnd I
9 27 6 offset I
12 26 7 nodeSizeMap [I
13 26 8 newNodeSizeMap [I
14 26 9 pos I
15 26 10 sizeToRemove I
16 25 11 i I
MethodParameters:
Name Flags
node final
keyIndex final
childIndex final
substractSize final
private static <V> [] merge([], [], V);
descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;Ljava/lang/Object;)[Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=9, args_size=3
start local 0 // java.lang.Object[] left
start local 1 // java.lang.Object[] right
start local 2 // java.lang.Object nodeKey
0: .line 259
getstatic org.apache.cassandra.utils.btree.BTreeRemoval.$assertionsDisabled:Z
ifne 1
aload 0 /* left */
invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
getstatic org.apache.cassandra.utils.btree.BTree.MINIMAL_NODE_SIZE:I
if_icmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: .line 260
StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.utils.btree.BTreeRemoval.$assertionsDisabled:Z
ifne 2
aload 1 /* right */
invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
getstatic org.apache.cassandra.utils.btree.BTree.MINIMAL_NODE_SIZE:I
if_icmpeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: .line 261
StackMap locals:
StackMap stack:
aload 0 /* left */
invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
istore 3 /* leaves */
start local 3 // boolean leaves
3: .line 263
iload 3 /* leaves */
ifeq 6
4: .line 264
getstatic org.apache.cassandra.utils.btree.BTree.MINIMAL_NODE_SIZE:I
iconst_2
imul
iconst_1
iadd
anewarray java.lang.Object
astore 4 /* result */
start local 4 // java.lang.Object[] result
5: goto 7
end local 4 // java.lang.Object[] result
6: .line 266
StackMap locals: int
StackMap stack:
aload 0 /* left */
arraylength
aload 1 /* right */
arraylength
iadd
anewarray java.lang.Object
astore 4 /* result */
start local 4 // java.lang.Object[] result
7: .line 267
StackMap locals: java.lang.Object[]
StackMap stack:
iconst_0
istore 5 /* offset */
start local 5 // int offset
8: .line 268
aload 0 /* left */
aload 4 /* result */
iload 5 /* offset */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copyKeys:([Ljava/lang/Object;[Ljava/lang/Object;I)I
istore 5 /* offset */
9: .line 269
aload 4 /* result */
iload 5 /* offset */
iinc 5 /* offset */ 1
aload 2 /* nodeKey */
aastore
10: .line 270
aload 1 /* right */
aload 4 /* result */
iload 5 /* offset */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copyKeys:([Ljava/lang/Object;[Ljava/lang/Object;I)I
istore 5 /* offset */
11: .line 271
iload 3 /* leaves */
ifne 21
12: .line 273
aload 0 /* left */
aload 4 /* result */
iload 5 /* offset */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copyChildren:([Ljava/lang/Object;[Ljava/lang/Object;I)I
istore 5 /* offset */
13: .line 274
aload 1 /* right */
aload 4 /* result */
iload 5 /* offset */
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copyChildren:([Ljava/lang/Object;[Ljava/lang/Object;I)I
istore 5 /* offset */
14: .line 275
aload 0 /* left */
invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
astore 6 /* leftSizeMap */
start local 6 // int[] leftSizeMap
15: .line 276
aload 1 /* right */
invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
astore 7 /* rightSizeMap */
start local 7 // int[] rightSizeMap
16: .line 277
aload 6 /* leftSizeMap */
arraylength
aload 7 /* rightSizeMap */
arraylength
iadd
newarray 10
astore 8 /* newSizeMap */
start local 8 // int[] newSizeMap
17: .line 278
iconst_0
istore 5 /* offset */
18: .line 279
aload 6 /* leftSizeMap */
aload 8 /* newSizeMap */
iload 5 /* offset */
iconst_0
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copySizeMap:([I[III)I
istore 5 /* offset */
19: .line 280
aload 7 /* rightSizeMap */
aload 8 /* newSizeMap */
iload 5 /* offset */
aload 6 /* leftSizeMap */
aload 6 /* leftSizeMap */
arraylength
iconst_1
isub
iaload
iconst_1
iadd
invokestatic org.apache.cassandra.utils.btree.BTreeRemoval.copySizeMap:([I[III)I
istore 5 /* offset */
20: .line 281
aload 4 /* result */
aload 4 /* result */
arraylength
iconst_1
isub
aload 8 /* newSizeMap */
aastore
end local 8 // int[] newSizeMap
end local 7 // int[] rightSizeMap
end local 6 // int[] leftSizeMap
21: .line 283
StackMap locals: int
StackMap stack:
aload 4 /* result */
areturn
end local 5 // int offset
end local 4 // java.lang.Object[] result
end local 3 // boolean leaves
end local 2 // java.lang.Object nodeKey
end local 1 // java.lang.Object[] right
end local 0 // java.lang.Object[] left
LocalVariableTable:
Start End Slot Name Signature
0 22 0 left [Ljava/lang/Object;
0 22 1 right [Ljava/lang/Object;
0 22 2 nodeKey TV;
3 22 3 leaves Z
5 6 4 result [Ljava/lang/Object;
7 22 4 result [Ljava/lang/Object;
8 22 5 offset I
15 21 6 leftSizeMap [I
16 21 7 rightSizeMap [I
17 21 8 newSizeMap [I
Signature: <V:Ljava/lang/Object;>([Ljava/lang/Object;[Ljava/lang/Object;TV;)[Ljava/lang/Object;
MethodParameters:
Name Flags
left final
right final
nodeKey final
private static int copyKeys(java.lang.Object[], java.lang.Object[], int);
descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 // java.lang.Object[] from
start local 1 // java.lang.Object[] to
start local 2 // int offset
0: .line 288
aload 0 /* from */
invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
istore 3 /* keysCount */
start local 3 // int keysCount
1: .line 289
aload 0 /* from */
iconst_0
aload 1 /* to */
iload 2 /* offset */
iload 3 /* keysCount */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
2: .line 290
iload 2 /* offset */
iload 3 /* keysCount */
iadd
ireturn
end local 3 // int keysCount
end local 2 // int offset
end local 1 // java.lang.Object[] to
end local 0 // java.lang.Object[] from
LocalVariableTable:
Start End Slot Name Signature
0 3 0 from [Ljava/lang/Object;
0 3 1 to [Ljava/lang/Object;
0 3 2 offset I
1 3 3 keysCount I
MethodParameters:
Name Flags
from final
to final
offset final
private static int copyKeys(java.lang.Object[], java.lang.Object[], int, int);
descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=5, args_size=4
start local 0 // java.lang.Object[] from
start local 1 // java.lang.Object[] to
start local 2 // int offset
start local 3 // int skipIndex
0: .line 295
aload 0 /* from */
invokestatic org.apache.cassandra.utils.btree.BTree.getKeyEnd:([Ljava/lang/Object;)I
istore 4 /* keysCount */
start local 4 // int keysCount
1: .line 296
iload 3 /* skipIndex */
ifle 3
2: .line 297
aload 0 /* from */
iconst_0
aload 1 /* to */
iload 2 /* offset */
iload 3 /* skipIndex */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: .line 298
StackMap locals: int
StackMap stack:
iload 3 /* skipIndex */
iconst_1
iadd
iload 4 /* keysCount */
if_icmpge 5
4: .line 299
aload 0 /* from */
iload 3 /* skipIndex */
iconst_1
iadd
aload 1 /* to */
iload 2 /* offset */
iload 3 /* skipIndex */
iadd
iload 4 /* keysCount */
iload 3 /* skipIndex */
isub
iconst_1
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: .line 300
StackMap locals:
StackMap stack:
iload 2 /* offset */
iload 4 /* keysCount */
iadd
iconst_1
isub
ireturn
end local 4 // int keysCount
end local 3 // int skipIndex
end local 2 // int offset
end local 1 // java.lang.Object[] to
end local 0 // java.lang.Object[] from
LocalVariableTable:
Start End Slot Name Signature
0 6 0 from [Ljava/lang/Object;
0 6 1 to [Ljava/lang/Object;
0 6 2 offset I
0 6 3 skipIndex I
1 6 4 keysCount I
MethodParameters:
Name Flags
from final
to final
offset final
skipIndex final
private static int copyChildren(java.lang.Object[], java.lang.Object[], int);
descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=3
start local 0 // java.lang.Object[] from
start local 1 // java.lang.Object[] to
start local 2 // int offset
0: .line 305
getstatic org.apache.cassandra.utils.btree.BTreeRemoval.$assertionsDisabled:Z
ifne 1
aload 0 /* from */
invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: .line 306
StackMap locals:
StackMap stack:
aload 0 /* from */
invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
istore 3 /* start */
start local 3 // int start
2: .line 307
aload 0 /* from */
invokestatic org.apache.cassandra.utils.btree.BTree.getChildCount:([Ljava/lang/Object;)I
istore 4 /* childCount */
start local 4 // int childCount
3: .line 308
aload 0 /* from */
iload 3 /* start */
aload 1 /* to */
iload 2 /* offset */
iload 4 /* childCount */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: .line 309
iload 2 /* offset */
iload 4 /* childCount */
iadd
ireturn
end local 4 // int childCount
end local 3 // int start
end local 2 // int offset
end local 1 // java.lang.Object[] to
end local 0 // java.lang.Object[] from
LocalVariableTable:
Start End Slot Name Signature
0 5 0 from [Ljava/lang/Object;
0 5 1 to [Ljava/lang/Object;
0 5 2 offset I
2 5 3 start I
3 5 4 childCount I
MethodParameters:
Name Flags
from final
to final
offset final
private static int copyChildren(java.lang.Object[], java.lang.Object[], int, int);
descriptor: ([Ljava/lang/Object;[Ljava/lang/Object;II)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=6, args_size=4
start local 0 // java.lang.Object[] from
start local 1 // java.lang.Object[] to
start local 2 // int offset
start local 3 // int skipIndex
0: .line 314
getstatic org.apache.cassandra.utils.btree.BTreeRemoval.$assertionsDisabled:Z
ifne 1
aload 0 /* from */
invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: .line 315
StackMap locals:
StackMap stack:
aload 0 /* from */
invokestatic org.apache.cassandra.utils.btree.BTree.getChildStart:([Ljava/lang/Object;)I
istore 4 /* start */
start local 4 // int start
2: .line 316
aload 0 /* from */
invokestatic org.apache.cassandra.utils.btree.BTree.getChildCount:([Ljava/lang/Object;)I
istore 5 /* childCount */
start local 5 // int childCount
3: .line 317
iload 3 /* skipIndex */
ifle 5
4: .line 318
aload 0 /* from */
iload 4 /* start */
aload 1 /* to */
iload 2 /* offset */
iload 3 /* skipIndex */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
5: .line 319
StackMap locals: int int
StackMap stack:
iload 3 /* skipIndex */
iconst_1
iadd
iload 5 /* childCount */
if_icmpgt 7
6: .line 320
aload 0 /* from */
iload 4 /* start */
iload 3 /* skipIndex */
iadd
iconst_1
iadd
aload 1 /* to */
iload 2 /* offset */
iload 3 /* skipIndex */
iadd
iload 5 /* childCount */
iload 3 /* skipIndex */
isub
iconst_1
isub
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
7: .line 321
StackMap locals:
StackMap stack:
iload 2 /* offset */
iload 5 /* childCount */
iadd
iconst_1
isub
ireturn
end local 5 // int childCount
end local 4 // int start
end local 3 // int skipIndex
end local 2 // int offset
end local 1 // java.lang.Object[] to
end local 0 // java.lang.Object[] from
LocalVariableTable:
Start End Slot Name Signature
0 8 0 from [Ljava/lang/Object;
0 8 1 to [Ljava/lang/Object;
0 8 2 offset I
0 8 3 skipIndex I
2 8 4 start I
3 8 5 childCount I
MethodParameters:
Name Flags
from final
to final
offset final
skipIndex final
private static int copySizeMap(int[], int[], int, int);
descriptor: ([I[III)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=4
start local 0 // int[] from
start local 1 // int[] to
start local 2 // int offset
start local 3 // int extra
0: .line 326
iconst_0
istore 4 /* i */
start local 4 // int i
1: goto 4
2: .line 327
StackMap locals: int
StackMap stack:
aload 1 /* to */
iload 2 /* offset */
iload 4 /* i */
iadd
aload 0 /* from */
iload 4 /* i */
iaload
iload 3 /* extra */
iadd
iastore
3: .line 326
iinc 4 /* i */ 1
StackMap locals:
StackMap stack:
4: iload 4 /* i */
aload 0 /* from */
arraylength
if_icmplt 2
end local 4 // int i
5: .line 328
iload 2 /* offset */
aload 0 /* from */
arraylength
iadd
ireturn
end local 3 // int extra
end local 2 // int offset
end local 1 // int[] to
end local 0 // int[] from
LocalVariableTable:
Start End Slot Name Signature
0 6 0 from [I
0 6 1 to [I
0 6 2 offset I
0 6 3 extra I
1 5 4 i I
MethodParameters:
Name Flags
from final
to final
offset final
extra final
private static java.lang.Object[] copyIfNeeded(java.lang.Object[], boolean);
descriptor: ([Ljava/lang/Object;Z)[Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=2
start local 0 // java.lang.Object[] node
start local 1 // boolean needCopy
0: .line 333
iload 1 /* needCopy */
ifne 1
aload 0 /* node */
areturn
1: .line 334
StackMap locals:
StackMap stack:
aload 0 /* node */
arraylength
anewarray java.lang.Object
astore 2 /* copy */
start local 2 // java.lang.Object[] copy
2: .line 335
aload 0 /* node */
iconst_0
aload 2 /* copy */
iconst_0
aload 0 /* node */
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
3: .line 336
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.isLeaf:([Ljava/lang/Object;)Z
ifne 8
4: .line 338
aload 0 /* node */
invokestatic org.apache.cassandra.utils.btree.BTree.getSizeMap:([Ljava/lang/Object;)[I
astore 3 /* sizeMap */
start local 3 // int[] sizeMap
5: .line 339
aload 3 /* sizeMap */
arraylength
newarray 10
astore 4 /* copySizeMap */
start local 4 // int[] copySizeMap
6: .line 340
aload 3 /* sizeMap */
iconst_0
aload 4 /* copySizeMap */
iconst_0
aload 3 /* sizeMap */
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
7: .line 341
aload 2 /* copy */
aload 2 /* copy */
arraylength
iconst_1
isub
aload 4 /* copySizeMap */
aastore
end local 4 // int[] copySizeMap
end local 3 // int[] sizeMap
8: .line 343
StackMap locals: java.lang.Object[]
StackMap stack:
aload 2 /* copy */
areturn
end local 2 // java.lang.Object[] copy
end local 1 // boolean needCopy
end local 0 // java.lang.Object[] node
LocalVariableTable:
Start End Slot Name Signature
0 9 0 node [Ljava/lang/Object;
0 9 1 needCopy Z
2 9 2 copy [Ljava/lang/Object;
5 8 3 sizeMap [I
6 8 4 copySizeMap [I
MethodParameters:
Name Flags
node final
needCopy
}
SourceFile: "BTreeRemoval.java"