From 4c202d9d2891071bb2f72d0e1fad2757ba6253ef Mon Sep 17 00:00:00 2001 From: Dave Rayment Date: Thu, 29 Aug 2024 16:13:14 +0100 Subject: [PATCH] Fix memory leak in Peek caused by unmanaged bitmaps not being freed. Fixes #33593 --- src/modules/peek/Peek.FilePreviewer/FilePreview.xaml.cs | 3 +++ .../peek/Peek.FilePreviewer/Peek.FilePreviewer.csproj | 6 ------ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/modules/peek/Peek.FilePreviewer/FilePreview.xaml.cs b/src/modules/peek/Peek.FilePreviewer/FilePreview.xaml.cs index 23874d8ca8c..a7577265428 100644 --- a/src/modules/peek/Peek.FilePreviewer/FilePreview.xaml.cs +++ b/src/modules/peek/Peek.FilePreviewer/FilePreview.xaml.cs @@ -153,6 +153,9 @@ private async Task OnItemPropertyChanged() _cancellationTokenSource.Cancel(); _cancellationTokenSource = new(); + // Clear up any unmanaged resources before creating a new previewer instance. + (Previewer as IDisposable)?.Dispose(); + if (Item == null) { Previewer = null; diff --git a/src/modules/peek/Peek.FilePreviewer/Peek.FilePreviewer.csproj b/src/modules/peek/Peek.FilePreviewer/Peek.FilePreviewer.csproj index 5e740bc98db..83b75f8ed95 100644 --- a/src/modules/peek/Peek.FilePreviewer/Peek.FilePreviewer.csproj +++ b/src/modules/peek/Peek.FilePreviewer/Peek.FilePreviewer.csproj @@ -103,12 +103,6 @@ - - - MSBuild:Compile - - - MSBuild:Compile