Closed Bug 9118 Opened 25 years ago Closed 25 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: 25 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.