diff options
author | Andrew Dyukov <adyukov@productengine.com> | 2009-11-18 14:25:58 +0200 |
---|---|---|
committer | Andrew Dyukov <adyukov@productengine.com> | 2009-11-18 14:25:58 +0200 |
commit | 764afa899ee3a4b2f1fa1f32c13a918c2caad9a9 (patch) | |
tree | 43b9f9b6161c415900943c8dcc6bcc15ef31946a /indra | |
parent | 215b95eb64ebea58d6f2bda5f90e307836aca093 (diff) |
Fixed major bug EXT-2608 (Crash: Sometimes LLNavigationBar is trying
to access deleted LLSearchHistory singleton when exiting from viewer).
--HG--
branch : product-engine
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llnavigationbar.cpp | 1 | ||||
-rw-r--r-- | indra/newview/llsearchhistory.h | 11 |
2 files changed, 10 insertions, 2 deletions
diff --git a/indra/newview/llnavigationbar.cpp b/indra/newview/llnavigationbar.cpp index 794d73a5ad..a770fe15fb 100644 --- a/indra/newview/llnavigationbar.cpp +++ b/indra/newview/llnavigationbar.cpp @@ -186,7 +186,6 @@ LLNavigationBar::LLNavigationBar() LLNavigationBar::~LLNavigationBar() { mTeleportFinishConnection.disconnect(); - LLSearchHistory::getInstance()->save(); } BOOL LLNavigationBar::postBuild() diff --git a/indra/newview/llsearchhistory.h b/indra/newview/llsearchhistory.h index 253ef21e9e..eb6efdb86f 100644 --- a/indra/newview/llsearchhistory.h +++ b/indra/newview/llsearchhistory.h @@ -34,12 +34,15 @@ #define LL_LLSEARCHHISTORY_H #include "llsingleton.h" +#include "llui.h" + /** * Search history container able to save and load history from file. * History is stored in chronological order, most recent at the beginning. */ -class LLSearchHistory : public LLSingleton<LLSearchHistory> +class LLSearchHistory : public LLSingleton<LLSearchHistory>, private LLDestroyClass<LLSearchHistory> { + friend class LLDestroyClass<LLSearchHistory>; public: // Forward declaration @@ -130,6 +133,12 @@ protected: private: + // Implementation of LLDestroyClass<LLSearchHistory> + static void destroyClass() + { + LLSearchHistory::getInstance()->save(); + } + search_history_list_t mSearchHistory; }; |