RecyclableLongList.Enumerator & .VersionedEnumerator will clear the current value only when it's reference type. Tiny cleanup.

This commit is contained in:
mlemanczyk committed 2023-07-01 14:09:48 +02:00
1 parent 55dd7ba078
commit 8352575043
2 files changed
+12 -8

No files matched your search

@@ -11,8 +11,6 @@ namespace Recyclable.Collections
private static readonly T _default = default;
#nullable restore
private static readonly bool _isReferenceType = !typeof(T).IsValueType;
private int _currentBlockIndex;
private int _currentItemIndex;
private readonly RecyclableLongList<T> _list;
@@ -69,14 +67,18 @@ namespace Recyclable.Collections
public void Reset()
{
_current = _default;
if (NeedsClearing)
{
_current = _default;
}
_currentBlockIndex = 0;
_currentItemIndex = 0;
}
public void Dispose()
{
if (_isReferenceType)
if (NeedsClearing)
{
_current = _default;
}
@@ -14,8 +14,6 @@ namespace Recyclable.Collections
private static readonly T _default = default;
#nullable restore
private static readonly bool _isReferenceType = !typeof(T).IsValueType;
private int _currentBlockIndex;
private int _currentItemIndex;
private readonly RecyclableLongList<T> _list;
@@ -88,14 +86,18 @@ namespace Recyclable.Collections
throw new InvalidOperationException();
}
_current = _default;
if (NeedsClearing)
{
_current = _default;
}
_currentBlockIndex = 0;
_currentItemIndex = 0;
}
public void Dispose()
{
if (_isReferenceType)
if (NeedsClearing)
{
_current = _default;
}