Closed Bug 3169 Opened 26 years ago Closed 26 years ago

[PP] "bad continuation" crash inserting a line break

Categories

(Core :: Layout, defect, P1)

x86
Linux
defect

Tracking

()

VERIFIED DUPLICATE of bug 3161

People

(Reporter: akkzilla, Assigned: buster)

Details

Using Steve's recently checked in InsertBreak code, I start up viewer, invoke editor mode, click somewhere to set the caret, and hit enter. Linux dies on an assert at nsBlockFrame::RemoveChild line 3751 (though it doesn't print the assert message, have to use gdb to find out it's an assert) when it tries to reflow after PresShell::ContentInserted. Steve says Windows doesn't hit the assert. Long (though still edited) stack trace: #0 0x40cd3811 in __kill () #1 0x40cd363f in raise (sig=6) at ../sysdeps/posix/raise.c:27 #2 0x40cd484f in abort () at ../sysdeps/generic/abort.c:83 #3 0x409b9d66 in nsDebug::Abort (aFile=0x4048cbf9 "nsBlockFrame.cpp", aLine=3751) at nsDebug.cpp:85 #4 0x409b9dce in nsDebug::Break (aFile=0x4048cbf9 "nsBlockFrame.cpp", aLine=3751) at nsDebug.cpp:100 #5 0x409b9f11 in nsDebug::Assertion (aStr=0x4048d4cc "bad continuation", aExpr=0x4048d4b1 "child == line->mFirstChild", aFile=0x4048cbf9 "nsBlockFrame.cpp", aLine=3751) at nsDebug.cpp:132 #6 0x402d65e7 in nsBlockFrame::RemoveChild (this=0x81f73d0, aLines=0x81fb938, aChild=0x821c2a8) at nsBlockFrame.cpp:3751 #7 0x402d63eb in nsBlockFrame::DeleteChildsNextInFlow (this=0x81f73d0, aPresContext=@0x818bd20, aChild=0x81f7670) at nsBlockFrame.cpp:3701 #8 0x402f5d64 in nsInlineReflow::ReflowFrame (this=0xbfffbf58, aIsAdjacentWithTop=1, aMetrics=@0xbfffbe2c, aStatus=@0xbfffbe98) at nsInlineReflow.cpp:485 #9 0x402f5742 in nsInlineReflow::ReflowFrame (this=0xbfffbf58, aFrame=0x81f7670, aIsAdjacentWithTop=1, aReflowStatus=@0xbfffbe98) at nsInlineReflow.cpp:270 #10 0x402d3964 in nsBlockFrame::ReflowInlineFrame (this=0x81f73d0, aState=@0xbfffc570, aLine=0x81fb938, aFrame=0x81f7670, aKeepLineGoing=0xbfffbed8) at nsBlockFrame.cpp:2408 #11 0x402d243a in nsBlockFrame::ReflowLine (this=0x81f73d0, aState=@0xbfffc570, aLine=0x81fb938, aKeepReflowGoing=0xbfffbf24) at nsBlockFrame.cpp:1711 #12 0x402d1c99 in nsBlockFrame::ReflowDirtyLines (this=0x81f73d0, aState=@0xbfffc570) at nsBlockFrame.cpp:1466 #13 0x402d0c45 in nsBlockFrame::Reflow (this=0x81f73d0, aPresContext=@0x818bd20, aMetrics=@0xbfffca74, aReflowState=@0xbfffc908, aStatus=@0xbfffca24) at nsBlockFrame.cpp:915 #14 0x402d8e96 in nsBlockReflowContext::ReflowBlock (this=0xbfffca30, aFrame=0x81f73d0, aSpace=@0xbfffcabc, aIsAdjacentWithTop=0, aComputedOffsets=@0xbfffca14, aFrameReflowStatus=@0xbfffca24) at nsBlockReflowContext.cpp:192 #15 0x402d33bc in nsBlockFrame::ReflowBlockFrame (this=0x81e68b8, aState=@0xbfffd1b4, aLine=0x8218518, aKeepReflowGoing=0xbfffcb68) at nsBlockFrame.cpp:2259 #16 0x402d233f in nsBlockFrame::ReflowLine (this=0x81e68b8, aState=@0xbfffd1b4, aLine=0x8218518, aKeepReflowGoing=0xbfffcb68) at nsBlockFrame.cpp:1677 #17 0x402d1c99 in nsBlockFrame::ReflowDirtyLines (this=0x81e68b8, aState=@0xbfffd1b4) at nsBlockFrame.cpp:1466 #18 0x402d0c45 in nsBlockFrame::Reflow (this=0x81e68b8, aPresContext=@0x818bd20, aMetrics=@0xbfffd6b8, aReflowState=@0xbfffd54c, aStatus=@0xbfffd668) at nsBlockFrame.cpp:915 #19 0x402d8e96 in nsBlockReflowContext::ReflowBlock (this=0xbfffd674, aFrame=0x81e68b8, aSpace=@0xbfffd700, aIsAdjacentWithTop=1, aComputedOffsets=@0xbfffd658, aFrameReflowStatus=@0xbfffd668) at nsBlockReflowContext.cpp:192 #20 0x402d33bc in nsBlockFrame::ReflowBlockFrame (this=0x81e65b0, aState=@0xbfffddf8, aLine=0x81e6b80, aKeepReflowGoing=0xbfffd7ac) at nsBlockFrame.cpp:2259 #21 0x402d233f in nsBlockFrame::ReflowLine (this=0x81e65b0, aState=@0xbfffddf8, aLine=0x81e6b80, aKeepReflowGoing=0xbfffd7ac) at nsBlockFrame.cpp:1677 #22 0x402d1c99 in nsBlockFrame::ReflowDirtyLines (this=0x81e65b0, aState=@0xbfffddf8) at nsBlockFrame.cpp:1466 #23 0x402d0c45 in nsBlockFrame::Reflow (this=0x81e65b0, aPresContext=@0x818bd20, aMetrics=@0xbfffe2e4, aReflowState=@0xbfffe18c, aStatus=@0xbfffe67c) at nsBlockFrame.cpp:915 #24 0x402ce18b in nsAreaFrame::Reflow (this=0x81e65b0, aPresContext=@0x818bd20, aDesiredSize=@0xbfffe2e4, aReflowState=@0xbfffe27c, aStatus=@0xbfffe67c) at nsAreaFrame.cpp:502 #25 0x402dbdcf in nsContainerFrame::ReflowChild (this=0x81e6078, aKidFrame=0x81e65b0, aPresContext=@0x818bd20, aDesiredSize=@0xbfffe2e4, aReflowState=@0xbfffe27c, aStatus=@0xbfffe67c) at nsContainerFrame.cpp:364 #26 0x402e8c18 in RootFrame::Reflow (this=0x81e6078, aPresContext=@0x818bd20, aDesiredSize=@0xbfffe4d0, aReflowState=@0xbfffe418, aStatus=@0xbfffe67c) at nsHTMLFrame.cpp:250 #27 0x402dbdcf in nsContainerFrame::ReflowChild (this=0x81d95d0, aKidFrame=0x81e6078, aPresContext=@0x818bd20, aDesiredSize=@0xbfffe4d0, aReflowState=@0xbfffe418, aStatus=@0xbfffe67c) at nsContainerFrame.cpp:364 #28 0x4030369b in nsScrollFrame::Reflow (this=0x81d95d0, aPresContext=@0x818bd20, aDesiredSize=@0xbfffe5f8, aReflowState=@0xbfffe588, aStatus=@0xbfffe67c) at nsScrollFrame.cpp:349 #29 0x402dbdcf in nsContainerFrame::ReflowChild (this=0x81e32e0, aKidFrame=0x81d95d0, aPresContext=@0x818bd20, aDesiredSize=@0xbfffe5f8, aReflowState=@0xbfffe588, aStatus=@0xbfffe67c) at nsContainerFrame.cpp:364 #30 0x4030ca1e in ViewportFrame::Reflow (this=0x81e32e0, aPresContext=@0x818bd20, aDesiredSize=@0xbfffe730, aReflowState=@0xbfffe680, aStatus=@0xbfffe67c) at nsViewportFrame.cpp:436 #31 0x402e9963 in nsHTMLReflowCommand::Dispatch (this=0x81ec0b8, aPresContext=@0x818bd20, aDesiredSize=@0xbfffe730, aMaxSize=@0xbfffe720, aRendContext=@0x8238c20) at nsHTMLReflowCommand.cpp:164 #32 0x402ff2c8 in PresShell::ProcessReflowCommands (this=0x8209570) at nsPresShell.cpp:1116 #33 0x402fda9b in PresShell::ExitReflowLock (this=0x8209570) at nsPresShell.cpp:595 #34 0x402ffedf in PresShell::ContentInserted (this=0x8209570, aDocument=0x81af840, aContainer=0x81eb414, aChild=0x8238ae4, aIndexInContainer=0) at nsPresShell.cpp:1409 #35 0x4029d428 in nsDocument::ContentInserted (this=0x81af840, aContainer=0x81eb414, aChild=0x8238ae4, aIndexInContainer=0) at nsDocument.cpp:1187 #36 0x4039f346 in nsHTMLDocument::ContentInserted (this=0x81af840, aContainer=0x81eb414, aChild=0x8238ae4, aIndexInContainer=0) at nsHTMLDocument.cpp:686 #37 0x40313a70 in nsGenericHTMLContainerElement::InsertChildAt ( this=0x81eb41c, aKid=0x8238ae4, aIndex=0, aNotify=1) at nsGenericHTMLElement.cpp:2516 #38 0x40312f3f in nsGenericHTMLContainerElement::InsertBefore (this=0x81eb41c, aNewChild=0x8238ad8, aRefChild=0x81eb450, aReturn=0xbfffe930) at nsGenericHTMLElement.cpp:2262 #39 0x403679f2 in nsHTMLParagraphElement::InsertBefore (this=0x81eb408, aNewChild=0x8238ad8, aRefChild=0x81eb450, aReturn=0xbfffe930) at nsHTMLParagraphElement.cpp:48 #40 0x40de96a1 in nsEditor::SplitNodeImpl (this=0x81df758, aExistingRightNode=0x81eb450, aOffset=35, aNewLeftNode=0x8238ad8, aParent=0x81eb408) at nsEditor.cpp:1315 #41 0x40df4863 in SplitElementTxn::Do (this=0x8237f98) at SplitElementTxn.cpp:62
Status: NEW → RESOLVED
Closed: 26 years ago
Resolution: --- → DUPLICATE
Kin already filed a bug on this; marking it as a dup. *** This bug has been marked as a duplicate of 3161 ***
Status: RESOLVED → VERIFIED
Verified duplicate
You need to log in before you can comment on or make changes to this bug.