Closed Bug 200424 Opened 23 years ago Closed 23 years ago

nsEventQueueServiceImpl::GetThreadEventQueue might return NS_OK w/ null out [@ nsMemoryImpl::FlushMemory]

Categories

(Core :: XPCOM, defect)

x86
Windows 2000
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: timeless, Assigned: timeless)

References

()

Details

(Keywords: crash)

Crash Data

Attachments

(1 file)

I finally cvs updated raistlin. but my profiles are all in use, so mozilla wasn't very happy. WARNING: NS_ENSURE_TRUE(globalObject) failed, file i:/build/mozilla/xpfe/appshell/src/nsWebShellWindow.cpp, line 1073 WARNING: NS_ENSURE_TRUE(globalObject) failed, file i:/build/mozilla/xpfe/appshell/src/nsWebShellWindow.cpp, line 1073 WARNING: NS_ENSURE_TRUE(globalObject) failed, file i:/build/mozilla/xpfe/appshell/src/nsWebShellWindow.cpp, line 1073 WARNING: nsTimeoutImpl::Release() proceeding without context., file i:/build/mozilla/dom/src/base/nsGlobalWindow.cpp, line 4937 WEBSHELL- = 0 ###!!! ASSERTION: Could not get profile directory lock.: 'Error', file i:/build/mozilla/profile/src/nsProfile.cpp, line 1175 WEBSHELL+ = 1 ### nsCacheProfilePrefObserver::Observe [topic=xpcom-shutdown data=] nsPluginHostImpl::Observe "xpcom-shutdown" ###!!! ASSERTION: You can't dereference a NULL nsCOMPtr with operator->().: 'mRawPtr != 0', file i:/build/mozilla/xpcom/build/../glue\nsCOMPtr.h, line 691 Break: at file i:/build/mozilla/xpcom/build/../glue\nsCOMPtr.h, line 691 nsMemoryImpl::FlushMemory(const unsigned short * 0x002ec5a8, int 0) line 446 + 15 bytes MemoryFlusher::Run(MemoryFlusher * const 0x00437390) line 191 + 43 bytes nsThread::Main(void * 0x00437558) line 121 + 26 bytes _PR_NativeRunThread(void * 0x00437658) line 433 + 13 bytes MSVCRTD! beginthreadex + 307 bytes KERNEL32! CreateFileA + 283 bytes rv = eqs->GetThreadEventQueue(NS_UI_THREAD, getter_AddRefs(eq)); if (NS_SUCCEEDED(rv)) { PL_InitEvent(&mFlushEvent.mEvent, this, HandleFlushEvent, DestroyFlushEvent); mFlushEvent.mReason = aReason; rv = eq->PostEvent(NS_REINTERPRET_CAST(PLEvent*, &mFlushEvent)); + eq {0x00000000} So... I looked at nsEventQueueServiceImpl::GetThreadEventQueue and it looks like it could theoretically return NS_OK+NULL:
Attached patch fixSplinter Review
Attachment #119258 - Flags: review?(darin)
Comment on attachment 119258 [details] [diff] [review] fix >Index: mozilla/xpcom/threads/nsEventQueueService.cpp >+ // XXX: Need error code for requesting an event queue when none exists... >+ if (!youngestQueue) { >+ return NS_ERROR_FAILURE; how about NS_ERROR_NOT_AVAILABLE? that seems better than NS_ERROR_FAILURE. r=darin with that change.
Attachment #119258 - Flags: review?(darin) → review+
checked in
Status: UNCONFIRMED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Crash Signature: [@ nsMemoryImpl::FlushMemory]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: