text: Replace some more release panics with graceful fallbacks (#44542)
Fixes ZED-3P7 Release Notes: - N/A *or* Added/Fixed/Improved ...
This commit is contained in:
+11
-2
@@ -39,6 +39,7 @@ pub use subscription::*;
|
|||||||
pub use sum_tree::Bias;
|
pub use sum_tree::Bias;
|
||||||
use sum_tree::{Dimensions, FilterCursor, SumTree, TreeMap, TreeSet};
|
use sum_tree::{Dimensions, FilterCursor, SumTree, TreeMap, TreeSet};
|
||||||
use undo_map::UndoMap;
|
use undo_map::UndoMap;
|
||||||
|
use util::debug_panic;
|
||||||
|
|
||||||
#[cfg(any(test, feature = "test-support"))]
|
#[cfg(any(test, feature = "test-support"))]
|
||||||
use util::RandomCharIter;
|
use util::RandomCharIter;
|
||||||
@@ -2439,7 +2440,7 @@ impl BufferSnapshot {
|
|||||||
if bias == Bias::Left && offset == 0 {
|
if bias == Bias::Left && offset == 0 {
|
||||||
Anchor::min_for_buffer(self.remote_id)
|
Anchor::min_for_buffer(self.remote_id)
|
||||||
} else if bias == Bias::Right
|
} else if bias == Bias::Right
|
||||||
&& ((cfg!(debug_assertions) && offset >= self.len()) || offset == self.len())
|
&& ((!cfg!(debug_assertions) && offset >= self.len()) || offset == self.len())
|
||||||
{
|
{
|
||||||
Anchor::max_for_buffer(self.remote_id)
|
Anchor::max_for_buffer(self.remote_id)
|
||||||
} else {
|
} else {
|
||||||
@@ -2453,7 +2454,15 @@ impl BufferSnapshot {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
let (start, _, item) = self.fragments.find::<usize, _>(&None, &offset, bias);
|
let (start, _, item) = self.fragments.find::<usize, _>(&None, &offset, bias);
|
||||||
let fragment = item.unwrap();
|
let Some(fragment) = item else {
|
||||||
|
// We got a bad offset, likely out of bounds
|
||||||
|
debug_panic!(
|
||||||
|
"Failed to find fragment at offset {} (len: {})",
|
||||||
|
offset,
|
||||||
|
self.len()
|
||||||
|
);
|
||||||
|
return Anchor::max_for_buffer(self.remote_id);
|
||||||
|
};
|
||||||
let overshoot = offset - start;
|
let overshoot = offset - start;
|
||||||
Anchor {
|
Anchor {
|
||||||
timestamp: fragment.timestamp,
|
timestamp: fragment.timestamp,
|
||||||
|
|||||||
Reference in New Issue
Block a user