diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2020-10-08 20:55:16 +0300 |
---|---|---|
committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2020-10-08 21:00:52 +0300 |
commit | 6531ba9a58c010d6ab8a4fc50afc7be45209e246 (patch) | |
tree | fb73a28f0d5923e6bbc671e8ee9e6eaae184efe2 /indra | |
parent | 3ad517c6e20934932af712eec6ac50ee6cd6ac4c (diff) |
SL-14079 crash accessing LLHUDText
LLHUDObject has a lot of deriveds stored as LLPointer<LLHUDObject>, no-virtual destructor is unlikely to be cause of the crash, but might be related
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llfloaterworldmap.h | 1 | ||||
-rw-r--r-- | indra/newview/llhudobject.h | 2 | ||||
-rw-r--r-- | indra/newview/llhudtext.cpp | 5 |
3 files changed, 5 insertions, 3 deletions
diff --git a/indra/newview/llfloaterworldmap.h b/indra/newview/llfloaterworldmap.h index fce945df6c..97e99297cf 100644 --- a/indra/newview/llfloaterworldmap.h +++ b/indra/newview/llfloaterworldmap.h @@ -33,7 +33,6 @@ #define LL_LLFLOATERWORLDMAP_H #include "llfloater.h" -#include "llhudtext.h" #include "llmapimagetype.h" #include "lltracker.h" #include "llslurl.h" diff --git a/indra/newview/llhudobject.h b/indra/newview/llhudobject.h index 2f7a98c86c..ce128519ea 100644 --- a/indra/newview/llhudobject.h +++ b/indra/newview/llhudobject.h @@ -102,7 +102,7 @@ protected: static void sortObjects(); LLHUDObject(const U8 type); - ~LLHUDObject(); + virtual ~LLHUDObject(); virtual void render() = 0; virtual void renderForTimer() {}; diff --git a/indra/newview/llhudtext.cpp b/indra/newview/llhudtext.cpp index 82824861a9..72d28a3d44 100644 --- a/indra/newview/llhudtext.cpp +++ b/indra/newview/llhudtext.cpp @@ -565,7 +565,10 @@ S32 LLHUDText::getMaxLines() void LLHUDText::markDead() { - sTextObjects.erase(LLPointer<LLHUDText>(this)); + // make sure we have at least one pointer + // till the end of the function + LLPointer<LLHUDText> ptr(this); + sTextObjects.erase(ptr); LLHUDObject::markDead(); } |