@@ -180,19 +180,10 @@ internal class TrieNode<E>(
180
180
}
181
181
182
182
183
- private fun removeCellAtIndex (cellIndex : Int , positionMask : Int ): TrieNode <E > {
183
+ private fun removeCellAtIndex (cellIndex : Int , positionMask : Int , owner : MutabilityOwnership ? ): TrieNode <E > {
184
184
// assert(!hasNoCellAt(positionMask))
185
185
// assert(buffer.size > 1) can be false only for the root node
186
186
187
- val newBitmap = bitmap xor positionMask
188
- val newBuffer = buffer.removeCellAtIndex(cellIndex)
189
- return setProperties(newBitmap, newBuffer, owner = null )
190
- }
191
-
192
- private fun mutableRemoveCellAtIndex (cellIndex : Int , positionMask : Int , owner : MutabilityOwnership ): TrieNode <E > {
193
- // assert(!hasNoCellAt(positionMask))
194
- // assert(buffer.size > 1)
195
-
196
187
val newBitmap = bitmap xor positionMask
197
188
val newBuffer = buffer.removeCellAtIndex(cellIndex)
198
189
return setProperties(newBitmap, newBuffer, owner)
@@ -763,7 +754,7 @@ internal class TrieNode<E>(
763
754
}
764
755
// element is directly in buffer
765
756
if (element == buffer[cellIndex]) {
766
- return removeCellAtIndex(cellIndex, cellPositionMask)
757
+ return removeCellAtIndex(cellIndex, cellPositionMask, owner = null )
767
758
}
768
759
return this
769
760
}
@@ -793,7 +784,7 @@ internal class TrieNode<E>(
793
784
// element is directly in buffer
794
785
if (element == buffer[cellIndex]) {
795
786
mutator.size--
796
- return mutableRemoveCellAtIndex (cellIndex, cellPositionMask, mutator.ownership) // check is empty
787
+ return removeCellAtIndex (cellIndex, cellPositionMask, mutator.ownership) // check is empty
797
788
}
798
789
return this
799
790
}
0 commit comments