Closed
Bug 563837
Opened 15 years ago
Closed 15 years ago
large numbers of frame construction assertions on reftests with reftest-print and position:fixed
Categories
(Core :: Layout, defect)
Core
Layout
Tracking
()
RESOLVED
FIXED
People
(Reporter: dbaron, Assigned: bzbarsky)
Details
Attachments
(1 file)
17.51 KB,
patch
|
roc
:
review+
|
Details | Diff | Splinter Review |
layout/reftests/bugs/200774-1.html causes a very large number of assertions (30 on Linux, 35 on Windows and Mac):
The following five assertions repeat six or seven times:
^G###!!! ASSERTION: Why did we get called?: '!aChildContent->GetPrimaryFrame() || aChildContent->GetPrimaryFrame()->GetContent() != aChildContent', file /builds/slave/mozilla-central-macosx64-debug/build/layout/base/nsCSSFrameConstructor.cpp, line 2178
^G###!!! ASSERTION: Why did we get called?: '!aChildContent->GetPrimaryFrame() || aChildContent->GetPrimaryFrame()->GetContent() != aChildContent', file /builds/slave/mozilla-central-macosx64-debug/build/layout/base/nsCSSFrameConstructor.cpp, line 2178
^G###!!! ASSERTION: How did that happen?: '!mContent->GetPrimaryFrame()', file /builds/slave/mozilla-central-macosx64-debug/build/layout/base/nsCSSFrameConstructor.cpp, line 11846
^G###!!! ASSERTION: Losing track of existing primary frame: '!aFrame || !mPrimaryFrame || aFrame == mPrimaryFrame', file ../../dist/include/nsIContent.h, line 893
^G###!!! ASSERTION: Losing track of existing primary frame: '!aFrame || !mPrimaryFrame || aFrame == mPrimaryFrame', file ../../dist/include/nsIContent.h, line 893
Comment 1•15 years ago
|
||
Without looking in detail, it's reftest-print with a fixed element, seems like that would be the cause.
Reporter | ||
Comment 2•15 years ago
|
||
Also 0-10 on layout/reftests/bugs/417676.html
Reporter | ||
Comment 3•15 years ago
|
||
actually, it's strictly 10 on 417676.html and/or its -ref
also 15 on 427017-1.xhtml and 5 on 381497-f.html
Reporter | ||
Updated•15 years ago
|
Summary: large numbers of frame construction assertions on layout/reftests/bugs/200774-1.html → large numbers of frame construction assertions on reftests with reftest-print and position:fixed
![]() |
Assignee | |
Comment 4•15 years ago
|
||
Yeah, if we're calling into frame construction over and over again for this node to create the fixed frames on every page these asserts would fire. Looks like ReplicateFixedFrames does just that. There's similar code in table-land; see bug 553972.
Let me see if I can find the patch I wrote while debugging that; we should just land it.
![]() |
Assignee | |
Comment 5•15 years ago
|
||
I'm not entirely sure about adding the state to all those methods, but most of them should inline and optimize it away in opt builds... and I'd rather like to keep the asserts in debug builds instead of just removing them.
Comment on attachment 443545 [details] [diff] [review]
Proposed fix
+ PRPackedBool mSetPrimaryFrames;
Add a comment explaining what this means?
Attachment #443545 -
Flags: review?(roc) → review+
Reporter | ||
Comment 7•15 years ago
|
||
When you land this, you should also remove the asserts() annotations referencing this bug that I added in http://hg.mozilla.org/mozilla-central/rev/39aa13ebf607
![]() |
Assignee | |
Comment 8•15 years ago
|
||
Pushed http://hg.mozilla.org/mozilla-central/rev/994569c16070 with the comment fix, but forgot the asserts() fix. Working on that now.
Flags: in-testsuite+
![]() |
Assignee | |
Comment 9•15 years ago
|
||
Pushed http://hg.mozilla.org/mozilla-central/rev/bdf8167b2c18 to fix those.
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•