summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dyukov <adyukov@productengine.com>2009-11-18 14:25:58 +0200
committerAndrew Dyukov <adyukov@productengine.com>2009-11-18 14:25:58 +0200
commit764afa899ee3a4b2f1fa1f32c13a918c2caad9a9 (patch)
tree43b9f9b6161c415900943c8dcc6bcc15ef31946a
parent215b95eb64ebea58d6f2bda5f90e307836aca093 (diff)
Fixed major bug EXT-2608 (Crash: Sometimes LLNavigationBar is trying
to access deleted LLSearchHistory singleton when exiting from viewer). --HG-- branch : product-engine
-rw-r--r--indra/newview/llnavigationbar.cpp1
-rw-r--r--indra/newview/llsearchhistory.h11
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;
};