From 1085926f8d83a2f94a86841c8530915a0ba55a0e Mon Sep 17 00:00:00 2001 From: Liang Ding Date: Mon, 9 Jan 2023 20:28:11 +0800 Subject: [PATCH] =?UTF-8?q?:art:=20=E8=87=AA=E5=8A=A8=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E7=B4=A2=E5=BC=95=20https://github.?= =?UTF-8?q?com/siyuan-note/siyuan/issues/7016?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel/model/transaction.go | 2 +- kernel/treenode/blocktree.go | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/kernel/model/transaction.go b/kernel/model/transaction.go index f30a69786..066d71864 100644 --- a/kernel/model/transaction.go +++ b/kernel/model/transaction.go @@ -1258,7 +1258,7 @@ func autoFixIndex() { redundantPaths := treenode.GetRedundantPaths(box.ID, paths) for _, p := range redundantPaths { - treenode.RemoveBlockTreesByPathPrefix(p) + treenode.RemoveBlockTreesByPath(p) } missingPaths := treenode.GetNotExistPaths(box.ID, paths) diff --git a/kernel/treenode/blocktree.go b/kernel/treenode/blocktree.go index c1afce2ac..508f34d22 100644 --- a/kernel/treenode/blocktree.go +++ b/kernel/treenode/blocktree.go @@ -224,6 +224,23 @@ func RemoveBlockTreesByRootID(rootID string) { blockTreesChanged = true } +func RemoveBlockTreesByPath(path string) { + blockTreesLock.Lock() + defer blockTreesLock.Unlock() + + var ids []string + for _, b := range blockTrees { + if b.Path == path { + ids = append(ids, b.ID) + } + } + ids = gulu.Str.RemoveDuplicatedElem(ids) + for _, id := range ids { + delete(blockTrees, id) + } + blockTreesChanged = true +} + func RemoveBlockTreesByPathPrefix(pathPrefix string) { blockTreesLock.Lock() defer blockTreesLock.Unlock()