From 44759d4812c25b69f0bd979d8e4d0cc636f1560f Mon Sep 17 00:00:00 2001 From: Jonathan Johnson Date: Thu, 21 Mar 2024 11:26:34 -0700 Subject: [PATCH] Fix when replacing an overlay When an overlay handle dropped directly after pushing a new overlay, it was possible for new overlays to be popped off improperly, causing a subtraction overflow panic later. --- src/widgets/layers.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/widgets/layers.rs b/src/widgets/layers.rs index 395e606..684b937 100644 --- a/src/widgets/layers.rs +++ b/src/widgets/layers.rs @@ -721,8 +721,8 @@ impl Drop for OverlayHandle { return; }; - while state.overlays.len() > index { - let _removed = state.overlays.pop(); + while state.overlays.len() - state.new_overlays > index { + let _removed = state.overlays.remove_by_index(index); } } }