[iOS] Bugfix/22469 ios label crash#22487
Merged
PureWeen merged 9 commits intoAug 27, 2024
Merged
Conversation
Contributor
Author
|
I just tried UI test from #22213 , and it works well too with my changes |
Contributor
Author
|
I'm guessing this would require verification from Javier @jsuarezruiz anyway |
Member
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
Contributor
Author
|
Also fixes #22480 , since using GetBoundingRect for getting text/glyph range rectangle is RTL/LTR independent |
Contributor
|
Any chance this will be reviewed? |
549ace5 to
941a1ec
Compare
Member
|
Rebased on top of main |
Member
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
…have happened in the rebase
Member
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
Member
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
tj-devel709
previously approved these changes
Aug 21, 2024
PureWeen
requested changes
Aug 21, 2024
Member
|
/azp run |
|
Azure Pipelines successfully started running 3 pipeline(s). |
Contributor
Author
|
Sorry I am on vacation right now, thanks @tj-devel709 ❤️ |
PureWeen
approved these changes
Aug 26, 2024
Member
No worries, enjoy your vacation! :) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Description of Change
I have found an alternative approach for calculating span regions to prevent crashes. Please try launching Issue22469 UITest with using original FormattedStringExtensions on the iPhone 15/XS simulator to reproduce the crash.
In the original approach, the DefaultLineHeight is calculated and used to determine the number of text lines associated with the span, which is different from the number of lines returned by EnumerateLineFragments -> multilineRects. This causes an "argument out of range" exception in the loop at line 249, where the loop assumes that the line height count is equal to multilineRects.Count.
Instead, I am always using EnumerateLineFragments and I am trying to calculate each rect depending on line glyph indexes of this line fragment.
Video of Label controls page tests
https://github.com/dotnet/maui/assets/3391032/93f67658-71a5-4705-ab89-71004f4ad2d7
Issues Fixed
Fixes #22469