[0.48.0] Adjust bound for out-of-line call to StringUTF16.toBytes #20078
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.
Recognized Call Transformer generates IL that implements an inline version of
StringUTF16.toBytes
for values in the range [0,0x3fffffff], and that falls back to calling the Java implementation otherwise. In JDK levels up to 22, the Java implementation throws anOutOfMemoryException
if the length is greater than 0x3fffffff. JDK Level 23, however, was changed to throw anOutOfMemoryException
if the length is greater than or equal to 0x3fffffff.This change alters the IL that Recognized Call Transformer generates to fall back to the Java implementation if the length is greater than or equal to 0x3fffffff, so that it will work with all JDK levels.
Port of pull request #20058 to v0.48.0-release branch