From 47b3ea9cec9516912eaa08de8927aa2262184a2e Mon Sep 17 00:00:00 2001
From: librelois <elois@ifee.fr>
Date: Sun, 8 Sep 2019 14:55:07 +0200
Subject: [PATCH] [fix] fork tree: remove orphan sheets

---
 .../bc-db-reader/src/entities/fork_tree.rs            | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/lib/modules-lib/bc-db-reader/src/entities/fork_tree.rs b/lib/modules-lib/bc-db-reader/src/entities/fork_tree.rs
index ba2bd95c..3764e3c9 100644
--- a/lib/modules-lib/bc-db-reader/src/entities/fork_tree.rs
+++ b/lib/modules-lib/bc-db-reader/src/entities/fork_tree.rs
@@ -452,6 +452,17 @@ impl ForkTree {
         self.nodes[root_node_id.0] = None;
         self.sheets.remove(&root_node_id);
         self.root = Some(root_node_main_child_id);
+
+        // Remove orphan sheets
+        for (tree_node_id, _) in self.get_sheets() {
+            if let Some(node_opt) = self.nodes.get(tree_node_id.0) {
+                if node_opt.is_none() {
+                    self.sheets.remove(&tree_node_id);
+                }
+            } else {
+                self.sheets.remove(&tree_node_id);
+            }
+        }
     }
 
     /// Return removed blockstamps
-- 
GitLab