From 2c94f6ab5063aa9051c771e823ba5cbd71f518cd Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Tue, 19 May 2020 13:14:05 +0200 Subject: [PATCH] Ensure cached pointer wrappers are cleaned up when deleted --- PkmnLibSharp/Utilities/PointerWrapper.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/PkmnLibSharp/Utilities/PointerWrapper.cs b/PkmnLibSharp/Utilities/PointerWrapper.cs index 9d74dc4..aa10ba1 100644 --- a/PkmnLibSharp/Utilities/PointerWrapper.cs +++ b/PkmnLibSharp/Utilities/PointerWrapper.cs @@ -30,6 +30,12 @@ namespace PkmnLibSharp.Utilities Cached.TryAdd(ptr, weakRef); } + ~PointerWrapper() + { + if (!_isDeleted) + Cached.TryRemove(Ptr, out _); + } + public static bool TryResolvePointer(IntPtr p, out T result) where T : PointerWrapper { if (Cached.TryGetValue(p, out var val))