From 3ea7ebc09a347aed2c8478af3ba446e84f6b11bd Mon Sep 17 00:00:00 2001 From: Ansariel Date: Mon, 2 Nov 2015 15:36:58 +0100 Subject: [PATCH] Align tool: Only really try to delete the thread after it has really stopped and get rid of the overridden shutdown() method since calling a virtual method from a dtor is never a good idea --- indra/newview/qtoolalign.cpp | 10 +++++----- indra/newview/qtoolalign.h | 3 +-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/indra/newview/qtoolalign.cpp b/indra/newview/qtoolalign.cpp index 306cca1bf2..6b12659c3f 100644 --- a/indra/newview/qtoolalign.cpp +++ b/indra/newview/qtoolalign.cpp @@ -474,7 +474,11 @@ public: } BOOL tick() { - AlignThread::sInstance->shutdown(); + if (!AlignThread::sInstance->isStopped()) + { + return FALSE; + } + delete AlignThread::sInstance; AlignThread::sInstance = NULL; LLSelectMgr::getInstance()->sendMultipleUpdate(UPD_POSITION); @@ -652,7 +656,3 @@ void AlignThread::run() QToolAlign::getInstance()->aligndone(); } -void AlignThread::shutdown() -{ - -} diff --git a/indra/newview/qtoolalign.h b/indra/newview/qtoolalign.h index 7a8082c2eb..4410472bc9 100644 --- a/indra/newview/qtoolalign.h +++ b/indra/newview/qtoolalign.h @@ -19,9 +19,8 @@ class AlignThread : public LLThread { public: AlignThread(void); - ~AlignThread(); + ~AlignThread(); /*virtual*/ void run(void); - /*virtual*/ void shutdown(void); static AlignThread* sInstance; };