Closed Bug 186932 Opened 22 years ago Closed 22 years ago

nsBlockFrame::PullFrameFrom calls nsFrame::Invalidate with an empty combinedArea

Categories

(Core :: Layout: Block and Inline, defect)

x86
Windows 2000
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: timeless, Unassigned)

Details

Attachments

(1 file)

cvs build from this sunday afternoon WARNING: empty damage rect: update caller to avoid fcn call overhead, file i:/build/mozilla/layout/html/base/src/nsFrame.cpp, line 2538 nsFrame::Invalidate(nsIPresContext * 0x149609d0, const nsRect & {...}, int 0) line 2539 - combinedArea {...} x 0 y 0 width 0 height 0 Invalidate(aState.mPresContext, combinedArea); nsBlockFrame::PullFrameFrom(nsBlockReflowState & {...}, nsLineBox * 0x14770668, nsLineList & {...}, nsLineList_iterator {...}, int 0, int 1, nsIFrame * & 0x00000000) line 2818 nsBlockFrame::PullFrame(nsBlockReflowState & {...}, nsLineList_iterator {...}, int 1, nsIFrame * & 0x00000000) line 2742 + 57 bytes nsBlockFrame::DoReflowInlineFrames(nsBlockReflowState & {...}, nsLineLayout & {...}, nsLineList_iterator {...}, int * 0x0012dd24, unsigned char * 0x0012dad3, int 0, int 1) line 3768 + 28 bytes nsBlockFrame::DoReflowInlineFramesAuto(nsBlockReflowState & {...}, nsLineList_iterator {...}, int * 0x0012dd24, unsigned char * 0x0012dad3, int 0, int 1) line 3640 + 46 bytes nsBlockFrame::ReflowInlineFrames(nsBlockReflowState & {...}, nsLineList_iterator {...}, int * 0x0012dd24, int 1, int 0) line 3584 + 36 bytes nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineList_iterator {...}, int * 0x0012dd24, int 1) line 2676 + 33 bytes nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 2322 + 31 bytes nsBlockFrame::Reflow(nsBlockFrame * const 0x14a75c34, nsIPresContext * 0x149609d0, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 944 + 15 bytes nsBoxToBlockAdaptor::Reflow(nsBoxLayoutState & {...}, nsIPresContext * 0x149609d0, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0, int 0, int 0, int 9644, int 1574, int 1) line 923 nsBoxToBlockAdaptor::DoLayout(nsBoxToBlockAdaptor * const 0x14a8aba4, nsBoxLayoutState & {...}) line 666 + 46 bytes nsBox::Layout(nsBox * const 0x14a8aba4, nsBoxLayoutState & {...}) line 1074 nsScrollBoxFrame::DoLayout(nsScrollBoxFrame * const 0x14a75d5c, nsBoxLayoutState & {...}) line 361 nsBox::Layout(nsBox * const 0x14a75d5c, nsBoxLayoutState & {...}) line 1074 nsContainerBox::LayoutChildAt(nsBoxLayoutState & {...}, nsIBox * 0x14a75d5c, const nsRect & {...}) line 645 + 16 bytes nsGfxScrollFrameInner::LayoutBox(nsBoxLayoutState & {...}, nsIBox * 0x14a75d5c, const nsRect & {...}) line 1164 + 17 bytes nsGfxScrollFrameInner::Layout(nsBoxLayoutState & {...}) line 1319 nsGfxScrollFrame::DoLayout(nsGfxScrollFrame * const 0x14a75cbc, nsBoxLayoutState & {...}) line 1172 + 15 bytes nsBox::Layout(nsBox * const 0x14a75cbc, nsBoxLayoutState & {...}) line 1074 nsBoxFrame::Reflow(nsBoxFrame * const 0x14a75c84, nsIPresContext * 0x149609d0, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 902 nsGfxScrollFrame::Reflow(nsGfxScrollFrame * const 0x14a75c84, nsIPresContext * 0x149609d0, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 847 + 25 bytes IncrementalReflow::Dispatch(nsIPresContext * 0x149609d0, nsHTMLReflowMetrics & {...}, const nsSize & {...}, nsIRenderingContext & {...}) line 894 PresShell::ProcessReflowCommands(int 0) line 6437 PresShell::FlushPendingNotifications(PresShell * const 0x14914950, int 0) line 5137 PresShell::EndReflowBatching(PresShell * const 0x14914950, int 1) line 5165 + 17 bytes nsEditor::EndUpdateViewBatch() line 4383 nsEditor::EndPlaceHolderTransaction(nsEditor * const 0x14a59320) line 754 nsAutoPlaceHolderBatch::~nsAutoPlaceHolderBatch() line 67 + 47 bytes nsPlaintextEditor::TypedText(nsPlaintextEditor * const 0x14a59320, const nsAString & {...}, int 0) line 575 + 37 bytes nsPlaintextEditor::HandleKeyPress(nsPlaintextEditor * const 0x14a593d0, nsIDOMKeyEvent * 0x149242a8) line 554 + 33 bytes nsTextEditorKeyListener::KeyPress(nsTextEditorKeyListener * const 0x14aa9288, nsIDOMEvent * 0x149242b0) line 308 nsEventListenerManager::HandleEvent(nsEventListenerManager * const 0x1494d608, nsIPresContext * 0x149609d0, nsEvent * 0x0012f7d8, nsIDOMEvent * * 0x0012f350, nsIDOMEventTarget * 0x14924028, unsigned int 7, nsEventStatus * 0x0012f610) line 1657 + 41 bytes nsGenericElement::HandleDOMEvent(nsGenericElement * const 0x14a27d00, nsIPresContext * 0x149609d0, nsEvent * 0x0012f7d8, nsIDOMEvent * * 0x0012f350, unsigned int 7, nsEventStatus * 0x0012f610) line 1935 nsHTMLTextAreaElement::HandleDOMEvent(nsHTMLTextAreaElement * const 0x14a27d00, nsIPresContext * 0x149609d0, nsEvent * 0x0012f7d8, nsIDOMEvent * * 0x00000000, unsigned int 1, nsEventStatus * 0x0012f610) line 742 + 29 bytes PresShell::HandleEventInternal(nsEvent * 0x0012f7d8, nsIView * 0x14afe708, unsigned int 1, nsEventStatus * 0x0012f610) line 6153 + 47 bytes PresShell::HandleEvent(PresShell * const 0x14914954, nsIView * 0x14afe708, nsGUIEvent * 0x0012f7d8, nsEventStatus * 0x0012f610, int 1, int & 1) line 6076 + 25 bytes nsViewManager::HandleEvent(nsView * 0x14afe708, nsGUIEvent * 0x0012f7d8, int 0) line 2165 nsView::HandleEvent(nsViewManager * 0x14753b10, nsGUIEvent * 0x0012f7d8, int 0) line 304 nsViewManager::DispatchEvent(nsViewManager * const 0x14753b10, nsGUIEvent * 0x0012f7d8, nsEventStatus * 0x0012f748) line 1945 + 23 bytes HandleEvent(nsGUIEvent * 0x0012f7d8) line 83 nsWindow::DispatchEvent(nsWindow * const 0x14b47914, nsGUIEvent * 0x0012f7d8, nsEventStatus & nsEventStatus_eIgnore) line 1113 + 10 bytes nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012f7d8) line 1134 nsWindow::DispatchKeyEvent(unsigned int 131, unsigned short 46, unsigned int 0, long 0) line 3009 + 15 bytes nsWindow::OnChar(unsigned int 46, unsigned int 0, unsigned char 0) line 3204 nsWindow::ProcessMessage(unsigned int 258, unsigned int 46, long 3407873, long * 0x0012fc48) line 3914 + 38 bytes nsWindow::WindowProc(HWND__ * 0x01020778, unsigned int 258, unsigned int 46, long 3407873) line 1400 + 27 bytes USER32! 77e13eb0() USER32! 77e1401a() USER32! 77e13f0f() nsAppShellService::Run(nsAppShellService * const 0x02c6bd48) line 472 main1(int 3, char * * 0x002e44c0, nsISupports * 0x002d6f08) line 1543 + 32 bytes main(int 3, char * * 0x002e44c0) line 1904 + 37 bytes mainCRTStartup() line 338 + 17 bytes KERNEL32! 77e87903()
Attached patch proposed fixSplinter Review
Why don't we just do this check inside of Invalidate and skip the assertion? It seems it would take a lot less code.
I agree with dbaron. We might care if someone was doing a lot of calls to Invalidate that could be filtered out by one higher level check, but that's not likely.
Is bug 207365 a dup of or related to this bug? See also bug 136927 comment 36.
Summary: nsBlockFrame::PullFrameFrom calls nsFrame::Invalidate with an empty combinedArea → nsBlockFrame::PullFrameFrom calls
Restoring Summary; not sure how that happened.
Summary: nsBlockFrame::PullFrameFrom calls → nsBlockFrame::PullFrameFrom calls nsFrame::Invalidate with an empty combinedArea
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: