Fixed underflow error when reserving in values function for arrays #12
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.
When reading back an array from Futhark to Rust using
values, if the output buffer has more capacity than the array's length, it will crash.Here's a concrete example where I allocate a buffer of 5 elements for an array of 2.
Futhark code:
Rust code:
And when executed:
The issue was the code generated at line 79 of "template/array.rs":
Specifically
len - out.capacity()would underflow ifout's capacity was already greater thanlen.So I added a check to make sure it reserves more memory only when it is needed.
I tried the patch on the code earlier and it did fix the issue: