Fix possibility of infinite loop in selections_with_autoclose_regions (#3138)

Previously, that method could loop forever if the editor's autoclose
regions had unexpected selection ids.

Something must have changed recently that allowed this invariant to be
violated, but regardless, this code should not have relied on that
invariant to terminate like this.
This commit is contained in:
Max Brunsfeld 2023-10-18 11:34:35 -07:00 committed by GitHub
commit 199740902a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -3286,8 +3286,10 @@ impl Editor {
i = 0;
} else if pair_state.range.start.to_offset(buffer) > range.end {
break;
} else if pair_state.selection_id == selection.id {
enclosing = Some(pair_state);
} else {
if pair_state.selection_id == selection.id {
enclosing = Some(pair_state);
}
i += 1;
}
}