From cf31891a971f7ba69a0a1af29ad1cc5d6f945ba6 Mon Sep 17 00:00:00 2001 From: DCFApixels <99481254+DCFApixels@users.noreply.github.com> Date: Thu, 15 May 2025 17:42:17 +0800 Subject: [PATCH] fix memory leaks --- src/DebugUtils/EcsDebug.cs | 1 + src/EcsMask.cs | 6 ++---- src/EcsPipeline.cs | 6 ++++++ 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/DebugUtils/EcsDebug.cs b/src/DebugUtils/EcsDebug.cs index e128b0a..c8b6c4d 100644 --- a/src/DebugUtils/EcsDebug.cs +++ b/src/DebugUtils/EcsDebug.cs @@ -284,6 +284,7 @@ namespace DCFApixels.DragonECS } oldService?.OnDisableBaseService(service); service.OnEnableBaseService(oldService); + _threadServiceClonesSet.Clear(); OnServiceChanged(service); } } diff --git a/src/EcsMask.cs b/src/EcsMask.cs index de60db7..bc58ee4 100644 --- a/src/EcsMask.cs +++ b/src/EcsMask.cs @@ -565,10 +565,8 @@ namespace DCFApixels.DragonECS } private void Cleanup(bool disposing) { - _sortIncBuffer.ReadonlyDispose(); - //_sortExcBuffer.ReadonlyDispose();// использует общую памяять с _sortIncBuffer; - _sortIncChunckBuffer.ReadonlyDispose(); - //_sortExcChunckBuffer.ReadonlyDispose();// использует общую памяять с _sortIncChunckBuffer; + _sortIncBuffer.ReadonlyDispose(); // использует общую памяять с _sortExcBuffer; + _sortIncChunckBuffer.ReadonlyDispose(); // использует общую памяять с _sortExcChunckBuffer; } #endregion diff --git a/src/EcsPipeline.cs b/src/EcsPipeline.cs index 0bebeec..43b0a36 100644 --- a/src/EcsPipeline.cs +++ b/src/EcsPipeline.cs @@ -92,6 +92,12 @@ namespace DCFApixels.DragonECS _injector = injectorBuilder.Build(this); } + ~EcsPipeline() + { + if (_isDestoryed) { return; } + if (_isInit == false) { Init(); } + Destroy(); + } #endregion #region GetProcess