From a89b6128ddaa04f0c3fad3ffc0a92a7db795b1e2 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Fri, 1 Mar 2019 10:19:29 +0300 Subject: [PATCH] Call Compact on Add --- src/Avalonia.Base/Utilities/WeakEventHandlerManager.cs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Base/Utilities/WeakEventHandlerManager.cs b/src/Avalonia.Base/Utilities/WeakEventHandlerManager.cs index a724878317..e948e55b96 100644 --- a/src/Avalonia.Base/Utilities/WeakEventHandlerManager.cs +++ b/src/Avalonia.Base/Utilities/WeakEventHandlerManager.cs @@ -132,6 +132,7 @@ namespace Avalonia.Utilities public void Add(EventHandler s) { + Compact(true); if (_count == _data.Length) { //Extend capacity @@ -174,7 +175,7 @@ namespace Avalonia.Utilities } } - void Compact() + void Compact(bool preventDestroy = false) { int empty = -1; for (int c = 0; c < _count; c++) @@ -193,7 +194,7 @@ namespace Avalonia.Utilities } if (empty != -1) _count = empty; - if (_count == 0) + if (_count == 0 && !preventDestroy) Destroy(); }