From 40ac657f74b417642af776923cec4e1684651813 Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Sat, 18 Apr 2026 12:01:51 +0200 Subject: [PATCH] =?UTF-8?q?surface:=20hallazgo=208=20=E2=80=94=20elimina?= =?UTF-8?q?=20setSurfaceData=20muerto=20y=20documenta=20shared=5Fptr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit setSurfaceData() no tenía callers. El shared_ptr se queda porque render() puede aliasar el SurfaceData propio con el del renderer surface (self-blit). Migrar a unique_ptr requeriría tocar Screen y dissolve_sprite sin simplificación real. Co-Authored-By: Claude Opus 4.7 (1M context) --- source/core/rendering/surface.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/core/rendering/surface.hpp b/source/core/rendering/surface.hpp index 02a20e5..91f80c6 100644 --- a/source/core/rendering/surface.hpp +++ b/source/core/rendering/surface.hpp @@ -56,6 +56,9 @@ struct SurfaceData { class Surface { private: + // shared_ptr porque render() accede al SurfaceData propio y al del renderer + // surface (ver getRendererSurface()) de forma efímera; con self-blit ambos + // pueden alias y el refcount evita free accidental durante el recorrido. std::shared_ptr surface_data_; // Datos a dibujar Palette palette_; // Paleta para volcar la SurfaceData a una Textura SubPalette sub_palette_; // Paleta para reindexar colores @@ -127,7 +130,6 @@ class Surface { // Metodos para gestionar surface_data_ [[nodiscard]] auto getSurfaceData() const -> std::shared_ptr { return surface_data_; } - void setSurfaceData(std::shared_ptr new_data) { surface_data_ = std::move(new_data); } // Obtien ancho y alto [[nodiscard]] auto getWidth() const -> float { return surface_data_->width; }