From 08539397082c66fe80a4eaa2ed9404d1dcc3ac85 Mon Sep 17 00:00:00 2001 From: nateglasser Date: Wed, 3 Apr 2024 17:22:12 -0700 Subject: [PATCH] Implemented IDisposable for RenderDataCustomNode. (#15224) --- .../Composition/Drawing/Nodes/RenderDataNodes.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Base/Rendering/Composition/Drawing/Nodes/RenderDataNodes.cs b/src/Avalonia.Base/Rendering/Composition/Drawing/Nodes/RenderDataNodes.cs index 44c8f66bb3..133e19c02d 100644 --- a/src/Avalonia.Base/Rendering/Composition/Drawing/Nodes/RenderDataNodes.cs +++ b/src/Avalonia.Base/Rendering/Composition/Drawing/Nodes/RenderDataNodes.cs @@ -78,13 +78,19 @@ interface IRenderDataItem bool HitTest(Point p); } -class RenderDataCustomNode : IRenderDataItem +class RenderDataCustomNode : IRenderDataItem, IDisposable { public ICustomDrawOperation? Operation { get; set; } public bool HitTest(Point p) => Operation?.HitTest(p) ?? false; public void Invoke(ref RenderDataNodeRenderContext context) => Operation?.Render(new(context.Context, false)); public Rect? Bounds => Operation?.Bounds; + + public void Dispose() + { + Operation?.Dispose(); + Operation = null; + } } abstract class RenderDataPushNode : IRenderDataItem, IDisposable