From 46d67a33c79bf125831810630f31a152f7f86a96 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Mon, 24 Mar 2025 16:12:26 -0600 Subject: [PATCH] Don't assume that the excerpt can be found (#27395) Release Notes: - Fix (rare) panic in the project diff view --- crates/multi_buffer/src/multi_buffer.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crates/multi_buffer/src/multi_buffer.rs b/crates/multi_buffer/src/multi_buffer.rs index aad3c28eff..18d1a0b7db 100644 --- a/crates/multi_buffer/src/multi_buffer.rs +++ b/crates/multi_buffer/src/multi_buffer.rs @@ -1645,7 +1645,11 @@ impl MultiBuffer { }; let locator = snapshot.excerpt_locator_for_id(*existing); excerpts_cursor.seek_forward(&Some(locator), Bias::Left, &()); - let existing_excerpt = excerpts_cursor.item().unwrap(); + let Some(existing_excerpt) = excerpts_cursor.item() else { + to_remove.push(existing_iter.next().unwrap()); + to_insert.push(new_iter.next().unwrap()); + continue; + }; if existing_excerpt.buffer_id != buffer_snapshot.remote_id() { to_remove.push(existing_iter.next().unwrap()); to_insert.push(new_iter.next().unwrap());