Cleanup. const introduced for initial capacity.

This commit is contained in:
mlemanczyk committed 2023-07-01 15:03:32 +02:00
1 parent f23e9054e5
commit 845cf602dd
1 file changed
+21 -20
+21 -20
View File
@@ -6,6 +6,7 @@ namespace Recyclable.Collections
[Serializable] [Serializable]
public sealed partial class RecyclableList<T> : IList<T>, IReadOnlyList<T>, IDisposable public sealed partial class RecyclableList<T> : IList<T>, IReadOnlyList<T>, IDisposable
{ {
private const int InitialCapacity = 4;
private static readonly bool NeedsClearing = !typeof(T).IsValueType; private static readonly bool NeedsClearing = !typeof(T).IsValueType;
public static explicit operator ReadOnlySpan<T>(RecyclableList<T> source) => new(source._memoryBlock, 0, source.Count); public static explicit operator ReadOnlySpan<T>(RecyclableList<T> source) => new(source._memoryBlock, 0, source.Count);
@@ -70,13 +71,13 @@ namespace Recyclable.Collections
public RecyclableList() public RecyclableList()
{ {
_capacity = 4; _capacity = InitialCapacity;
_memoryBlock = new T[4]; _memoryBlock = new T[InitialCapacity];
} }
public RecyclableList(int initialCapacity) public RecyclableList(int initialCapacity)
{ {
if (initialCapacity >= 4) if (initialCapacity >= InitialCapacity)
{ {
_memoryBlock = initialCapacity >= RecyclableDefaults.MinPooledArrayLength _memoryBlock = initialCapacity >= RecyclableDefaults.MinPooledArrayLength
? RecyclableListHelpers<T>._arrayPool.Rent(initialCapacity) ? RecyclableListHelpers<T>._arrayPool.Rent(initialCapacity)
@@ -85,56 +86,56 @@ namespace Recyclable.Collections
} }
else else
{ {
_memoryBlock = new T[4]; _memoryBlock = new T[InitialCapacity];
_capacity = 4; _capacity = InitialCapacity;
} }
} }
public RecyclableList(RecyclableList<T> source) public RecyclableList(RecyclableList<T> source)
{ {
_capacity = 4; _capacity = InitialCapacity;
_memoryBlock = new T[4]; _memoryBlock = new T[InitialCapacity];
AddRange(source); AddRange(source);
} }
public RecyclableList(RecyclableLongList<T> source) public RecyclableList(RecyclableLongList<T> source)
{ {
_capacity = 4; _capacity = InitialCapacity;
_memoryBlock = new T[4]; _memoryBlock = new T[InitialCapacity];
AddRange(source); AddRange(source);
} }
public RecyclableList(ReadOnlySpan<T> source) public RecyclableList(ReadOnlySpan<T> source)
{ {
_capacity = 4; _capacity = InitialCapacity;
_memoryBlock = new T[4]; _memoryBlock = new T[InitialCapacity];
AddRange(source); AddRange(source);
} }
public RecyclableList(in T[] source) public RecyclableList(in T[] source)
{ {
_capacity = 4; _capacity = InitialCapacity;
_memoryBlock = new T[4]; _memoryBlock = new T[InitialCapacity];
AddRange(source); AddRange(source);
} }
public RecyclableList(List<T> source) public RecyclableList(List<T> source)
{ {
_capacity = 4; _capacity = InitialCapacity;
_memoryBlock = new T[4]; _memoryBlock = new T[InitialCapacity];
AddRange(source); AddRange(source);
} }
public RecyclableList(IList<T> source) public RecyclableList(IList<T> source)
{ {
_capacity = 4; _capacity = InitialCapacity;
_memoryBlock = new T[4]; _memoryBlock = new T[InitialCapacity];
AddRange(source); AddRange(source);
} }
public RecyclableList(IEnumerable<T> source, int initialCapacity = RecyclableDefaults.Capacity) public RecyclableList(IEnumerable<T> source, int initialCapacity = RecyclableDefaults.Capacity)
{ {
if (initialCapacity >= 4) if (initialCapacity >= InitialCapacity)
{ {
_memoryBlock = initialCapacity >= RecyclableDefaults.MinPooledArrayLength _memoryBlock = initialCapacity >= RecyclableDefaults.MinPooledArrayLength
? RecyclableListHelpers<T>._arrayPool.Rent(initialCapacity) ? RecyclableListHelpers<T>._arrayPool.Rent(initialCapacity)
@@ -143,8 +144,8 @@ namespace Recyclable.Collections
} }
else else
{ {
_capacity = 4; _capacity = InitialCapacity;
_memoryBlock = new T[4]; _memoryBlock = new T[InitialCapacity];
} }
AddRange(source); AddRange(source);