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 Joseph T. Lyons
parent 58dcb52336
commit c6466c1cce

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;
}
}