summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2017-05-04 13:51:16 -0400
committerNat Goodspeed <nat@lindenlab.com>2017-05-04 13:51:16 -0400
commit07ec10781e45b3d92e27e92ddad39cf74fa7ff0b (patch)
treec5df107f638de079ff537d0b1b82befc294e7997 /indra/newview
parent35cec8fec8fef36a75bbb168e38c235ff0c47b49 (diff)
parentb94e2d0103168f143ee7579f01f0d45fc63a4e84 (diff)
Automated merge with ssh://bitbucket.org/lindenlab/viewer64
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llappviewer.cpp7
-rw-r--r--indra/newview/llappviewerwin32.cpp7
-rw-r--r--indra/newview/llwindebug.cpp4
-rw-r--r--indra/newview/llwindebug.h4
4 files changed, 6 insertions, 16 deletions
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 850f7b1c31..a26ee2204b 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -2114,13 +2114,6 @@ bool LLAppViewer::cleanup()
// This calls every remaining LLSingleton's deleteSingleton() method.
// No class destructor should perform any cleanup that might take
// significant realtime, or throw an exception.
- // LLSingleton machinery includes a last-gasp implicit deleteAll() call,
- // so this explicit call shouldn't strictly be necessary. However, by the
- // time the runtime engages that implicit call, it may already have
- // destroyed things like std::cerr -- so the implicit deleteAll() refrains
- // from logging anything. Since both cleanupAll() and deleteAll() call
- // their respective cleanup methods in computed dependency order, it's
- // probably useful to be able to log that order.
LLSingletonBase::deleteAll();
removeDumpDir();
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp
index 5107030476..d6039f6d7f 100644
--- a/indra/newview/llappviewerwin32.cpp
+++ b/indra/newview/llappviewerwin32.cpp
@@ -502,7 +502,8 @@ bool LLAppViewerWin32::init()
disableWinErrorReporting();
#ifndef LL_RELEASE_FOR_DOWNLOAD
- LLWinDebug::instance().init();
+ // Merely requesting the LLSingleton instance initializes it.
+ LLWinDebug::instance();
#endif
#if LL_WINDOWS
@@ -526,10 +527,6 @@ bool LLAppViewerWin32::cleanup()
gDXHardware.cleanup();
-#ifndef LL_RELEASE_FOR_DOWNLOAD
- LLWinDebug::instance().cleanup();
-#endif
-
if (mIsConsoleAllocated)
{
FreeConsole();
diff --git a/indra/newview/llwindebug.cpp b/indra/newview/llwindebug.cpp
index eff70ca0b2..92c80ce534 100644
--- a/indra/newview/llwindebug.cpp
+++ b/indra/newview/llwindebug.cpp
@@ -90,7 +90,7 @@ LONG NTAPI vectoredHandler(PEXCEPTION_POINTERS exception_infop)
}
// static
-void LLWinDebug::init()
+void LLWinDebug::initSingleton()
{
static bool s_first_run = true;
// Load the dbghelp dll now, instead of waiting for the crash.
@@ -135,7 +135,7 @@ void LLWinDebug::init()
}
}
-void LLWinDebug::cleanup ()
+void LLWinDebug::cleanupSingleton()
{
gEmergencyMemoryReserve.release();
}
diff --git a/indra/newview/llwindebug.h b/indra/newview/llwindebug.h
index 90882cf04a..7e5818ba1c 100644
--- a/indra/newview/llwindebug.h
+++ b/indra/newview/llwindebug.h
@@ -36,9 +36,9 @@ class LLWinDebug:
{
LLSINGLETON_EMPTY_CTOR(LLWinDebug);
public:
- static void init();
+ void initSingleton();
static void generateMinidump(struct _EXCEPTION_POINTERS *pExceptionInfo = NULL);
- static void cleanup();
+ void cleanupSingleton();
private:
static void writeDumpToFile(MINIDUMP_TYPE type, MINIDUMP_EXCEPTION_INFORMATION *ExInfop, const std::string& filename);
};