From aeba20f7a1e1315badec4eca4fdc9f754f5f880a Mon Sep 17 00:00:00 2001 From: zhangchuanqing1 Date: Thu, 6 Jun 2024 10:37:07 +0800 Subject: [PATCH] fix: remove item may changed clone btree; (i+1) children has new cow, but do not copy Signed-off-by: zhangchuanqing1 --- btree.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/btree.go b/btree.go index 969b910..6f5184f 100644 --- a/btree.go +++ b/btree.go @@ -479,7 +479,7 @@ func (n *node) growChildAndRemove(i int, item Item, minItems int, typ toRemove) child := n.mutableChild(i) // merge with right child mergeItem := n.items.removeAt(i) - mergeChild := n.children.removeAt(i + 1) + mergeChild := n.children.removeAt(i + 1).mutableFor(n.cow) child.items = append(child.items, mergeItem) child.items = append(child.items, mergeChild.items...) child.children = append(child.children, mergeChild.children...)