From 1d6f6eb908c5b6d26e56888225a5712a243e07c4 Mon Sep 17 00:00:00 2001 From: Mark Date: Fri, 24 Jul 2026 14:56:18 +0300 Subject: [PATCH] fix(surface): handle nil WritePixels receiver --- headless_surface_native_test.go | 7 +++++++ surface_native.go | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/headless_surface_native_test.go b/headless_surface_native_test.go index 297e6e7..1fcff96 100644 --- a/headless_surface_native_test.go +++ b/headless_surface_native_test.go @@ -363,3 +363,10 @@ func TestHeadlessSurfaceReadPixelsStateErrors(t *testing.T) { } }) } + +func TestSurfaceWritePixelsNil(t *testing.T) { + var surface *Surface + if err := surface.WritePixels(nil, 0, 0); !errors.Is(err, ErrReleased) { + t.Fatalf("WritePixels error = %v, want ErrReleased", err) + } +} diff --git a/surface_native.go b/surface_native.go index 8c877a4..a251b24 100644 --- a/surface_native.go +++ b/surface_native.go @@ -409,7 +409,7 @@ func (s *Surface) PresentPixels(data []byte, width, height uint32, damageRects [ // Call between GetCurrentTexture() and Present(). No render pass needed. // Returns ErrReleased if the surface is not configured. func (s *Surface) WritePixels(data []byte, width, height uint32) error { - if s.released || s.core == nil { + if s == nil || s.released || s.core == nil { return ErrReleased } raw := s.core.RawSurface()