From d089d3e863e95caf83343adbbca476f5359412af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6ran=20Karl?= <3951388+JoeKar@users.noreply.github.com> Date: Mon, 29 Jun 2026 18:18:26 +0200 Subject: [PATCH] buffer: Ignore already invalidated buffers in `Shared()` `CloseOpenBuffers()` iterates over every open buffer and invalidates them, while they are kept in the list. A further de-reference of such a buffer leads to a nil access. --- internal/buffer/buffer.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/buffer/buffer.go b/internal/buffer/buffer.go index d1f8db4b2b..fcf2ddfb30 100644 --- a/internal/buffer/buffer.go +++ b/internal/buffer/buffer.go @@ -689,6 +689,9 @@ func (b *Buffer) WordAt(loc Loc) []byte { // Shared returns if there are other buffers with the same file as this buffer func (b *Buffer) Shared() bool { for _, buf := range OpenBuffers { + if buf == nil { + continue + } if buf != b && buf.SharedBuffer == b.SharedBuffer { return true }