Closed
Bug 368461
Opened 19 years ago
Closed 19 years ago
Crash [@ nsLineBox::DisableResizeReflowOptimization] with MathML and <td>
Categories
(Core :: Layout: Block and Inline, defect)
Core
Layout: Block and Inline
Tracking
()
RESOLVED
FIXED
People
(Reporter: jruderman, Assigned: MatsPalmgren_bugz)
References
Details
(Keywords: crash, regression, testcase)
Crash Data
Attachments
(2 files)
|
204 bytes,
application/xhtml+xml
|
Details | |
|
5.70 KB,
patch
|
dbaron
:
review+
dbaron
:
superreview+
|
Details | Diff | Splinter Review |
Loading the testcase in a debug build makes Firefox crash [@ nsLineBox::DisableResizeReflowOptimization].
Debug-only?
debug only crashes usually indicate access to memory that is either 0xdeadbeef or 0xdddddddd
I don't see a crash with slightly dated (1 or 2 weeks) debug build
I see however a couple of asserts:
###!!! ASSERTION: shouldn't use unconstrained widths anymore: 'availableWidth !=
NS_UNCONSTRAINEDSIZE', file d:/moz_src/mozilla/layout/generic/nsHTMLReflowState
.cpp, line 214
WARNING: invalid markup: file d:/moz_src/mozilla/layout/mathml/base/src/nsMathML
msubsupFrame.cpp, line 167
WARNING: GetBoundingMetrics failed: file d:/moz_src/mozilla/layout/mathml/base/s
rc/nsMathMLContainerFrame.cpp, line 105
| Reporter | ||
Comment 2•19 years ago
|
||
I think this is a recent regression, since I've seen it several times in the last few days but didn't see it before.
| Assignee | ||
Comment 3•19 years ago
|
||
nsMathMLContainerFrame::ReflowForeignChild() constructs the nsLineLayout
passing a null line list iterator (ok I think):
http://bonsai.mozilla.org/cvsblame.cgi?file=/mozilla/layout/mathml/base/src/nsMathMLContainerFrame.cpp&rev=1.159&root=/cvsroot&mark=988-989#975
which means 'mLineBox' will not be assigned:
http://bonsai.mozilla.org/cvsblame.cgi?file=/mozilla/layout/generic/nsLineLayout.cpp&rev=3.252&root=/cvsroot&mark=137-140#94
and its members contains random data.
When we reflow we use it here and crash:
http://bonsai.mozilla.org/cvsblame.cgi?file=/mozilla/layout/generic/nsLineLayout.cpp&rev=3.252&root=/cvsroot&mark=790#762
Patch coming up...
Assignee: rbs → mats.palmgren
Blocks: 163504
Component: MathML → Layout: Block and Inline
Keywords: regression
OS: Mac OS X → All
Hardware: Macintosh → All
| Assignee | ||
Comment 4•19 years ago
|
||
Attachment #253100 -
Flags: superreview?(dbaron)
Attachment #253100 -
Flags: review?(dbaron)
Comment on attachment 253100 [details] [diff] [review]
Patch rev. 1
>+#ifdef NS_DEBUG
>+ nsLineList_iterator() { memset(&mCurrent, 0xdd, sizeof(mCurrent)); }
>+#else
> // Auto generated default constructor OK.
> // Auto generated copy-constructor OK.
>+#endif
r+sr=dbaron, except every time you did the above pattern, the #endif should be one line earlier, since the auto-generated copy constructor is still fine and still used.
Attachment #253100 -
Flags: superreview?(dbaron)
Attachment #253100 -
Flags: superreview+
Attachment #253100 -
Flags: review?(dbaron)
Attachment #253100 -
Flags: review+
Though, actually, 0xdd is usually used to mean deleted memory. I'm not sure what a normal marker for uninitialized memory is, but maybe use 0xda if nobody comes up with something better? timeless?
0xcd is apparently used by something (debug crt on windows?), so how about using that?
| Assignee | ||
Comment 8•19 years ago
|
||
| Reporter | ||
Comment 9•19 years ago
|
||
Mats, can you check this in (with dbaron's changes)?
| Assignee | ||
Comment 10•19 years ago
|
||
Moved the #endif and changed the value to 0xcd.
Checked in to trunk at 2007-02-08 05:53 PST
Status: NEW → RESOLVED
Closed: 19 years ago
Resolution: --- → FIXED
Updated•19 years ago
|
Flags: in-testsuite?
Updated•15 years ago
|
Crash Signature: [@ nsLineBox::DisableResizeReflowOptimization]
You need to log in
before you can comment on or make changes to this bug.
Description
•