Bug 848036 - Move poisoning after NS_XPCOM_SHUTDOWN_LOADERS_OBSERVER_ID. r=BenWa.

--HG--
extra : rebase_source : 06f7625a901f1b69b5850ae76c9ff24e99081173
This commit is contained in:
Rafael Ávila de Espíndola 2013-03-06 16:04:58 -05:00
parent e67ae46cb3
commit ffdd877205

View File

@ -588,10 +588,6 @@ ShutdownXPCOM(nsIServiceManager* servMgr)
// We save the "xpcom-shutdown-loaders" observers to notify after
// the observerservice is gone.
if (observerService) {
// FIXME: This can cause harmless writes from sqlite committing
// log files. We have to ignore them before we can move
// the mozilla::PoisonWrite call before this point. See bug
// 834945 for the details.
observerService->
EnumerateObservers(NS_XPCOM_SHUTDOWN_LOADERS_OBSERVER_ID,
getter_AddRefs(moduleLoaders));
@ -625,12 +621,6 @@ ShutdownXPCOM(nsIServiceManager* servMgr)
// Release the directory service
NS_IF_RELEASE(nsDirectoryService::gService);
SAMPLE_MARKER("Shutdown xpcom");
// If we are doing any shutdown checks, poison writes.
if (gShutdownChecks != SCM_NOTHING) {
mozilla::PoisonWrite();
}
nsCycleCollector_shutdown();
if (moduleLoaders) {
@ -644,6 +634,10 @@ ShutdownXPCOM(nsIServiceManager* servMgr)
// no reason for weak-ref observers to register for
// xpcom-shutdown-loaders
// FIXME: This can cause harmless writes from sqlite committing
// log files. We have to ignore them before we can move
// the mozilla::PoisonWrite call before this point. See bug
// 834945 for the details.
nsCOMPtr<nsIObserver> obs(do_QueryInterface(el));
if (obs)
(void) obs->Observe(nullptr,
@ -654,6 +648,12 @@ ShutdownXPCOM(nsIServiceManager* servMgr)
moduleLoaders = nullptr;
}
SAMPLE_MARKER("Shutdown xpcom");
// If we are doing any shutdown checks, poison writes.
if (gShutdownChecks != SCM_NOTHING) {
mozilla::PoisonWrite();
}
// Shutdown nsLocalFile string conversion
NS_ShutdownLocalFile();
#ifdef XP_UNIX