From 92770765e3c3b72f3d7a06370d5f9a4b696ee1ef Mon Sep 17 00:00:00 2001 From: Marcus Wichelmann Date: Thu, 2 Apr 2020 16:21:04 +0200 Subject: [PATCH] Fixed bitmaps not getting disposed correctly causing a memory leak in RemoteWidget --- src/Avalonia.Controls/Remote/RemoteWidget.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/Remote/RemoteWidget.cs b/src/Avalonia.Controls/Remote/RemoteWidget.cs index c7a1a24c25..fabb38f87d 100644 --- a/src/Avalonia.Controls/Remote/RemoteWidget.cs +++ b/src/Avalonia.Controls/Remote/RemoteWidget.cs @@ -75,7 +75,11 @@ namespace Avalonia.Controls.Remote var fmt = (PixelFormat) _lastFrame.Format; if (_bitmap == null || _bitmap.PixelSize.Width != _lastFrame.Width || _bitmap.PixelSize.Height != _lastFrame.Height) - _bitmap = new WriteableBitmap(new PixelSize(_lastFrame.Width, _lastFrame.Height), new Vector(96, 96), fmt); + { + _bitmap?.Dispose(); + _bitmap = new WriteableBitmap(new PixelSize(_lastFrame.Width, _lastFrame.Height), + new Vector(96, 96), fmt); + } using (var l = _bitmap.Lock()) { var lineLen = (fmt == PixelFormat.Rgb565 ? 2 : 4) * _lastFrame.Width;