From bbc37f41c1c62236a46691e8c45bd7f0b1dfaba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=B7=E7=94=B5=E8=8A=BD=E8=A1=A3?= Date: Thu, 8 Oct 2026 16:32:33 -0400 Subject: [PATCH] Retired::append, to take over a closing owner's images --- src/primitives/retired.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/primitives/retired.rs b/src/primitives/retired.rs index a5346b2..8da37b6 100644 --- a/src/primitives/retired.rs +++ b/src/primitives/retired.rs @@ -5,7 +5,7 @@ use std::sync::Arc; use gpui::{RenderImage, Window}; /// Images to free; GPUI keeps each painted image until told. -#[derive(Default)] +#[derive(Default, Clone)] pub struct Retired(Vec>); impl Retired { @@ -14,6 +14,11 @@ impl Retired { self.0.push(image); } + /// Takes over another owner's waiting images. + pub fn append(&mut self, mut other: Retired) { + self.0.append(&mut other.0); + } + /// Frees images no one else holds; call while painting. pub fn release(&mut self, window: &mut Window) { // A shared image may still be drawn; it waits.