Closed Bug 13881 Opened 25 years ago Closed 25 years ago

assert in fixed table layout

Categories

(Core :: Layout, defect, P3)

x86
Windows NT
defect

Tracking

()

VERIFIED DUPLICATE of bug 12886

People

(Reporter: buster, Assigned: hyatt)

References

()

Details

open apprunner browser, with sidebar displayed
make sidebar wider using vertical splitter
get this assert:

nsDebug::Assertion(const char * 0x01a7efb8, const char * 0x01a7efac, const char
* 0x01a7ef6c, int 90) line 181 + 13 bytes
FixedTableLayoutStrategy::AssignPreliminaryColumnWidths(int 2910) line 90 + 32
bytes
BasicTableLayoutStrategy::Initialize(nsSize * 0x00000000, int 1, int 2910) line
79
nsTableFrame::BalanceColumnWidths(nsIPresContext & {...}, const
nsHTMLReflowState & {...}, const nsSize & {...}, nsSize * 0x00000000) line 3839
nsTableFrame::Reflow(nsTableFrame * const 0x02dd0414, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 2257
nsTreeFrame::Reflow(nsTreeFrame * const 0x02dd0414, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 325 + 25 bytes
nsContainerFrame::ReflowChild(nsIFrame * 0x02dd0410, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 439 + 28 bytes
nsTableOuterFrame::Reflow(nsTableOuterFrame * const 0x02dd06e4, nsIPresContext &
{...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned
int & 0) line 906 + 37 bytes
nsBoxFrame::FlowChildAt(nsIFrame * 0x02dd06e0, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0,
nsCalculatedBoxInfo & {...}, int & 0, nsString & {...}) line 1051
nsBoxFrame::FlowChildren(nsIPresContext & {...}, nsHTMLReflowMetrics & {...},
const nsHTMLReflowState & {...}, unsigned int & 0, nsRect & {...}) line 682
nsBoxFrame::Reflow(nsBoxFrame * const 0x021b6e5c, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 517
nsContainerFrame::ReflowChild(nsIFrame * 0x021b6e58, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 439 + 28 bytes
RootFrame::Reflow(RootFrame * const 0x02dcff44, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 330
nsContainerFrame::ReflowChild(nsIFrame * 0x02dcff40, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 439 + 28 bytes
ViewportFrame::Reflow(ViewportFrame * const 0x02dc8cf4, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 516
PresShell::ResizeReflow(PresShell * const 0x029645e0, int 2910, int 1875) line
929
PresShell::ResizeReflow(PresShell * const 0x029645e4, nsIView * 0x02964c70, int
2910, int 1875) line 2065
nsViewManager::SetWindowDimensions(nsViewManager * const 0x029631a0, int 2910,
int 1875) line 366
nsViewManager::DispatchEvent(nsViewManager * const 0x029631a0, nsGUIEvent *
0x0012d87c, nsEventStatus & nsEventStatus_eIgnore) line 1507
HandleEvent(nsGUIEvent * 0x0012d87c) line 63
nsWindow::DispatchEvent(nsWindow * const 0x02964b34, nsGUIEvent * 0x0012d87c,
nsEventStatus & nsEventStatus_eIgnore) line 332 + 10 bytes
nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012d87c) line 353
nsWindow::OnResize(nsRect & {...}) line 3078 + 15 bytes
nsWindow::ProcessMessage(unsigned int 71, unsigned int 0, long 1235692, long *
0x0012da7c) line 2526 + 24 bytes
nsWindow::WindowProc(HWND__ * 0x000e11e6, unsigned int 71, unsigned int 0, long
1235692) line 401 + 27 bytes
USER32! 77e7131f()
USER32! 77e72ffc()
NTDLL! 77f7637b()
DocumentViewerImpl::SetBounds(DocumentViewerImpl * const 0x0293c330, const
nsRect & {...}) line 496
nsWebShell::SetBounds(nsWebShell * const 0x027b50a0, int 0, int 0, int 194, int
125) line 1273
nsHTMLFrameInnerFrame::Reflow(nsHTMLFrameInnerFrame * const 0x027973a4,
nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState &
{...}, unsigned int & 0) line 972
nsContainerFrame::ReflowChild(nsIFrame * 0x027973a0, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 439 + 28 bytes
nsHTMLFrameOuterFrame::Reflow(nsHTMLFrameOuterFrame * const 0x027eb414,
nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState &
{...}, unsigned int & 0) line 396
nsBoxFrame::FlowChildAt(nsIFrame * 0x027eb410, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0,
nsCalculatedBoxInfo & {...}, int & 1, nsString & {...}) line 1051
nsBoxFrame::FlowChildren(nsIPresContext & {...}, nsHTMLReflowMetrics & {...},
const nsHTMLReflowState & {...}, unsigned int & 0, nsRect & {...}) line 682
nsBoxFrame::Reflow(nsBoxFrame * const 0x0214ba34, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 517
nsContainerFrame::ReflowChild(nsIFrame * 0x0214ba30, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 439 + 28 bytes
nsScrollFrame::Reflow(nsScrollFrame * const 0x02795a94, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 606
nsBoxFrame::FlowChildAt(nsIFrame * 0x02795a90, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0,
nsCalculatedBoxInfo & {...}, int & 0, nsString & {...}) line 1051
nsBoxFrame::FlowChildren(nsIPresContext & {...}, nsHTMLReflowMetrics & {...},
const nsHTMLReflowState & {...}, unsigned int & 0, nsRect & {...}) line 682
nsBoxFrame::Reflow(nsBoxFrame * const 0x02149f0c, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 517
nsBoxFrame::FlowChildAt(nsIFrame * 0x02149f08, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0,
nsCalculatedBoxInfo & {...}, int & 0, nsString & {...}) line 1051
nsBoxFrame::FlowChildren(nsIPresContext & {...}, nsHTMLReflowMetrics & {...},
const nsHTMLReflowState & {...}, unsigned int & 0, nsRect & {...}) line 682
nsBoxFrame::Reflow(nsBoxFrame * const 0x021483e4, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 517
nsBoxFrame::FlowChildAt(nsIFrame * 0x021483e0, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0,
nsCalculatedBoxInfo & {...}, int & 0, nsString & {...}) line 1051
nsBoxFrame::FlowChildren(nsIPresContext & {...}, nsHTMLReflowMetrics & {...},
const nsHTMLReflowState & {...}, unsigned int & 0, nsRect & {...}) line 682
nsBoxFrame::Reflow(nsBoxFrame * const 0x02131d14, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 517
nsContainerFrame::ReflowChild(nsIFrame * 0x02131d10, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 439 + 28 bytes
RootFrame::Reflow(RootFrame * const 0x0278bab4, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 330
nsContainerFrame::ReflowChild(nsIFrame * 0x0278bab0, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 439 + 28 bytes
ViewportFrame::Reflow(ViewportFrame * const 0x02784ce4, nsIPresContext & {...},
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 516
nsHTMLReflowCommand::Dispatch(nsHTMLReflowCommand * const 0x02e39d00,
nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsSize & {...},
nsIRenderingContext & {...}) line 141
PresShell::ProcessReflowCommands(PresShell * const 0x01c5b2c0) line 1249
PresShell::ExitReflowLock(PresShell * const 0x01c5b2c0) line 600
PresShell::AttributeChanged(PresShell * const 0x01c5b2c8, nsIDocument *
0x01f966a0, nsIContent * 0x0275e570, nsIAtom * 0x01422700, int -1) line 1654
XULDocumentImpl::AttributeChanged(XULDocumentImpl * const 0x01f966a0, nsIContent
* 0x0275e570, nsIAtom * 0x01422700, int -1) line 2155
RDFElementImpl::SetAttribute(RDFElementImpl * const 0x0275e570, int 0, nsIAtom *
0x01422700, const nsString & {...}, int 1) line 2436
nsSplitterFrameImpl::MouseUp(nsIPresContext & {...}, nsGUIEvent * 0x0012fbe4)
line 451 + 55 bytes
nsSplitterFrame::HandleEvent(nsSplitterFrame * const 0x0214f080, nsIPresContext
& {...}, nsGUIEvent * 0x0012fbe4, nsEventStatus & nsEventStatus_eIgnore) line
441
PresShell::HandleEvent(PresShell * const 0x01c5b2c4, nsIView * 0x02798700,
nsGUIEvent * 0x0012fbe4, nsEventStatus & nsEventStatus_eIgnore) line 2019 + 38
bytes
nsView::HandleEvent(nsView * const 0x02798700, nsGUIEvent * 0x0012fbe4, unsigned
int 28, nsEventStatus & nsEventStatus_eIgnore, int & 0) line 828
nsViewManager::DispatchEvent(nsViewManager * const 0x01c5bed0, nsGUIEvent *
0x0012fbe4, nsEventStatus & nsEventStatus_eIgnore) line 1647
HandleEvent(nsGUIEvent * 0x0012fbe4) line 63
nsWindow::DispatchEvent(nsWindow * const 0x01c5fa84, nsGUIEvent * 0x0012fbe4,
nsEventStatus & nsEventStatus_eIgnore) line 332 + 10 bytes
nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012fbe4) line 353
nsWindow::DispatchMouseEvent(unsigned int 301, nsPoint * 0x00000000) line 3160 +
21 bytes
ChildWindow::DispatchMouseEvent(unsigned int 301, nsPoint * 0x00000000) line
3378
nsWindow::ProcessMessage(unsigned int 514, unsigned int 0, long 22872281, long *
0x0012fe04) line 2394 + 24 bytes
nsWindow::WindowProc(HWND__ * 0x01a51048, unsigned int 514, unsigned int 0, long
22872281) line 401 + 27 bytes
I don't have a recent enough build right now to see this, but nothing in the
table code has changed to cause this all of a sudden.
Assignee: karnaze → hyatt
David, the cell map (of the offending table) correctly thinks there is one
column, but the table frame's mColGroups has no first child. To put mColGroups
in sink with the cell map, you need to call nsTableFrame::EnsureColumns (and
then InvalidateColumnCache if it returns that columns were created).
nsTreeRowGroupFrame::GetFirstFrameForReflow called DidAppendRow but not
EnsureColumns. In the table code, whenever DidAppendRow gets called,
EnsureColumns (and possibly InvalidateColumneCache) does get called. Below is a
little of the stack showing DidAppendRow being called.

nsCellMap::AppendCell(nsTableCellFrame * 0x03221480, int 0) line 208
nsTableFrame::AddCellToTable(nsTableCellFrame * 0x03221480, int 0) line 906
nsTableRowFrame::InitChildrenWithIndex(nsTableRowFrame * const 0x03220140, int
0) line 261 + 22 bytes
nsTableRowFrame::InitChildren(nsTableRowFrame * const 0x03220140) line 289
nsTableRowGroupFrame::DidAppendRow(nsTableRowGroupFrame * const 0x032208f0,
nsTableRowFrame * 0x03220140) line 1341 + 15 bytes
nsTreeRowGroupFrame::GetFirstFrameForReflow(nsIPresContext & {...}) line 924
*** Bug 14441 has been marked as a duplicate of this bug. ***
My hands have deteriorated to the point where I can no longer type.  I need
help.  If you think you can fix this bug on your own, please take it away from
me.  If you'd like to volunteer to be my hands for a specific bug, then I'll be
happy to come up to your cube and sit with you and fix the bug (assuming you
have the patience for that).
*** Bug 14607 has been marked as a duplicate of this bug. ***
*** Bug 14890 has been marked as a duplicate of this bug. ***
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → DUPLICATE
*** This bug has been marked as a duplicate of 12886 ***
Status: RESOLVED → VERIFIED
Marking as verified duplicate of 12886.
You need to log in before you can comment on or make changes to this bug.