Closed
Bug 382916
Opened 18 years ago
Closed 18 years ago
"ASSERTION: After-spacing inside a ligature!"
Categories
(Core :: Layout: Text and Fonts, defect)
Tracking
()
VERIFIED
FIXED
People
(Reporter: jruderman, Unassigned)
References
()
Details
(Keywords: assertion, regression, testcase)
Attachments
(1 file)
248 bytes,
text/html
|
Details |
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?
Reporter | ||
Comment 2•18 years ago
|
||
Old, I think. I haven't done anything special to my build.
Comment 3•18 years ago
|
||
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.
This should be fixed by the new-textframe landing.
Status: NEW → RESOLVED
Closed: 18 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•