Use 100% safe TinyVec instead of SmallVec #75
Merged
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.
Switch from SmallVec to TinyVec, which is an implementation of the same idea but in 100% safe code. SmallVec has a less-than-stellar track record in terms of safety.
Sadly this drops the size of pre-allocated segment on the stack to 32 because Default is only implemented for arrays of size up to 32. This did not result in any measurable difference in performance on the samples I've thrown at it (speech, music, both short and long samples, low and high bitrates), but it's possible that I simply haven't found the right sample.