Closed Bug 61 Opened 26 years ago Closed 26 years ago

Navigator shutdown set-zero-context bug

Categories

(MozillaClassic Graveyard :: Windows FE, defect, P3)

1998-03-31
x86
Windows NT

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: donwulff, Assigned: danm.moz)

Details

Created by Jukka Santala (donwulff@iki.fi) on Tuesday, April 7, 1998 4:56:14 AM PDT
Additional Details :
The call stack backtrace tells more than a thousand words :
(It''s an assert instead of prot. fault because this has
the below patch compiled in; it doesn''t affect the actual
bug, just lets me recover from the error gracefully)

XP_AssertAtLine(char * 0x00866778, int 63) line 2649
CFormButton::SetContext(CAbstractCX * 0x00000000) line 63 +
36 bytes
CFormElement::GetFormElement(CAbstractCX * 0x00000000,
LO_FormElementData_struct * 0x00a5c8c0) line 135
FE_FreeFormElement(MWContext_ * 0x009ebd30,
LO_FormElementData_struct * 0x00a5c8c0) line 720 + 11 bytes
lo_FreeDocumentFormListData(MWContext_ * 0x009ebd30,
lo_SavedFormListData_struct * 0x00a2d5e0) line 858 + 19
bytes
LO_FreeDocumentFormListData(MWContext_ * 0x009ebd30, void *
0x00a2d5e0) line 6387 + 13 bytes
SHIST_FreeHistoryEntry(MWContext_ * 0x009ebd30,
_History_entry * 0x00a29c30) line 101 + 16 bytes
SHIST_EndSession(MWContext_ * 0x009ebd30) line 438 + 13
bytes
CAbstractCX::DestroyContext() line 116 + 740 bytes
CDCCX::DestroyContext() line 186
CPaneCX::DestroyContext() line 304
CWinCX::DestroyContext() line 619
CGenericView::FrameClosing() line 215
CMainFrame::OnClose() line 660
CWnd::OnWndMsg(unsigned int 16, unsigned int 0, long 0, long
* 0x0012fd3c) line 1815
CWnd::WindowProc(unsigned int 16, unsigned int 0, long 0)
line 1575 + 30 bytes
AfxCallWndProc(CWnd * 0x00399ff0 {CMainFrame
hWnd=0x0009035a}, HWND__ * 0x0009035a, unsigned int 16,
unsigned int 0, long 0) line 217 + 26 bytes
AfxWndProc(HWND__ * 0x0009035a, unsigned int 16, unsigned
int 0, long 0) line 371
AfxWndProcBase(HWND__ * 0x0009035a, unsigned int 16,
unsigned int 0, long 0) line 203 + 21 bytes
USER32! 77e72cc4()
USER32! 77e72ce2()
CNetscapeStatusBar::CParentSubclass::ParentSubclassProc(HWND
__ * 0x0009035a, unsigned int 16, unsigned int 0, long 0)
line 1077 + 29 bytes
USER32! 77e713ed()

Temporary patch (Munched by the form):

diff --unified --recursive mozorg/ns/cmd/winfe/fmbutton.cpp
mozilla/ns/cmd/winfe/fmbutton.cpp
--- mozorg/ns/cmd/winfe/fmbutton.cpp	Mon Mar 30 17:57:41
1998
+++ mozilla/ns/cmd/winfe/fmbutton.cpp	Mon Apr 06 18:42:09
1998
@@ -60,8 +60,9 @@
 //	Call the base.
 CFormElement::SetContext(pCX);

+	XP_ASSERT(pCX);
 //Update the widget if present for correct callbacks.
-	if(m_pWidget)	{
+	if(m_pWidget&&pCX)	{
 	m_pWidget->RegisterContext(pCX->GetContext());
 	}
 }

This will solve the immediate problem, but as to how and
why pCX gets to be null is another story.
Assignee: nobody → blythe
Component: Windows FE
Assignee: blythe → danm
It gets NULL I'm guessing because earlier in the stack it is being deleted.

Handing over to forms expert to evaluate the patch.  I think it's good.
Status: NEW → RESOLVED
Closed: 26 years ago
Resolution: --- → FIXED
The context is zero because someone higher up the call stack didn't want to
have to be bothered by no stinking contexts, so it sent in a zero.  donwulff's
patch is fine under the circumstances, but I'm going to skip it because
law@netscape.com already patched it one call higher up -- in GetFormElement, on
16 July 98.  I say "already": Jukka saw this problem three months earlier.
Sorry about the delay.  I plead distraction; we plan to be more responsive in
the future.
Status: RESOLVED → VERIFIED
QA Contact: 3849
fixed on old codebase -- marking verified
width of field QU_CONTENT_OID is too small in table SD_QUOTE_DETAIL
You need to log in before you can comment on or make changes to this bug.