Handle possible NULL pointers in the array buffer #41
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.
The discussion around numpy/numpy#23262 made me realize that there can be NULL pointers in the array buffer after
np.zeros
andnp.empty
. This means that we need to check for that case whenever we access an existing string array buffer in the casts and ufuncs.To support this I added a new helper
empty_if_null
, which returns a new empty static string. I couldn't figure out how to do this in a way that avoids heap allocations because thess
struct uses a flexible array member, so I also need to free the resulting empty string later.It would be possible to avoid this if there was a way for a dtype to supply an initial value for
np.empty
andnp.zeros
.Alternative suggestions for how to handle this are very welcome.