diff --git a/Server/Map.cs b/Server/Map.cs index f4580c557..1a0c30b1a 100644 --- a/Server/Map.cs +++ b/Server/Map.cs @@ -1743,7 +1743,7 @@ namespace Server if (e != null) { - e._Pool = pool; + e._Pool.AddRange(pool); } else { @@ -1754,11 +1754,11 @@ namespace Server } private bool _IsDisposed; - private IEnumerable _Pool; + private List _Pool; public PooledEnumerable(IEnumerable pool) { - _Pool = pool; + _Pool = new List(pool); } IEnumerator IEnumerable.GetEnumerator() @@ -1778,7 +1778,7 @@ namespace Server return; } - _Pool = null; + _Pool.Clear(); lock (((ICollection)_Buffer).SyncRoot) { @@ -1789,6 +1789,9 @@ namespace Server public void Dispose() { _IsDisposed = true; + + _Pool.Clear(); + _Pool.TrimExcess(); _Pool = null; } }