Closed Bug 14165 Opened 25 years ago Closed 25 years ago

crash reflowing a reloaded table

Categories

(Core :: Layout, defect, P3)

x86
Windows NT
defect

Tracking

()

VERIFIED DUPLICATE of bug 14157

People

(Reporter: waterson, Assigned: troy)

Details

Okay, the browser was just hanging out in the background and all of a sudden it crashed. My guess is that it was reloading the tinderbox sidebar panel, but who knows. Anyway, a quick inspection of the code in nsTextFrame::Reflow() shows that a frame is pointing to a content node that is no longer in the document (it calls mContent->GetDocument(), but then never checks to see if it actually got a document). Now _why_ this would happen is beyond me. The simple hack would be to check the result, assert and bail if it's null. stack below: NTDLL! 77f76274() nsDebug::PreCondition(const char * 0x0162fa18 ??_C@_0DJ@KMGL@You?5can?8t?5dereference?5a?5NULL?5nsC@, const char * 0x0162fa5c ??_C@_0N@NHHF@mRawPtr?5?$CB?$DN?50?$AA@, const char * 0x0162fa6c ??_C@_0BO@LIAM@?4?4?2?4?4?2dist?2include?2nsCOMPtr?4h?$AA@, int 588) line 163 + 13 bytes nsCOMPtr<nsIDocument>::operator->() line 588 + 34 bytes nsTextFrame::Reflow(nsTextFrame * const 0x03380094, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 2382 + 35 bytes nsLineLayout::ReflowFrame(nsIFrame * 0x03380090, nsIFrame * * 0x0012b628, unsigned int & 0) line 909 nsInlineFrame::ReflowInlineFrame(nsIPresContext * 0x02bb2350, const nsHTMLReflowState & {...}, nsInlineFrame::InlineReflowState & {...}, nsIFrame * 0x03380090, unsigned int & 0) line 1565 + 20 bytes nsInlineFrame::ReflowInlineFrames(nsIPresContext * 0x02bb2350, const nsHTMLReflowState & {...}, nsInlineFrame::InlineReflowState & {...}, nsHTMLReflowMetrics & {...}, unsigned int & 0) line 1400 + 28 bytes nsInlineFrame::Reflow(nsInlineFrame * const 0x03380114, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 1316 + 31 bytes nsLineLayout::ReflowFrame(nsIFrame * 0x03380110, nsIFrame * * 0x0012b838, unsigned int & 0) line 909 nsInlineFrame::ReflowInlineFrame(nsIPresContext * 0x02bb2350, const nsHTMLReflowState & {...}, nsInlineFrame::InlineReflowState & {...}, nsIFrame * 0x03380110, unsigned int & 0) line 1565 + 20 bytes nsInlineFrame::ReflowInlineFrames(nsIPresContext * 0x02bb2350, const nsHTMLReflowState & {...}, nsInlineFrame::InlineReflowState & {...}, nsHTMLReflowMetrics & {...}, unsigned int & 0) line 1400 + 28 bytes nsInlineFrame::Reflow(nsInlineFrame * const 0x02ab9f34, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 1316 + 31 bytes nsLineLayout::ReflowFrame(nsIFrame * 0x02ab9f30, nsIFrame * * 0x0012c3c8, unsigned int & 0) line 909 nsBlockFrame::ReflowInlineFrame(nsBlockReflowState & {...}, nsLineLayout & {...}, nsLineBox * 0x02ab9b00, nsIFrame * 0x02ab9f30, unsigned char * 0x0012ba00) line 3377 + 23 bytes nsBlockFrame::DoReflowInlineFrames(nsBlockReflowState & {...}, nsLineLayout & {...}, nsLineBox * 0x02ab9b00, int * 0x0012c2c8, unsigned char * 0x0012c1a0) line 3267 + 28 bytes nsBlockFrame::DoReflowInlineFramesAuto(nsBlockReflowState & {...}, nsLineBox * 0x02ab9b00, int * 0x0012c2c8, unsigned char * 0x0012c1a0) line 3214 + 34 bytes nsBlockFrame::ReflowInlineFrames(nsBlockReflowState & {...}, nsLineBox * 0x02ab9b00, int * 0x0012c2c8) line 3162 + 24 bytes nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineBox * 0x02ab9b00, int * 0x0012c2c8, int 1) line 2425 + 20 bytes nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 2170 + 24 bytes nsBlockFrame::Reflow(nsBlockFrame * const 0x02abb124, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 1416 + 18 bytes nsAreaFrame::Reflow(nsAreaFrame * const 0x02abb124, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 400 + 25 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x02abb120, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 439 + 28 bytes nsTableCellFrame::Reflow(nsTableCellFrame * const 0x02abb1c4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 604 nsContainerFrame::ReflowChild(nsIFrame * 0x02abb1c0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 439 + 28 bytes nsTableRowFrame::IR_TargetIsChild(nsTableRowFrame * const 0x031378a0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, RowReflowState & {...}, unsigned int & 0, nsIFrame * 0x02abb1c0) line 1316 + 34 bytes nsTableRowFrame::IncrementalReflow(nsTableRowFrame * const 0x031378a0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, RowReflowState & {...}, unsigned int & 0) line 1194 + 35 bytes nsTableRowFrame::Reflow(nsTableRowFrame * const 0x031378a4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 1477 + 35 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x031378a0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 439 + 28 bytes nsTableRowGroupFrame::IR_TargetIsChild(nsTableRowGroupFrame * const 0x03136170, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, RowGroupReflowState & {...}, unsigned int & 0, nsIFrame * 0x031378a0) line 1494 + 34 bytes nsTableRowGroupFrame::IncrementalReflow(nsTableRowGroupFrame * const 0x03136170, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, RowGroupReflowState & {...}, unsigned int & 0) line 1107 + 35 bytes nsTableRowGroupFrame::Reflow(nsTableRowGroupFrame * const 0x03136174, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 1016 + 35 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x03136170, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 439 + 28 bytes nsTableFrame::IR_TargetIsChild(nsTableFrame * const 0x03129280, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, InnerTableReflowState & {...}, unsigned int & 0, nsIFrame * 0x03136170) line 3315 + 34 bytes nsTableFrame::IncrementalReflow(nsTableFrame * const 0x03129280, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 3147 + 41 bytes nsTableFrame::Reflow(nsTableFrame * const 0x03129284, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 2199 + 35 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x03129280, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 439 + 28 bytes nsTableOuterFrame::IR_InnerTableReflow(nsTableOuterFrame * const 0x03129380, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, OuterTableReflowState & {...}, unsigned int & 0) line 573 + 34 bytes nsTableOuterFrame::IR_TargetIsInnerTableFrame(nsTableOuterFrame * const 0x03129380, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, OuterTableReflowState & {...}, unsigned int & 0) line 368 + 31 bytes nsTableOuterFrame::IR_TargetIsChild(nsTableOuterFrame * const 0x03129380, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, OuterTableReflowState & {...}, unsigned int & 0, nsIFrame * 0x03129280) line 341 + 31 bytes nsTableOuterFrame::IncrementalReflow(nsTableOuterFrame * const 0x03129380, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, OuterTableReflowState & {...}, unsigned int & 0) line 324 + 35 bytes nsTableOuterFrame::Reflow(nsTableOuterFrame * const 0x03129384, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 857 + 35 bytes nsBlockReflowContext::ReflowBlock(nsIFrame * 0x03129380, const nsRect & {x=0 y=0 width=5617 height=1073741824}, int 0, int 0, int 1, nsMargin & {top=0 right=0 bottom=0 left=0}, unsigned int & 0) line 229 + 42 bytes nsBlockFrame::ReflowBlockFrame(nsBlockReflowState & {...}, nsLineBox * 0x02abb9c0, int * 0x0012d908) line 2951 + 59 bytes nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineBox * 0x02abb9c0, int * 0x0012d908, int 1) line 2376 + 20 bytes nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 2170 + 24 bytes nsBlockFrame::Reflow(nsBlockFrame * const 0x0312c0e4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 1416 + 18 bytes nsAreaFrame::Reflow(nsAreaFrame * const 0x0312c0e4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 400 + 25 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x0312c0e0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 439 + 28 bytes nsTableCellFrame::Reflow(nsTableCellFrame * const 0x0312c184, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 604 nsContainerFrame::ReflowChild(nsIFrame * 0x0312c180, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 439 + 28 bytes nsTableRowFrame::IR_TargetIsChild(nsTableRowFrame * const 0x0312b350, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, RowReflowState & {...}, unsigned int & 0, nsIFrame * 0x0312c180) line 1316 + 34 bytes nsTableRowFrame::IncrementalReflow(nsTableRowFrame * const 0x0312b350, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, RowReflowState & {...}, unsigned int & 0) line 1194 + 35 bytes nsTableRowFrame::Reflow(nsTableRowFrame * const 0x0312b354, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 1477 + 35 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x0312b350, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 439 + 28 bytes nsTableRowGroupFrame::IR_TargetIsChild(nsTableRowGroupFrame * const 0x0312a8d0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, RowGroupReflowState & {...}, unsigned int & 0, nsIFrame * 0x0312b350) line 1494 + 34 bytes nsTableRowGroupFrame::IncrementalReflow(nsTableRowGroupFrame * const 0x0312a8d0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, RowGroupReflowState & {...}, unsigned int & 0) line 1107 + 35 bytes nsTableRowGroupFrame::Reflow(nsTableRowGroupFrame * const 0x0312a8d4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 1016 + 35 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x0312a8d0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 439 + 28 bytes nsTableFrame::IR_TargetIsChild(nsTableFrame * const 0x0312af20, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, InnerTableReflowState & {...}, unsigned int & 0, nsIFrame * 0x0312a8d0) line 3315 + 34 bytes nsTableFrame::IncrementalReflow(nsTableFrame * const 0x0312af20, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 3147 + 41 bytes nsTableFrame::Reflow(nsTableFrame * const 0x0312af24, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 2199 + 35 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x0312af20, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 439 + 28 bytes nsTableOuterFrame::IR_InnerTableReflow(nsTableOuterFrame * const 0x031280c0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, OuterTableReflowState & {...}, unsigned int & 0) line 573 + 34 bytes nsTableOuterFrame::IR_TargetIsInnerTableFrame(nsTableOuterFrame * const 0x031280c0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, OuterTableReflowState & {...}, unsigned int & 0) line 368 + 31 bytes nsTableOuterFrame::IR_TargetIsChild(nsTableOuterFrame * const 0x031280c0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, OuterTableReflowState & {...}, unsigned int & 0, nsIFrame * 0x0312af20) line 341 + 31 bytes nsTableOuterFrame::IncrementalReflow(nsTableOuterFrame * const 0x031280c0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, OuterTableReflowState & {...}, unsigned int & 0) line 324 + 35 bytes nsTableOuterFrame::Reflow(nsTableOuterFrame * const 0x031280c4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 857 + 35 bytes nsBlockReflowContext::ReflowBlock(nsIFrame * 0x031280c0, const nsRect & {x=0 y=615 width=11775 height=1073741824}, int 1, int 0, int 0, nsMargin & {top=0 right=0 bottom=0 left=0}, unsigned int & 0) line 229 + 42 bytes nsBlockFrame::ReflowBlockFrame(nsBlockReflowState & {...}, nsLineBox * 0x02a9fc60, int * 0x0012ef48) line 2951 + 59 bytes nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineBox * 0x02a9fc60, int * 0x0012ef48, int 1) line 2376 + 20 bytes nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 2170 + 24 bytes nsBlockFrame::Reflow(nsBlockFrame * const 0x03146344, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 1416 + 18 bytes nsBlockReflowContext::ReflowBlock(nsIFrame * 0x03146340, const nsRect & {x=0 y=0 width=12015 height=1073741824}, int 1, int 0, int 1, nsMargin & {top=0 right=0 bottom=0 left=0}, unsigned int & 0) line 229 + 42 bytes nsBlockFrame::ReflowBlockFrame(nsBlockReflowState & {...}, nsLineBox * 0x02a9fb80, int * 0x0012f4e0) line 2951 + 59 bytes nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineBox * 0x02a9fb80, int * 0x0012f4e0, int 1) line 2376 + 20 bytes nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 2170 + 24 bytes nsBlockFrame::Reflow(nsBlockFrame * const 0x031468b4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 1416 + 18 bytes nsAreaFrame::Reflow(nsAreaFrame * const 0x031468b4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 400 + 25 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x031468b0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 439 + 28 bytes RootFrame::Reflow(RootFrame * const 0x02bc9044, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 330 nsContainerFrame::ReflowChild(nsIFrame * 0x02bc9040, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 439 + 28 bytes nsScrollFrame::Reflow(nsScrollFrame * const 0x02bc7314, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 606 nsContainerFrame::ReflowChild(nsIFrame * 0x02bc7310, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 439 + 28 bytes ViewportFrame::Reflow(ViewportFrame * const 0x02bc7e14, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 516 nsHTMLReflowCommand::Dispatch(nsHTMLReflowCommand * const 0x03380030, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsSize & {width=12255 height=7860}, nsIRenderingContext & {...}) line 141 PresShell::ProcessReflowCommands(PresShell * const 0x02bb8550) line 1261 FrameManager::HandlePLEvent(CantRenderReplacedElementEvent * 0x03380520) line 505 PL_HandleEvent(PLEvent * 0x03380520) line 509 + 10 bytes PL_ProcessPendingEvents(PLEventQueue * 0x00aa4f90) line 470 + 9 bytes _md_EventReceiverProc(HWND__ * 0x07cf0624, unsigned int 49343, unsigned int 0, long 11161488) line 938 + 9 bytes USER32! 77e71268() 00aa4f90()
Status: NEW → RESOLVED
Closed: 25 years ago
Resolution: --- → DUPLICATE
Well, it wasn't just hanging out in the background, it was procesing notifications from the image library that said an image couldn't be loaded. That prompted us to destroy the image frame and create some new frames *** This bug has been marked as a duplicate of 14157 ***
Status: RESOLVED → VERIFIED
Agreed. This is a duplicate of 14157.
You need to log in before you can comment on or make changes to this bug.