Skip to content

Improve StringBuilder UTF-16 blit reuse and reset safety#3410

Merged
peter-jerry-ye merged 2 commits intomainfrom
zihang/faster-copy
Apr 2, 2026
Merged

Improve StringBuilder UTF-16 blit reuse and reset safety#3410
peter-jerry-ye merged 2 commits intomainfrom
zihang/faster-copy

Conversation

@peter-jerry-ye
Copy link
Copy Markdown
Collaborator

@peter-jerry-ye peter-jerry-ye commented Apr 2, 2026

Summary

  • extract the StringBuilder String -> FixedArray[UInt16] copy into a private helper
  • reallocate the buffer on reset so a previously returned string cannot be mutated through the reused backing storage
  • add a regression test covering reset after the zero-copy to_string path

Testing

  • moon fmt
  • moon test builtin/stringbuilder_test.mbt
  • moon check builtin
  • moon info builtin

Open with Devin

@coveralls
Copy link
Copy Markdown
Collaborator

Pull Request Test Coverage Report for Build 3713

Details

  • 8 of 8 (100.0%) changed or added relevant lines in 1 file are covered.
  • No unchanged relevant lines lost coverage.
  • Overall coverage increased (+0.002%) to 95.006%

Totals Coverage Status
Change from base Build 3700: 0.002%
Covered Lines: 14610
Relevant Lines: 15378

💛 - Coveralls

Copy link
Copy Markdown

@devin-ai-integration devin-ai-integration bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no potential bugs to report.

View in Devin Review to see 4 additional findings.

Open in Devin Review

@peter-jerry-ye peter-jerry-ye enabled auto-merge (rebase) April 2, 2026 06:04
@peter-jerry-ye peter-jerry-ye merged commit 8b1450b into main Apr 2, 2026
14 checks passed
@peter-jerry-ye peter-jerry-ye deleted the zihang/faster-copy branch April 2, 2026 06:05
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