From: Ian Jackson Date: Thu, 11 Mar 2021 11:28:40 +0000 (+0000) Subject: occult ilks: Fix dispose (!) X-Git-Tag: otter-0.4.0~187 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=5d23cef71f39c781822dd7d5bae55af19b664665;p=otter.git occult ilks: Fix dispose (!) Signed-off-by: Ian Jackson --- diff --git a/src/occultilks.rs b/src/occultilks.rs index 81d912b8..02c77023 100644 --- a/src/occultilks.rs +++ b/src/occultilks.rs @@ -64,8 +64,12 @@ impl OccultIlks { pub fn dispose(&mut self, id: OId) { let id: Id = id.0; - let data = self.table.remove(id).unwrap(); - self.lookup.remove(&data.k); + let data = &mut self.table[id]; + let newrefcount = data.refcount.checked_sub(1).unwrap(); + if newrefcount == 0 { + let data = self.table.remove(id).unwrap(); + self.lookup.remove(&data.k); + } } }