Closed Bug 397961 Opened 17 years ago Closed 17 years ago

"ASSERTION: lost track of line breaks somehow" with text-transform, rtl, wrapping

Categories

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

x86
macOS
defect

Tracking

()

VERIFIED FIXED

People

(Reporter: jruderman, Assigned: smontagu)

References

Details

(Keywords: assertion, rtl, testcase, Whiteboard: [dbaron-1.9:RsCt])

Attachments

(2 files)

Attached file testcase
Loading the testcase triggers:

###!!! ASSERTION: lost track of line breaks somehow: 'nextLineBreak == aTextRun->mLineBreaks.Length()', file /Users/jruderman/trunk/mozilla/layout/generic/nsTextRunTransformations.cpp, line 481
Assignee: nobody → roc
Flags: blocking1.9?
Flags: blocking1.9? → blocking1.9+
Simon, looks like more bidi resolver weirdness. Check out the negative offset/repeated text here as the assert fires:

Block(div)(1)@0x3eadf72c next=0x3eadf7fc {62760,0,60,3456} [state=00000409] [overflow=-633,0,693,3456] sc=0x3eadeb04(i=3,b=0)<
                line 0x3eadf7d4: count=1 state=inline,clean,prevmarginclean,not impacted,not wrapped,before:nobr,after:nobr[0x4000] {-207,0,267,1152} <
                  Text(0)@0x3eadf6a0[0,5,T]  next=0x3e8745f8 next-continuation=0x3e8745f8 {-207,96,267,960} [state=00220601] SELECTED [content=0x3dd80280] sc=0x3eade7e0 pst=:-moz-non-element<
                    "/ / X"
                  >
                >
                line 0x3e87463c: count=1 state=inline,clean,prevmarginclean,not impacted,not wrapped,before:nobr,after:nobr[0x4100] {-207,1152,267,1152} <
                  Text(0)@0x3e8745f8[5,-1,F]  next=0x3e8745b4 prev-continuation=0x3eadf6a0 next-continuation=0x3e8745b4 {-207,1248,267,960} [state=11620204] SELECTED [content=0x3dd80280] sc=0x3eade7e0 pst=:-moz-non-element<
                    ""
                  >
                >
                line 0x3e874664: count=1 state=inline,clean,prevmarginclean,not impacted,not wrapped,before:nobr,after:nobr[0x4100] {-633,2304,693,1152} <
                  Text(0)@0x3e8745b4[4,1,T]  prev-continuation=0x3e8745f8 {-633,2400,693,960} [state=11620204] SELECTED [content=0x3dd80280] sc=0x3eade7e0 pst=:-moz-non-element<
                    "X"
                  >
                >
              >
Simon, I'll reassign this to you, but feel free to reassign back to me if you don't want it.
Assignee: roc → smontagu
Whiteboard: [dbaron-1.9:RsCt]
Attached patch PatchSplinter Review
This is a small but significant change: by moving the call to AdjustOffsetsForBidi after the call to RemoveBidiContinuation, we ensure that the fluid/non-fluidness of the continuation chain is up-to-date in nsTextFrame::SetLength. I think this should fix more than one of the assertion bugs associated with the bidi resolver.
Attachment #285924 - Flags: superreview?(roc)
Attachment #285924 - Flags: review?(uriber)
Blocks: 399365
Attachment #285924 - Flags: superreview?(roc) → superreview+
Attachment #285924 - Flags: review?(uriber) → review+
Blocks: 399951
Checked in, with testcase for the dependee bug 399951
Status: NEW → RESOLVED
Closed: 17 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Mass-assigning the new rtl keyword to RTL-related (see bug 349193).
Keywords: rtl
verified fixed using the testcase and  Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9pre) Gecko/2008050621 Firefox/3.0pre

--> no assertion on testcase --> Verified fixed
Status: RESOLVED → VERIFIED
Depends on: 471594
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: