Closed Bug 386812 Opened 17 years ago Closed 17 years ago

Crash [@ BuildTextRunsScanner::FindBoundaries] with large padding, floats, white-space: pre

Categories

(Core :: Graphics, defect)

x86
macOS
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: jruderman, Assigned: roc)

References

Details

(Keywords: assertion, crash, testcase)

Crash Data

Attachments

(2 files)

Loading the testcase triggers:

###!!! ASSERTION: Frame is not in the block!!!: 'line != block->end_lines()', file /Users/jruderman/trunk/mozilla/layout/generic/nsTextFrameThebes.cpp, line 1117

###!!! ASSERTION: running past end: 'mCurrent != mListLink', file /Users/jruderman/trunk/mozilla/layout/base/../generic/nsLineBox.h, line 619

Crash [@ BuildTextRunsScanner::FindBoundaries]
Attached file testcase
I'm hitting this crash a lot, enough to make it difficult to look for other bugs.
What's happening here is that because the padding eats up all available space, we don't have room to place any floats. This causes nsBlockReflowState::FlowAndPlaceFloat to fail, returning false, which is interpreted as the float not fitting on the page, so we create overflow. Then we crash because the textrun-related code can't handle being in overflow.

I'll fix the textrun code to handle overflow situations, but we should also fix the underlying bug. I think basically we need to be able to return zero-width but nonzero height available space and force floats to fit into it.
Attached patch fixSplinter Review
This makes BuildTextRunForFrames (and hence EnsureTextRun) work even when the target frame is in the overflow-list of a block.
Assignee: nobody → roc
Status: NEW → ASSIGNED
Attachment #270988 - Flags: review?(smontagu)
Attachment #270988 - Flags: review?(smontagu) → review+
Sorry, this was the wrong patch!
This testcase no longer crashes/asserts.
Status: ASSIGNED → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Flags: in-testsuite?
Crashtest checked in.
Flags: in-testsuite? → in-testsuite+
Crash Signature: [@ BuildTextRunsScanner::FindBoundaries]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: