From b4c2f29c8bf6fa399a7788b01199ee518ebc8caf Mon Sep 17 00:00:00 2001 From: Michael Sloan Date: Mon, 18 Nov 2024 14:30:38 -0800 Subject: [PATCH] Remove use of current `File` for new buffers that never have `File` (#20832) `create_buffer` calls `Buffer::local` which sets `file` to `None` [here](https://github.com/zed-industries/zed/blob/f12981db32f9b936cd29e39ccc7f8a0b4e54cee1/crates/language/src/buffer.rs#L629). So there's no point in then immediately attempting to update maps that rely on `file` being present. Release Notes: - N/A --- crates/project/src/buffer_store.rs | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/crates/project/src/buffer_store.rs b/crates/project/src/buffer_store.rs index 634d87dca2..eb56680fb3 100644 --- a/crates/project/src/buffer_store.rs +++ b/crates/project/src/buffer_store.rs @@ -902,30 +902,12 @@ impl BufferStoreImpl for Model { } fn create_buffer(&self, cx: &mut ModelContext) -> Task>> { - let handle = self.clone(); cx.spawn(|buffer_store, mut cx| async move { let buffer = cx.new_model(|cx| { Buffer::local("", cx).with_language(language::PLAIN_TEXT.clone(), cx) })?; buffer_store.update(&mut cx, |buffer_store, cx| { buffer_store.add_buffer(buffer.clone(), cx).log_err(); - let buffer_id = buffer.read(cx).remote_id(); - handle.update(cx, |this, cx| { - if let Some(file) = File::from_dyn(buffer.read(cx).file()) { - this.local_buffer_ids_by_path.insert( - ProjectPath { - worktree_id: file.worktree_id(cx), - path: file.path.clone(), - }, - buffer_id, - ); - - if let Some(entry_id) = file.entry_id { - this.local_buffer_ids_by_entry_id - .insert(entry_id, buffer_id); - } - } - }); })?; Ok(buffer) })