Closed Bug 46943 Opened 24 years ago Closed 24 years ago

Assertion Failures during layout

Categories

(Core :: Layout, defect, P3)

x86
Windows NT
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: morse, Assigned: clayton)

Details

The URL indicated above will give the following assertion failure nine times 
during layout.  This is a recent regression -- using a build from July 25 I did 
not get the failures whereas using a build from July 28 I did.

NTDLL! 77f76274()
nsDebug::Assertion(const char * 0x01db28b4, const char * 0x01db2894, const char 
* 0x01db2860, int 2771) line 246 + 13 bytes
nsLineLayout::ForgetWordFrame(nsIFrame * 0x029a49c8) line 2771 + 45 bytes
nsTextFrame::MeasureText(nsIPresContext * 0x03492f00, const nsHTMLReflowState & 
{...}, nsTextTransformer & {...}, nsILineBreaker * 0x0300bdf0, 
nsTextFrame::TextStyle & {...}, nsTextFrame::TextReflowData & {...}) line 3947
nsTextFrame::Reflow(nsTextFrame * const 0x029a49c8, nsIPresContext * 0x03492f00, 
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) 
line 4247 + 43 bytes
nsLineLayout::ReflowFrame(nsIFrame * 0x029a49c8, nsIFrame * * 0x0012b514, 
unsigned int & 0, nsHTMLReflowMetrics * 0x00000000, int & 0) line 937
nsBlockFrame::ReflowInlineFrame(nsBlockReflowState & {...}, nsLineLayout & 
{...}, nsLineBox * 0x029a4a04, nsIFrame * 0x029a49c8, unsigned char * 
0x0012aa8c) line 4336 + 29 bytes
nsBlockFrame::DoReflowInlineFrames(nsBlockReflowState & {...}, nsLineLayout & 
{...}, nsLineBox * 0x029a4a04, int * 0x0012b108, unsigned char * 0x0012af50, int 
0, int 0) line 4220 + 28 bytes
nsBlockFrame::DoReflowInlineFramesAuto(nsBlockReflowState & {...}, nsLineBox * 
0x029a4a04, int * 0x0012b108, unsigned char * 0x0012af50, int 0, int 0) line 
4156 + 42 bytes
nsBlockFrame::ReflowInlineFrames(nsBlockReflowState & {...}, nsLineBox * 
0x029a4a04, int * 0x0012b108, int 0, int 0) line 4101 + 32 bytes
nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineBox * 0x029a4a04, int 
* 0x0012b108, int 0) line 3236 + 29 bytes
nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 2925 + 27 bytes
nsBlockFrame::Reflow(nsBlockFrame * const 0x029a47ec, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, 
unsigned int & 0) line 1729 + 15 bytes
nsBlockReflowContext::DoReflowBlock(nsHTMLReflowState & {...}, nsReflowReason 
eReflowReason_Initial, nsIFrame * 0x029a47ec, const nsRect & {...}, int 1, int 
240, int 0, nsMargin & {...}, unsigned int & 0) line 506 + 36 bytes
nsBlockReflowContext::ReflowBlock(nsIFrame * 0x029a47ec, const nsRect & {...}, 
int 1, int 240, int 0, nsMargin & {...}, unsigned int & 0) line 331 + 50 bytes
nsBlockFrame::ReflowBlockFrame(nsBlockReflowState & {...}, nsLineBox * 
0x03a73e7c, int * 0x0012bc70) line 3854 + 56 bytes
nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineBox * 0x03a73e7c, int 
* 0x0012bc70, int 0) line 3118 + 23 bytes
nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 2925 + 27 bytes
nsBlockFrame::Reflow(nsBlockFrame * const 0x028a81f0, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, 
unsigned int & 0) line 1729 + 15 bytes
nsContainerFrame::ReflowChild(nsIFrame * 0x028a81f0, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 
45, int 45, unsigned int 0, unsigned int & 0) line 693 + 31 bytes
nsTableCellFrame::Reflow(nsTableCellFrame * const 0x028a8190, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, 
unsigned int & 0) line 808
nsContainerFrame::ReflowChild(nsIFrame * 0x028a8190, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 
2010, int 0, unsigned int 0, unsigned int & 0) line 693 + 31 bytes
nsTableRowFrame::InitialReflow(nsTableRowFrame * const 0x028a351c, 
nsIPresContext * 0x03492f00, nsHTMLReflowMetrics & {...}, RowReflowState & 
{...}, unsigned int & 0, nsTableCellFrame * 0x00000000, int 1) line 1108 + 42 
bytes
nsTableRowFrame::Reflow(nsTableRowFrame * const 0x028a351c, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, 
unsigned int & 0) line 1517 + 35 bytes
nsContainerFrame::ReflowChild(nsIFrame * 0x028a351c, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 0, 
int 0, unsigned int 0, unsigned int & 0) line 693 + 31 bytes
nsTableRowGroupFrame::ReflowMappedChildren(nsTableRowGroupFrame * const 
0x028a34d8, nsIPresContext * 0x03492f00, nsHTMLReflowMetrics & {...}, 
RowGroupReflowState & {...}, unsigned int & 0, nsTableRowFrame * 0x00000000, 
nsReflowReason eReflowReason_Initial, int 1, int 0) line 413 + 45 bytes
nsTableRowGroupFrame::Reflow(nsTableRowGroupFrame * const 0x028a34d8, 
nsIPresContext * 0x03492f00, nsHTMLReflowMetrics & {...}, const 
nsHTMLReflowState & {...}, unsigned int & 0) line 1082 + 38 bytes
nsContainerFrame::ReflowChild(nsIFrame * 0x028a34d8, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 0, 
int 0, unsigned int 0, unsigned int & 0) line 693 + 31 bytes
nsTableFrame::ResizeReflowPass1(nsTableFrame * const 0x028a3470, nsIPresContext 
* 0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, 
unsigned int & 0, nsTableRowGroupFrame * 0x00000000, nsReflowReason 
eReflowReason_Initial, int 1) line 1775
nsTableFrame::Reflow(nsTableFrame * const 0x028a3470, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, 
unsigned int & 0) line 1573 + 39 bytes
nsContainerFrame::ReflowChild(nsIFrame * 0x028a3470, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 0, 
int 0, unsigned int 3, unsigned int & 0) line 693 + 31 bytes
nsTableOuterFrame::OuterReflowChild(nsTableOuterFrame * const 0x028a341c, 
nsIPresContext * 0x03492f00, nsIFrame * 0x028a3470, const nsHTMLReflowState & 
{...}, nsHTMLReflowMetrics & {...}, int * 0x00000000, nsSize & {...}, nsMargin & 
{...}, nsMargin & {...}, nsReflowReason eReflowReason_Initial, unsigned int & 0) 
line 885 + 47 bytes
nsTableOuterFrame::Reflow(nsTableOuterFrame * const 0x028a341c, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, 
unsigned int & 0) line 1419 + 59 bytes
nsBlockReflowContext::DoReflowBlock(nsHTMLReflowState & {...}, nsReflowReason 
eReflowReason_Initial, nsIFrame * 0x028a341c, const nsRect & {...}, int 1, int 
0, int 0, nsMargin & {...}, unsigned int & 0) line 506 + 36 bytes
nsBlockReflowContext::ReflowBlock(nsIFrame * 0x028a341c, const nsRect & {...}, 
int 1, int 0, int 0, nsMargin & {...}, unsigned int & 0) line 331 + 50 bytes
nsBlockFrame::ReflowBlockFrame(nsBlockReflowState & {...}, nsLineBox * 
0x03a74e1c, int * 0x0012d678) line 3854 + 56 bytes
nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineBox * 0x03a74e1c, int 
* 0x0012d678, int 1) line 3118 + 23 bytes
nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 2925 + 27 bytes
nsBlockFrame::Reflow(nsBlockFrame * const 0x02947ea8, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, 
unsigned int & 0) line 1729 + 15 bytes
nsBlockReflowContext::DoReflowBlock(nsHTMLReflowState & {...}, nsReflowReason 
eReflowReason_Incremental, nsIFrame * 0x02947ea8, const nsRect & {...}, int 1, 
int 0, int 1, nsMargin & {...}, unsigned int & 0) line 506 + 36 bytes
nsBlockReflowContext::ReflowBlock(nsIFrame * 0x02947ea8, const nsRect & {...}, 
int 1, int 0, int 1, nsMargin & {...}, unsigned int & 0) line 331 + 50 bytes
nsBlockFrame::ReflowBlockFrame(nsBlockReflowState & {...}, nsLineBox * 
0x02947f1c, int * 0x0012e1e0) line 3854 + 56 bytes
nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineBox * 0x02947f1c, int 
* 0x0012e1e0, int 1) line 3118 + 23 bytes
nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 2925 + 27 bytes
nsBlockFrame::Reflow(nsBlockFrame * const 0x02947e20, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, 
unsigned int & 0) line 1729 + 15 bytes
nsContainerFrame::ReflowChild(nsIFrame * 0x02947e20, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 0, 
int 0, unsigned int 0, unsigned int & 0) line 693 + 31 bytes
CanvasFrame::Reflow(CanvasFrame * const 0x0294714c, nsIPresContext * 0x03492f00, 
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) 
line 306
nsBoxToBlockAdaptor::Reflow(nsBoxLayoutState & {...}, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, 
unsigned int & 0, int 0, int 0, int 6915, int 4875, int 1) line 813
nsBoxToBlockAdaptor::DoLayout(nsBoxToBlockAdaptor * const 0x02947db8, 
nsBoxLayoutState & {...}) line 484 + 52 bytes
nsBox::Layout(nsBox * const 0x02947db8, nsBoxLayoutState & {...}) line 1002
nsScrollBoxFrame::DoLayout(nsScrollBoxFrame * const 0x02947264, nsBoxLayoutState 
& {...}) line 377
nsBox::Layout(nsBox * const 0x02947264, nsBoxLayoutState & {...}) line 1002
nsContainerBox::LayoutChildAt(nsBoxLayoutState & {...}, nsIBox * 0x02947264, 
const nsRect & {...}) line 593 + 16 bytes
nsGfxScrollFrameInner::LayoutBox(nsBoxLayoutState & {...}, nsIBox * 0x02947264, 
const nsRect & {...}) line 1009 + 17 bytes
nsGfxScrollFrameInner::Layout(nsBoxLayoutState & {...}) line 1092
nsGfxScrollFrame::DoLayout(nsGfxScrollFrame * const 0x029471c0, nsBoxLayoutState 
& {...}) line 1017 + 15 bytes
nsBox::Layout(nsBox * const 0x029471c0, nsBoxLayoutState & {...}) line 1002
nsBoxFrame::Reflow(nsBoxFrame * const 0x02947188, nsIPresContext * 0x03492f00, 
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) 
line 728
nsGfxScrollFrame::Reflow(nsGfxScrollFrame * const 0x02947188, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, 
unsigned int & 0) line 725 + 25 bytes
nsContainerFrame::ReflowChild(nsIFrame * 0x02947188, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 0, 
int 0, unsigned int 0, unsigned int & 0) line 693 + 31 bytes
ViewportFrame::Reflow(ViewportFrame * const 0x02947110, nsIPresContext * 
0x03492f00, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, 
unsigned int & 0) line 546
nsHTMLReflowCommand::Dispatch(nsHTMLReflowCommand * const 0x04a257f0, 
nsIPresContext * 0x03492f00, nsHTMLReflowMetrics & {...}, const nsSize & {...}, 
nsIRenderingContext & {...}) line 145
PresShell::ProcessReflowCommands(int 0) line 4225
PresShell::FlushPendingNotifications(PresShell * const 0x02fe2190) line 3324
PresShell::DidCauseReflow() line 4175
PresShell::ContentAppended(PresShell * const 0x02fe2198, nsIDocument * 
0x03467a10, nsIContent * 0x02fe4818, int 0) line 3427
nsDocument::ContentAppended(nsDocument * const 0x03467a10, nsIContent * 
0x02fe4818, int 0) line 1805
nsHTMLDocument::ContentAppended(nsHTMLDocument * const 0x03467a10, nsIContent * 
0x02fe4818, int 0) line 1184
HTMLContentSink::NotifyAppend(nsIContent * 0x02fe4818, int 0) line 4352
SinkContext::FlushTags(int 1) line 1990
SinkContext::DidAddContent(nsIContent * 0x0300c048, int 0) line 1286
SinkContext::CloseContainer(const nsIParserNode & {...}) line 1480
HTMLContentSink::CloseContainer(HTMLContentSink * const 0x0347e160, const 
nsIParserNode & {...}) line 3011 + 18 bytes
CNavDTD::CloseContainer(const nsIParserNode * 0x0307b1b0, nsHTMLTag 
eHTMLTag_table, int 0) line 3253 + 31 bytes
CNavDTD::CloseContainersTo(int 2, nsHTMLTag eHTMLTag_table, int 0) line 3289 + 
20 bytes
CNavDTD::CloseContainersTo(nsHTMLTag eHTMLTag_table, int 0) line 3446 + 20 bytes
CNavDTD::HandleEndToken(CToken * 0x02056710) line 1805 + 14 bytes
CNavDTD::HandleToken(CNavDTD * const 0x02fe32c0, CToken * 0x02056710, nsIParser 
* 0x0346b0d0) line 773 + 12 bytes
CNavDTD::BuildModel(CNavDTD * const 0x02fe32c0, nsIParser * 0x0346b0d0, 
nsITokenizer * 0x02fe30f0, nsITokenObserver * 0x00000000, nsIContentSink * 
0x0347e160) line 499 + 20 bytes
nsParser::BuildModel() line 1979 + 34 bytes
nsParser::ResumeParse(int 1, int 0) line 1860 + 11 bytes
nsParser::OnDataAvailable(nsParser * const 0x0346b0d8, nsIChannel * 0x03255e70, 
nsISupports * 0x00000000, nsIInputStream * 0x03254d04, unsigned int 0, unsigned 
int 4818) line 2310 + 19 bytes
nsDocumentOpenInfo::OnDataAvailable(nsDocumentOpenInfo * const 0x032552f0, 
nsIChannel * 0x03255e70, nsISupports * 0x00000000, nsIInputStream * 0x03254d04, 
unsigned int 0, unsigned int 4818) line 251 + 46 bytes
nsHTTPFinalListener::OnDataAvailable(nsHTTPFinalListener * const 0x03255680, 
nsIChannel * 0x03255e70, nsISupports * 0x00000000, nsIInputStream * 0x03254d04, 
unsigned int 0, unsigned int 4818) line 1224 + 46 bytes
InterceptStreamListener::OnDataAvailable(InterceptStreamListener * const 
0x03254d00, nsIChannel * 0x03255e70, nsISupports * 0x00000000, nsIInputStream * 
0x0326783c, unsigned int 0, unsigned int 4818) line 1176
nsHTTPServerListener::OnDataAvailable(nsHTTPServerListener * const 0x03265b00, 
nsIChannel * 0x0304d4a4, nsISupports * 0x03255e70, nsIInputStream * 0x0326783c, 
unsigned int 55272, unsigned int 4818) line 551 + 67 bytes
nsOnDataAvailableEvent::HandleEvent(nsOnDataAvailableEvent * const 0x030a1350) 
line 400 + 47 bytes
nsStreamListenerEvent::HandlePLEvent(PLEvent * 0x030a1300) line 97 + 12 bytes
PL_HandleEvent(PLEvent * 0x030a1300) line 587 + 10 bytes
PL_ProcessPendingEvents(PLEventQueue * 0x00f8d880) line 528 + 9 bytes
_md_EventReceiverProc(HWND__ * 0x0034052a, unsigned int 49416, unsigned int 0, 
long 16308352) line 1043 + 9 bytes
USER32! 77e71268()
00f
Forget the URL listed above (I'm erasing it).  Here is a simplified test case 
that will demonstrate the problem.  This will give the assertion once (previous 
url had 9 buttons in it and that's why it was giving 9 assertions).

Looks like it might have something to do with having text preceding a button.  
If I remove the text ("1" in this case), the assertion does not occur.

<html>
  <body>
    <table>
      <tr>
        <td>
          <form>
            1<input type="button" value="2">
          </form>
        </td>
      </tr>
    </table>
  </body>
</html>
And here's an even simple test case:

<html>
  <body>
    <form>
      1<input type="button" value="2">
    </form>
  </body>
</html>
With a recent build, this is no longer happening.  I suspect that the fix that 
danm checked in for bug 46979 also fixed this as well.
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.