diff --git a/Recyclable.Collections/RecyclableLongList.cs b/Recyclable.Collections/RecyclableLongList.cs index 86affde..6f54dda 100644 --- a/Recyclable.Collections/RecyclableLongList.cs +++ b/Recyclable.Collections/RecyclableLongList.cs @@ -970,17 +970,19 @@ namespace Recyclable.Collections new Span(_memoryBlocks[_nextItemBlockIndex])[_nextItemIndex] = item; } - if (_nextItemIndex < _blockSizeMinus1) + if (++_nextItemIndex == _blockSize) { - if (++_nextItemIndex == 1) + if (_nextItemBlockIndex > _lastBlockWithData) { _lastBlockWithData++; } - } - else - { - _nextItemIndex = 0; + _nextItemBlockIndex++; + _nextItemIndex = 0; + } + else if (_nextItemIndex == 1 && _nextItemBlockIndex > _lastBlockWithData) + { + _lastBlockWithData++; } _version++;