Skip to content

Fix SizeSpecificArrayPool losing expanded buckets - #158

Open
armadavalor wants to merge 1 commit into
gustavopsantos:mainfrom
armadavalor:fix/array-pool-resize
Open

armadavalor wants to merge 1 commit into
gustavopsantos:mainfrom
armadavalor:fix/array-pool-resize

Conversation

@armadavalor

Copy link
Copy Markdown

SizeSpecificArrayPool.Rent resized a local copy of the bucket with Array.Resize but never stored it back in _buckets[length]. Rentals past the first expansion kept allocating new buckets, and the 9th outstanding rental of the same length threw IndexOutOfRangeException.

This stores the resized bucket back into _buckets[length], and adds an edit mode test that rents more than two expansions' worth of arrays.

Tested: not compiled in Unity and the NUnit tests were not run in the Unity Test Runner. I compiled the pool class alone in a scratch .NET 7 project: before the change the 9th rental throws, after it 17 rentals of the same length return 17 distinct arrays.

Closes #155

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

SizeSpecificArrayPool fails on the 9th outstanding rental of the same length

1 participant