Backport 7820, MAINT: Allocate fewer bytes for empty arrays. #7824
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Backport #7820.
Currently the number of bytes allocated is the product of the non-zero
dimensions x element_size, which can create huge memory allocations for
empty arrays. Change that to just allocate enough for one element. Some
allocation is needed for the array.data attribute to work correctly.
Note: Could probably allocate a minimal number of bytes, say 16 as
dictated by alignment, but the old intended number is used here as a
more conservative fix.
Closes #7813.