fix panics (cherry-pick #13554) (#13557)
gcp-cherry-pick-bot[bot]
and
Conrad Irwin
created 2 years ago
Cherry-picked fix panics (#13554)
Release Notes:
- Fixed a panic when editing HTML near the end of a file
- Fixed a panic when editing settings.json from inside the .zed
directory
Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
Change summary
crates/editor/src/editor.rs | 3 +++
crates/project/src/project.rs | 6 +++---
2 files changed, 6 insertions(+), 3 deletions(-)
Detailed changes
@@ -2849,6 +2849,9 @@ impl Editor {
let start_offset = TO::to_offset(&range.start, &buffer_snapshot);
let end_offset = start_offset + end_difference;
let start_offset = start_offset + start_difference;
+ if start_offset > buffer_snapshot.len() || end_offset > buffer_snapshot.len() {
+ continue;
+ }
let start = buffer_snapshot.anchor_after(start_offset);
let end = buffer_snapshot.anchor_after(end_offset);
linked_edits
@@ -8193,7 +8193,7 @@ impl Project {
}
};
- if abs_path.ends_with(local_settings_file_relative_path()) {
+ if path.ends_with(local_settings_file_relative_path()) {
let settings_dir = Arc::from(
path.ancestors()
.nth(local_settings_file_relative_path().components().count())
@@ -8210,7 +8210,7 @@ impl Project {
},
)
});
- } else if abs_path.ends_with(local_tasks_file_relative_path()) {
+ } else if path.ends_with(local_tasks_file_relative_path()) {
self.task_inventory().update(cx, |task_inventory, cx| {
if removed {
task_inventory.remove_local_static_source(&abs_path);
@@ -8230,7 +8230,7 @@ impl Project {
);
}
})
- } else if abs_path.ends_with(local_vscode_tasks_file_relative_path()) {
+ } else if path.ends_with(local_vscode_tasks_file_relative_path()) {
self.task_inventory().update(cx, |task_inventory, cx| {
if removed {
task_inventory.remove_local_static_source(&abs_path);