diff --git a/zed/src/editor/buffer.rs b/zed/src/editor/buffer.rs index 99b55f98253c665ccd563aedbd130a16dfed3990..4baeabe7cd94953bc003ae818fca502c66589c3d 100644 --- a/zed/src/editor/buffer.rs +++ b/zed/src/editor/buffer.rs @@ -1339,7 +1339,7 @@ impl Buffer { #[cfg(not(test))] pub fn send_operation(&mut self, operation: Operation, cx: &mut ModelContext) { if let Some(file) = &self.file { - file.buffer_updated(cx.handle(), operation, cx.as_mut()); + file.buffer_updated(self.remote_id, operation, cx.as_mut()); } } diff --git a/zed/src/worktree.rs b/zed/src/worktree.rs index 1e6265e9c701119c64bd2f2258bd35d98ab66082..5236de19d0c6e16db1c88936019250bb1d377e96 100644 --- a/zed/src/worktree.rs +++ b/zed/src/worktree.rs @@ -933,13 +933,7 @@ impl File { }) } - pub fn buffer_updated( - &self, - buffer: ModelHandle, - operation: Operation, - cx: &mut MutableAppContext, - ) { - let buffer_id = buffer.read(cx).remote_id(); + pub fn buffer_updated(&self, buffer_id: u64, operation: Operation, cx: &mut MutableAppContext) { self.worktree.update(cx, |worktree, cx| { if let Some((rpc, remote_id)) = match worktree { Worktree::Local(worktree) => worktree.rpc.clone(), @@ -1883,6 +1877,11 @@ mod remote { }) { log::error!("error applying buffer operations {}", error); } + } else { + log::error!( + "invalid buffer {} in update buffer message", + message.buffer_id + ); } Ok(()) }