diff --git a/packages/core/src/scopes.rs b/packages/core/src/scopes.rs index 725c26cf9..275f93c96 100644 --- a/packages/core/src/scopes.rs +++ b/packages/core/src/scopes.rs @@ -73,6 +73,15 @@ pub(crate) struct ScopeSlab { entries: Slab>, } +impl Drop for ScopeSlab { + fn drop(&mut self) { + // Bump slab doesn't drop its contents, so we need to do it manually + for slot in self.entries.drain() { + self.slab.remove(slot); + } + } +} + impl Default for ScopeSlab { fn default() -> Self { Self {