Only mark unaligned types in buffers #505
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.
Previously all types are marked unaligned in buffer format strings, now we test for alignment before adding the '=' marker.
It's not a problem to mark all types as unaligned per-se, it's equivalent because of the explicit padding, but this goes partway to allowing comparison to format strings from other sources, e.g. numpy. It's much easier to test for alignment here rather than parsing the string and trying to work it out. In combination with my other PR #488 , it will be possible to construct a
vector<struct>
from a structured array without casting in some cases (namely where the member names are identical and there's no multibyte padding).