Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tweak CABI string conversion behavior #366

Merged
merged 1 commit into from
Jun 17, 2024
Merged

Tweak CABI string conversion behavior #366

merged 1 commit into from
Jun 17, 2024

Conversation

lukewagner
Copy link
Member

As surfaced in jco/#443, the current string conversion logic in store_string_to_utf8 doesn't quite match what an implementation naturally wants to do. In particular, while the CABI does specify starting with an optimistic allocation that assumes all code points fit into a single byte, the fallback (that reallocs to the worst-case size and does the general transcode) doesn't happen as soon as the first non-fitting code point is discovered; it happens later once the initial allocation is full. This PR tweaks the logic to instead do the realloc immediately when the non-fitting code point is discovered.

Technically, this could be considered a breaking change (since it observably changes when exactly the realloc happens), but it would be surprising if any code depended upon this behavior (at this early stage, without massive usage). Thus, I think we can just make the change.

CC @alexcrichton @guybedford @dbaeumer

@lukewagner lukewagner merged commit 9eda882 into main Jun 17, 2024
2 checks passed
@lukewagner lukewagner deleted the tweak-string-copy branch June 17, 2024 16:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants