Closed Bug 382429 Opened 17 years ago Closed 17 years ago

Hang or crash when changing text dynamically with bidi and new textframe.

Categories

(Core :: Layout, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: smontagu, Assigned: smontagu)

References

Details

Attachments

(5 files, 2 obsolete files)

Attached file Testcase (obsolete) —
With new textframe, clicking on the button in the attached testcase causes a hang in nsSplittableFrame::IsInPrevContinuationChain(). Note that the change to the text from "ע 3/4" to "ע 3 ד 4" makes bidi resolution change the number of same-direction text runs in the textframes.

There are no assertions before the hang, but there is a message in the console:
WARNING: REASSIGNING MULTIFLOW TEXT RUN (not append)!: file /home/smontagu/mozwork/debugtree/mozilla/layout/generic/nsTextFrameThebes.cpp, line 1632
Attached file Thinner testcase
There seems to have been a change in the last few days. This version of the testcase originally caused lots of
###!!! ASSERTION: redo line on totally empty line: 'aState.IsImpactedByFloat()'
###!!! ASSERTION: unconstrained height on totally empty line: 
'NS_UNCONSTRAINEDSIZE != aState.mAvailSpaceRect.height'
followed by "yikes! spinning on a line over 1000 times!" and crash.
Today it hangs just like the previous version.
Attachment #266603 - Attachment is obsolete: true
Attached patch patchSplinter Review
We need to clear text runs when doing bidi resolution. I'm not sure if this is the ideal place to do it, though.
Attachment #266733 - Flags: superreview?(roc)
Attachment #266733 - Flags: review?(roc)
Comment on attachment 266733 [details] [diff] [review]
patch

I think this is a good place to do it. Maybe add a comment that this is called during bidi resolution, from the block container, so we shouldn't be holding a local reference to a textrun anywhere.
Attachment #266733 - Flags: superreview?(roc)
Attachment #266733 - Flags: superreview+
Attachment #266733 - Flags: review?(roc)
Attachment #266733 - Flags: review+
Checked in.
Blocks: 367177
Status: NEW → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Flags: in-testsuite?
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Assignee: nobody → smontagu
Status: REOPENED → NEW
Status: NEW → RESOLVED
Closed: 17 years ago17 years ago
Resolution: --- → FIXED
Attached file mochitest (obsolete) —
This is my first mochitest, so I'd like to have it reviewed
Attachment #270187 - Flags: review?(sayrer)
Attachment #270187 - Attachment is obsolete: true
Attachment #270191 - Flags: review?(sayrer)
Attachment #270187 - Flags: review?(sayrer)
Attachment #270191 - Flags: review?(sayrer) → review+
Ouch! I seem to have missed checking in the test, and it fails in current builds. To make matters worse, I wondered whether roc's change in bug 385270 might break this, but assumed it would be OK since I "knew" there was a unit test. (I'm not saying that it did break it, but it's a likely candidate)
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
The crash that I thought was caused by this patch happens even without it, so I'll file a separate bug for it.
Attachment #277197 - Flags: superreview?(roc)
Attachment #277197 - Flags: review?(roc)
Attachment #277197 - Flags: superreview?(roc)
Attachment #277197 - Flags: superreview+
Attachment #277197 - Flags: review?(roc)
Attachment #277197 - Flags: review+
This bug should be a blocker, so nominating as such, but I'll also approve your patch for checkin so you can check it in anytime you want.
Flags: blocking1.9?
Checked in patch and test.
Status: REOPENED → RESOLVED
Closed: 17 years ago17 years ago
Flags: in-testsuite? → in-testsuite+
Resolution: --- → FIXED
Flags: blocking1.9?
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: