Closed Bug 382916 Opened 18 years ago Closed 18 years ago

"ASSERTION: After-spacing inside a ligature!"

Categories

(Core :: Layout: Text and Fonts, defect)

x86
All
defect
Not set
normal

Tracking

()

VERIFIED FIXED

People

(Reporter: jruderman, Unassigned)

References

()

Details

(Keywords: assertion, regression, testcase)

Attachments

(1 file)

Attached file testcase
Many pages, including my blog, trigger this assertion added in bug 382279: ###!!! ASSERTION: After-spacing inside a ligature!: 'i - 1 <= aStart || aSpacing[i - 1 - aStart].mAfter == 0', file gfx/thebes/src/gfxFont.cpp, line 869 The reduced testcase is the letter combination "fi" in a justified paragraph. After making the testcase, I noticed that there was extra space after the "fi" ligature, even in builds before the fix for bug 382279 went in. Is the extra space due to the same bug that causes the assertion to fire?
new textframe or old textframe?
Old, I think. I haven't done anything special to my build.
I see this frequently on Linux as well. I don't understand the code enough to fix it but I added some tracing in gfxTextRun::GetAdjustedSpacing and got this: before relativizing: aSpacing[0].mBefore=0.000000 mAfter=360.000000 aSpacing[1].mBefore=0.000000 mAfter=240.000000 (ligature continuation) aSpacing[2].mBefore=0.000000 mAfter=360.000000 aSpacing[3].mBefore=0.000000 mAfter=240.000000 (ligature continuation) aSpacing[4].mBefore=0.000000 mAfter=360.000000 aSpacing[5].mBefore=0.000000 mAfter=240.000000 (ligature continuation) aSpacing[6].mBefore=0.000000 mAfter=360.000000 aSpacing[7].mBefore=0.000000 mAfter=240.000000 (ligature continuation) clusterWidth = 600 IsSimpleGlyph: aSpacing[1].mAfter -= 600 (mAfter was 240.000000) => -360.000000 clusterWidth = 600 IsSimpleGlyph: aSpacing[3].mAfter -= 600 (mAfter was 240.000000) => -360.000000 clusterWidth = 600 IsSimpleGlyph: aSpacing[5].mAfter -= 600 (mAfter was 240.000000) => -360.000000 clusterWidth = 600 aSpacing[7].mAfter -= 600 (mAfter was 240.000000) => -360.000000 after relativizing: aSpacing[0].mBefore=0.000000 mAfter=360.000000 aSpacing[1].mBefore=0.000000 mAfter=-360.000000 (ligature continuation) aSpacing[2].mBefore=0.000000 mAfter=360.000000 aSpacing[3].mBefore=0.000000 mAfter=-360.000000 (ligature continuation) aSpacing[4].mBefore=0.000000 mAfter=360.000000 aSpacing[5].mBefore=0.000000 mAfter=-360.000000 (ligature continuation) aSpacing[6].mBefore=0.000000 mAfter=360.000000 aSpacing[7].mBefore=0.000000 mAfter=-360.000000 (ligature continuation) "After/before relativizing" dumps are before/after the marked block: http://bonsai.mozilla.org/cvsblame.cgi?file=/mozilla/gfx/thebes/src/gfxFont.cpp&rev=1.48&root=/cvsroot&mark=788-821#776
OS: Mac OS X → All
I think this is just old textframe not being ligature aware. New textframe should fix this.
No longer blocks: 382279
Depends on: 367177
This should be fixed by the new-textframe landing.
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
Yep.
Status: RESOLVED → VERIFIED
Flags: in-testsuite?
Reftest 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: