From 67d7f401b832156e40e9bda11a4546cccd232707 Mon Sep 17 00:00:00 2001 From: Syntriax Date: Thu, 29 May 2025 22:34:01 +0300 Subject: [PATCH] refactor: memory leaks caused by behaviour collectors fixed --- Engine.Core/Abstract/IBehaviourCollector.cs | 2 +- Engine.Core/ActiveBehaviourCollector.cs | 5 ----- Engine.Core/BehaviourCollector.cs | 5 ----- 3 files changed, 1 insertion(+), 11 deletions(-) diff --git a/Engine.Core/Abstract/IBehaviourCollector.cs b/Engine.Core/Abstract/IBehaviourCollector.cs index 51cc16a..9c2ecc9 100644 --- a/Engine.Core/Abstract/IBehaviourCollector.cs +++ b/Engine.Core/Abstract/IBehaviourCollector.cs @@ -7,7 +7,7 @@ namespace Syntriax.Engine.Core; /// Provides mechanisms for tracking additions and removals, and notifies subscribers when such events occur on the assigned . /// /// The type of objects tracked by the collector. -public interface IBehaviourCollector : IHasUniverse, IEnumerable where T : class +public interface IBehaviourCollector : IHasUniverse where T : class { /// /// Event triggered when an object of type is added to the collector. diff --git a/Engine.Core/ActiveBehaviourCollector.cs b/Engine.Core/ActiveBehaviourCollector.cs index 612c29b..3b16125 100644 --- a/Engine.Core/ActiveBehaviourCollector.cs +++ b/Engine.Core/ActiveBehaviourCollector.cs @@ -19,8 +19,6 @@ public class ActiveBehaviourCollector : IBehaviourCollector where T : clas public IReadOnlyList Behaviours => activeBehaviours; public IUniverse Universe { get; private set; } = null!; - public T this[Index index] => activeBehaviours[index]; - public ActiveBehaviourCollector() { } public ActiveBehaviourCollector(IUniverse universe) => Assign(universe); @@ -119,7 +117,4 @@ public class ActiveBehaviourCollector : IBehaviourCollector where T : clas OnUnassigned?.Invoke(this); return true; } - - public IEnumerator GetEnumerator() => activeBehaviours.GetEnumerator(); - IEnumerator IEnumerable.GetEnumerator() => activeBehaviours.GetEnumerator(); } diff --git a/Engine.Core/BehaviourCollector.cs b/Engine.Core/BehaviourCollector.cs index a728bbb..84da28a 100644 --- a/Engine.Core/BehaviourCollector.cs +++ b/Engine.Core/BehaviourCollector.cs @@ -17,8 +17,6 @@ public class BehaviourCollector : IBehaviourCollector where T : class public IReadOnlyList Behaviours => behaviours; public IUniverse Universe { get; private set; } = null!; - public T this[Index index] => behaviours[index]; - public BehaviourCollector() { } public BehaviourCollector(IUniverse universe) => Assign(universe); @@ -98,7 +96,4 @@ public class BehaviourCollector : IBehaviourCollector where T : class OnUnassigned?.Invoke(this); return true; } - - public IEnumerator GetEnumerator() => behaviours.GetEnumerator(); - IEnumerator IEnumerable.GetEnumerator() => behaviours.GetEnumerator(); }