-
Notifications
You must be signed in to change notification settings - Fork 1.6k
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
[iOS] Bugfix/22469 ios label crash #22487
Open
artemvalieiev
wants to merge
6
commits into
dotnet:main
Choose a base branch
from
artemvalieiev:bugfix/22469-ios-label-crash
base: main
Could not load branches
Branch not found: {{ refName }}
Could not load tags
Nothing to show
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
[iOS] Bugfix/22469 ios label crash #22487
artemvalieiev
wants to merge
6
commits into
dotnet:main
from
artemvalieiev:bugfix/22469-ios-label-crash
Conversation
This file contains 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
I just tried UI test from #22213 , and it works well too with my changes |
I'm guessing this would require verification from Javier @jsuarezruiz anyway |
/azp run |
Azure Pipelines successfully started running 3 pipeline(s). |
Also fixes #22480 , since using GetBoundingRect for getting text/glyph range rectangle is RTL/LTR independent |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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