Closed Bug 377232 Opened 17 years ago Closed 17 years ago

"middle of a cluster " assertions with Cyrillic and Combining Diacritical

Categories

(Core :: Graphics, defect)

x86
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: jruderman, Assigned: roc)

References

Details

(Keywords: assertion, testcase)

Attachments

(2 files)

Attached file testcase
###!!! ASSERTION: Ended drawing in the middle of a cluster...: 'end == mCharacterCount || charGlyphs[end].IsClusterStart()', file /Users/jruderman/trunk/mozilla/gfx/thebes/src/gfxFont.cpp, line 973
###!!! ASSERTION: Ended in the middle of a cluster...: '*aEnd == mCharacterCount || charGlyphs[*aEnd].IsClusterStart()', file /Users/jruderman/trunk/mozilla/gfx/thebes/src/gfxFont.cpp, line 837
###!!! ASSERTION: Started drawing in the middle of a cluster...: 'charGlyphs[start].IsClusterStart()', file /Users/jruderman/trunk/mozilla/gfx/thebes/src/gfxFont.cpp, line 971
###!!! ASSERTION: Started in the middle of a cluster...: 'charGlyphs[*aStart].IsClusterStart()', file /Users/jruderman/trunk/mozilla/gfx/thebes/src/gfxFont.cpp, line 835
This one happens because ATSUI selects a fallback font for the diacritical mark. That means the base character and the mark are in different glyph runs so when we draw each glyph run we find that the glyph run boundaries don't fall on cluster boundaries.

I'm not sure what the best way is to handle this. On my system ATSUI is choosing to render the mark as a box, perhaps because it doesn't like the font change inside the cluster, even though it chose that. We could adjust glyph run boundaries to fit cluster boundaries, but how? Simon, any thoughts?
Blocks: textfuzzer
We decided to modify the clustering so that the characters are no longer considered part of the same cluster.
Attached patch fixSplinter Review
This fixes things, downgrading the assertion to a more specific warning for this particular case. We restore the invariant that each character in a cluster has the same font, by breaking up the cluster at font change boundaries.
Assignee: nobody → roc
Status: NEW → ASSIGNED
Attachment #261504 - Flags: review?(vladimir)
checked in.
Status: ASSIGNED → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Flags: in-testsuite?
Crashtest checked in.
Flags: in-testsuite? → in-testsuite+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: