From c616e3213cb192cd25820857391420fb5b676ca0 Mon Sep 17 00:00:00 2001 From: Brett Morgan Date: Thu, 8 Jun 2023 16:20:43 +1000 Subject: [PATCH] `next_gen_ui_demo`: Stop `Picture`s leaking (#1871) --- next_gen_ui_demo/lib/common/shader_effect.dart | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/next_gen_ui_demo/lib/common/shader_effect.dart b/next_gen_ui_demo/lib/common/shader_effect.dart index 69bd75f7d..86db665f1 100644 --- a/next_gen_ui_demo/lib/common/shader_effect.dart +++ b/next_gen_ui_demo/lib/common/shader_effect.dart @@ -296,6 +296,8 @@ class _RenderShaderSamplerBuilderWidget extends RenderProxyBox { class _ShaderSamplerBuilderLayer extends OffsetLayer { _ShaderSamplerBuilderLayer(this._callback); + ui.Picture? _lastPicture; + Size get size => _size; Size _size = Size.zero; set size(Size value) { @@ -353,7 +355,8 @@ class _ShaderSamplerBuilderLayer extends OffsetLayer { } finally { image.dispose(); } - final ui.Picture picture = pictureRecorder.endRecording(); - builder.addPicture(offset, picture); + _lastPicture?.dispose(); + _lastPicture = pictureRecorder.endRecording(); + builder.addPicture(offset, _lastPicture!); } }