Validate buffer_id of anchors in is_valid (#11170)

Release Notes:

- Fixes diagnostic panic better (follow up from #11066)
This commit is contained in:
Conrad Irwin 2024-04-29 10:24:04 -06:00 committed by GitHub
parent 95118c6568
commit 5674ba2a49
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -97,6 +97,8 @@ impl Anchor {
pub fn is_valid(&self, buffer: &BufferSnapshot) -> bool {
if *self == Anchor::MIN || *self == Anchor::MAX {
true
} else if self.buffer_id != Some(buffer.remote_id) {
false
} else {
let fragment_id = buffer.fragment_id_for_anchor(self);
let mut fragment_cursor = buffer.fragments.cursor::<(Option<&Locator>, usize)>();