attaswift / BTree

Fast sorted collections for Swift using in-memory B-trees

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

BTree concatenation, set operations sometimes corrupt their input trees

lorentey opened this issue · comments

In some cases, appending the same tree multiple times to a BTreeBuilder may corrupt the original (read-only) tree.

I am unable to reproduce this with constructs from 3.1.0, but it is reasonably easy to do it with the new bag operations on master.

This was due to a missing makeChildUnique() call in BTreeNode.shiftSlots. Whew.