Closed Bug 9118 Opened 26 years ago Closed 26 years ago

Deleting last messages causes PreCondition error

Categories

(Core :: XUL, defect, P3)

x86
Windows NT
defect

Tracking

()

VERIFIED FIXED

People

(Reporter: scottputterman, Assigned: hyatt)

References

Details

When I delete the last message in my trash in Messenger, I get the following nsdebug precondition which may lead to a crash. NS_PRECONDITION (0<=aRowIndex && aRowIndex<GetRowCount(), "bad row index arg"); Here's the stack: nsDebug::PreCondition(const char * 0x01b1bb5c, const char * 0x01b1bb34, const char * 0x01b1baf8, int 604) line 143 + 13 bytes nsTableFrame::GetEffectiveRowSpan(int 1, nsTableCellFrame * 0x06c37f00) line 604 + 51 bytes nsTableRowFrame::PlaceChild(nsIPresContext & {...}, RowReflowState & {...}, nsIFrame * 0x06c37f00, const nsRect & {x=0 y=0 width=4470 height=270}, nsSize * 0x00000000 {width=??? height=???}, nsSize * 0x00000000 {width=??? height=???}) line 519 + 31 bytes nsTableRowFrame::ResizeReflow(nsTableRowFrame * const 0x06c36060, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, RowReflowState & {...}, unsigned int & 0) line 753 nsTableRowFrame::Reflow(nsTableRowFrame * const 0x06c36064, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 1502 + 35 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x06c36060, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 392 + 28 bytes nsTableRowGroupFrame::ReflowMappedChildren(nsTableRowGroupFrame * const 0x06c360f0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, RowGroupReflowState & {...}, unsigned int & 0, nsTableRowFrame * 0x00000000, nsReflowReason eReflowReason_Resize, int 1) line 445 + 34 bytes nsTableRowGroupFrame::Reflow(nsTableRowGroupFrame * const 0x06c360f4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 1018 + 39 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x06c360f0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 392 + 28 bytes nsTableRowGroupFrame::ReflowMappedChildren(nsTableRowGroupFrame * const 0x06b3fb20, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, RowGroupReflowState & {...}, unsigned int & 0, nsTableRowFrame * 0x00000000, nsReflowReason eReflowReason_Resize, int 1) line 445 + 34 bytes nsTableRowGroupFrame::Reflow(nsTableRowGroupFrame * const 0x06b3fb24, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 1018 + 39 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x06b3fb20, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 392 + 28 bytes nsTableFrame::ReflowMappedChildren(nsTableFrame * const 0x05989c10, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, InnerTableReflowState & {...}, unsigned int & 0) line 3810 + 31 bytes nsTableFrame::ResizeReflowPass2(nsTableFrame * const 0x05989c10, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 2880 + 31 bytes nsTableFrame::Reflow(nsTableFrame * const 0x05989c14, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 2583 + 38 bytes nsTreeFrame::Reflow(nsTreeFrame * const 0x05989c14, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 286 nsContainerFrame::ReflowChild(nsIFrame * 0x05989c10, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 392 + 28 bytes nsTableOuterFrame::IR_InnerTableReflow(nsTableOuterFrame * const 0x05989d20, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, OuterTableReflowState & {...}, unsigned int & 0) line 560 + 34 bytes nsTableOuterFrame::IR_TargetIsInnerTableFrame(nsTableOuterFrame * const 0x05989d20, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, OuterTableReflowState & {...}, unsigned int & 0) line 352 + 31 bytes nsTableOuterFrame::IR_TargetIsChild(nsTableOuterFrame * const 0x05989d20, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, OuterTableReflowState & {...}, unsigned int & 0, nsIFrame * 0x05989c10) line 324 + 31 bytes nsTableOuterFrame::IncrementalReflow(nsTableOuterFrame * const 0x05989d20, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, OuterTableReflowState & {...}, unsigned int & 0) line 309 + 35 bytes nsTableOuterFrame::Reflow(nsTableOuterFrame * const 0x05989d24, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 957 + 35 bytes nsBlockReflowContext::ReflowBlock(nsIFrame * 0x05989d20, const nsRect & {x=0 y=0 width=9510 height=1073741824}, int 1, int 0, int 1, nsMargin & {top=0 right=0 bottom=0 left=0}, unsigned int & 0) line 227 + 42 bytes nsBlockFrame::ReflowBlockFrame(nsBlockReflowState & {...}, nsLineBox * 0x0599dda0, int * 0x0012b7a0) line 2493 + 56 bytes nsBlockFrame::ReflowLine(nsBlockReflowState & {...}, nsLineBox * 0x0599dda0, int * 0x0012b7a0) line 1983 + 20 bytes nsBlockFrame::ReflowDirtyLines(nsBlockReflowState & {...}) line 1793 + 20 bytes nsBlockFrame::Reflow(nsBlockFrame * const 0x0598d374, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 1199 + 18 bytes nsAreaFrame::Reflow(nsAreaFrame * const 0x0598d374, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 283 + 25 bytes nsContainerFrame::ReflowChild(nsIFrame * 0x0598d370, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 392 + 28 bytes RootFrame::Reflow(RootFrame * const 0x0598e2b4, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 242 nsContainerFrame::ReflowChild(nsIFrame * 0x0598e2b0, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 392 + 28 bytes ViewportFrame::Reflow(ViewportFrame * const 0x0598a034, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0) line 438 nsHTMLReflowCommand::Dispatch(nsHTMLReflowCommand * const 0x06af4850, nsIPresContext & {...}, nsHTMLReflowMetrics & {...}, const nsSize & {width=9510 height=4260}, nsIRenderingContext & {...}) line 169 PresShell::ProcessReflowCommands(PresShell * const 0x04e9b2f0) line 1245 PresShell::ExitReflowLock(PresShell * const 0x04e9b2f0) line 664 PresShell::ContentRemoved(PresShell * const 0x04e9b2f8, nsIDocument * 0x04e715b0, nsIContent * 0x06b3e480, nsIContent * 0x06bd3ea0, int 51) line 1698 XULDocumentImpl::ContentRemoved(XULDocumentImpl * const 0x04e715b0, nsIContent * 0x06b3e480, nsIContent * 0x06bd3ea0, int 51) line 1969 RDFElementImpl::RemoveChildAt(RDFElementImpl * const 0x06b3e480, int 51, int 1) line 1689 RDFTreeBuilderImpl::RemoveWidgetItem(nsIContent * 0x06b3e480, nsIRDFResource * 0x04f7df40, nsIRDFResource * 0x0620d640) line 1331 + 18 bytes RDFGenericBuilderImpl::OnUnassert(RDFGenericBuilderImpl * const 0x0598fca4, nsIRDFResource * 0x051322c0, nsIRDFResource * 0x04f7df40, nsIRDFNode * 0x0620d640) line 1560 + 37 bytes CompositeDataSourceImpl::OnUnassert(CompositeDataSourceImpl * const 0x0598ea04, nsIRDFResource * 0x051322c0, nsIRDFResource * 0x04f7df40, nsIRDFNode * 0x0620d640) line 1313 nsMsgRDFDataSource::unassertEnumFunc(nsISupports * 0x0598ea04, void * 0x0012df5c) line 317 nsSupportsArray::EnumerateForwards(nsSupportsArray * const 0x04f7d050, int (nsISupports *, void *)* 0x01519670 nsMsgRDFDataSource::unassertEnumFunc(nsISupports *, void *), void * 0x0012df5c) line 346 + 20 bytes nsMsgRDFDataSource::NotifyObservers(nsIRDFResource * 0x051322c0, nsIRDFResource * 0x04f7df40, nsIRDFNode * 0x0620d640, int 0) line 293 nsMsgFolderDataSource::OnItemRemoved(nsMsgFolderDataSource * const 0x04f7df94, nsIFolder * 0x051322cc, nsISupports * 0x0620d640) line 589 nsMsgMailSession::NotifyFolderItemDeleted(nsMsgMailSession * const 0x04aefc60, nsIFolder * 0x051322cc, nsISupports * 0x0620d640) line 183 nsMsgFolder::NotifyItemDeleted(nsISupports * 0x0620d640) line 1475 nsMsgDBFolder::OnKeyDeleted(nsMsgDBFolder * const 0x05132328, unsigned int 144882, int 0, nsIDBChangeListener * 0x00000000) line 273 nsMsgDatabase::NotifyKeyDeletedAll(nsMsgDatabase * const 0x06a3bcd0, unsigned int 144882, int 0, nsIDBChangeListener * 0x00000000) line 151 + 24 bytes nsMsgDatabase::DeleteHeader(nsMsgDatabase * const 0x06a3bcd0, nsIMsgDBHdr * 0x0620e030, nsIDBChangeListener * 0x00000000, int 1, int 1) line 979 nsMsgLocalMailFolder::DeleteMessage(nsIMessage * 0x0620d64c, nsITransactionManager * 0x04d27de0, int 0) line 1143 + 44 bytes nsMsgLocalMailFolder::DeleteMessages(nsMsgLocalMailFolder * const 0x051322cc, nsISupportsArray * 0x06af3c80, nsITransactionManager * 0x04d27de0, int 0) line 1108 nsMsgFolderDataSource::DoDeleteFromFolder(nsIMsgFolder * 0x051322cc, nsISupportsArray * 0x06af3d20, nsITransactionManager * 0x04d27de0) line 951 + 30 bytes nsMsgFolderDataSource::DoCommand(nsMsgFolderDataSource * const 0x04f7df80, nsISupportsArray * 0x06af3cd0, nsIRDFResource * 0x04f7d6e0, nsISupportsArray * 0x06af3d20) line 513 + 30 bytes CompositeDataSourceImpl::DoCommand(CompositeDataSourceImpl * const 0x0598ea00, nsISupportsArray * 0x06af3cd0, nsIRDFResource * 0x04f7d6e0, nsISupportsArray * 0x06af3d20) line 1206 + 24 bytes nsMessenger::DoCommand(nsIRDFCompositeDataSource * 0x0598ea00, char * 0x01526104, nsISupportsArray * 0x06af3cd0, nsISupportsArray * 0x06af3d20) line 456 + 29 bytes nsMessenger::DeleteMessages(nsMessenger * const 0x04d26310, nsIDOMXULTreeElement * 0x0598bfe8, nsIDOMXULElement * 0x06b3e470, nsIDOMNodeList * 0x06af2390) line 496 + 40 bytes XPTC_InvokeByIndex(nsISupports * 0x04d26310, unsigned int 8, unsigned int 3, nsXPTCVariant * 0x0012e3e4) line 135 nsXPCWrappedNativeClass::CallWrappedMethod(JSContext * 0x04c0f9d0, nsXPCWrappedNative * 0x04d28950, const XPCNativeMemberDescriptor * 0x04d28d18, nsXPCWrappedNativeClass::CallMode CALL_METHOD, unsigned int 3, long * 0x012abe1c, long * 0x0012e5ec) line 511 + 44 bytes WrappedNative_CallMethod(JSContext * 0x04c0f9d0, JSObject * 0x01280078, unsigned int 3, long * 0x012abe1c, long * 0x0012e5ec) line 128 js_Invoke(JSContext * 0x04c0f9d0, unsigned int 3, int 0) line 655 + 26 bytes js_Interpret(JSContext * 0x04c0f9d0, long * 0x0012ee18) line 2217 + 15 bytes js_Invoke(JSContext * 0x04c0f9d0, unsigned int 0, int 0) line 671 + 13 bytes js_Interpret(JSContext * 0x04c0f9d0, long * 0x0012f600) line 2217 + 15 bytes js_Invoke(JSContext * 0x04c0f9d0, unsigned int 1, int 0) line 671 + 13 bytes js_InternalCall(JSContext * 0x04c0f9d0, JSObject * 0x01280408, long 19399696, unsigned int 1, long * 0x0012f744, long * 0x0012f74c) line 749 + 15 bytes JS_CallFunctionValue(JSContext * 0x04c0f9d0, JSObject * 0x01280408, long 19399696, unsigned int 1, long * 0x0012f744, long * 0x0012f74c) line 2631 + 29 bytes nsJSEventListener::HandleEvent(nsIDOMEvent * 0x06af16c0) line 97 + 34 bytes nsEventListenerManager::HandleEvent(nsIPresContext & {...}, nsEvent * 0x0012f930, nsIDOMEvent * * 0x0012f8ec, unsigned int 3, nsEventStatus & nsEventStatus_eIgnore) line 568 + 21 bytes RDFElementImpl::HandleDOMEvent(RDFElementImpl * const 0x04db8ad0, nsIPresContext & {...}, nsEvent * 0x0012f930, nsIDOMEvent * * 0x0012f8ec, unsigned int 1, nsEventStatus & nsEventStatus_eIgnore) line 2348 nsEventStateManager::CheckForAndDispatchClick(nsEventStateManager * const 0x04dbae30, nsIPresContext & {...}, nsMouseEvent * 0x0012fbb0, nsEventStatus & nsEventStatus_eIgnore) line 632 + 31 bytes nsEventStateManager::PostHandleEvent(nsEventStateManager * const 0x04dbae30, nsIPresContext & {...}, nsGUIEvent * 0x0012fbb0, nsIFrame * 0x04dbc270, nsEventStatus & nsEventStatus_eIgnore, nsIView * 0x04c7a290) line 194 + 24 bytes PresShell::HandleEvent(PresShell * const 0x04c7be94, nsIView * 0x04c7a290, nsGUIEvent * 0x0012fbb0, nsEventStatus & nsEventStatus_eIgnore) line 2070 + 43 bytes nsView::HandleEvent(nsView * const 0x04c7a290, nsGUIEvent * 0x0012fbb0, unsigned int 28, nsEventStatus & nsEventStatus_eIgnore, int & 0) line 833 nsViewManager::DispatchEvent(nsViewManager * const 0x04c7a4b0, nsGUIEvent * 0x0012fbb0, nsEventStatus & nsEventStatus_eIgnore) line 1735 HandleEvent(nsGUIEvent * 0x0012fbb0) line 67 nsWindow::DispatchEvent(nsWindow * const 0x04c7a164, nsGUIEvent * 0x0012fbb0, nsEventStatus & nsEventStatus_eIgnore) line 434 + 10 bytes nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012fbb0) line 455 nsWindow::DispatchMouseEvent(unsigned int 301, nsPoint * 0x00000000 {x=??? y=???}) line 3116 + 15 bytes ChildWindow::DispatchMouseEvent(unsigned int 301, nsPoint * 0x00000000 {x=??? y=???}) line 3265 nsWindow::ProcessMessage(unsigned int 514, unsigned int 0, long 2162894, long * 0x0012fdc0) line 2395 + 24 bytes nsWindow::WindowProc(HWND__ * 0x00230de0, unsigned int 514, unsigned int 0, long 2162894) line 497 + 27 bytes USER32! 77e71250()
Status: NEW → ASSIGNED
Target Milestone: M9
This only happens if you're deleting the last message? Others work ok?
Yes, at least as far as I could tell. It happened to me twice deleting the last message, but never while deleting other messages.
cc: suresh. Suresh, when this if fixed, can you verify under a debug build? I believe this is for POP.
I'm also now getting this when I double click on a folder that's the last folder in the folder pane. It happens when I'm closing the folder and its children, not when I'm opening it.
This is now happening when biff goes off. I think it's happening in the flash panel. Anyway, this makes it pretty hard to have biff on. If you get a chance, could you take a look at it. Nothing bad seems to be happening but I figure there must be a precondition there for a reason.
*** Bug 9499 has been marked as a duplicate of this bug. ***
Status: ASSIGNED → RESOLVED
Closed: 26 years ago
Resolution: --- → FIXED
Target Milestone: M9 → M10
Fixed.
marking verified due to discussion with scott.
You need to log in before you can comment on or make changes to this bug.