diff options
| author | Nat Goodspeed <nat@lindenlab.com> | 2017-04-27 08:40:01 -0400 |
|---|---|---|
| committer | Nat Goodspeed <nat@lindenlab.com> | 2017-04-27 08:40:01 -0400 |
| commit | c04073da377a222d2d244c94683816c412dfad36 (patch) | |
| tree | 831a9108535ddb8edfeae0bbcbc9cc215e33d293 /indra/newview/llwindebug.cpp | |
| parent | 0d0f2a8aebd8b992764c227daac75c6964052645 (diff) | |
DRTVWR-418: Use conventional LLSingleton init/cleanup for LLWinDebug.
LLWinDebug, though an LLSingleton, had (and required explicit calls to)
special init() and cleanup() methods. Kitty Barnett points out that the
cleanup() method was actually being called after LLSingletonBase::deleteAll(),
requiring resurrection of the deleted LLWinDebug, which sometimes led to
crashes. (Resurrecting deleted LLSingletons is always suspect.)
Change LLWinDebug::init() and cleanup() to the conventional initSingleton()
and cleanupSingleton() methods. This eliminates the need to make special
method calls at all. In particular, cleanupSingleton() will be called by the
existing LLSingletonBase::cleanupAll() call near viewer shutdown.
We retain the early LLWinDebug::instance() call, which implicitly initializes
the LLWinDebug instance, because evidently we want that initialized early. But
we no longer require a separate init() call.
Diffstat (limited to 'indra/newview/llwindebug.cpp')
| -rw-r--r-- | indra/newview/llwindebug.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
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(); } |
