summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
authorAndrew Dyukov <adyukov@productengine.com>2010-02-19 15:08:28 +0200
committerAndrew Dyukov <adyukov@productengine.com>2010-02-19 15:08:28 +0200
commita1cfce861ad949cec561d8dbf3d296f8847aa8a6 (patch)
tree2a9650f8bf0b3536f0e06fb9a2de14a368448ac8 /indra/newview
parentf752b73cb2c18521765760bb7986816ee7b94056 (diff)
Partial fix for major bug EXT-5524 (Crash in LLVoiceClient when quitting viewer without login).
- Used call of LLVoiceClient::instanceExists() instead of gVoiceClient in check in LLVoiceChannel destructor to avoid crash when quitting viewer by closing console window before login. So now crash won't happen in LLVoiceClient::removeObserver(). But crash will occur in other destructors later, so further investigation needed. --HG-- branch : product-engine
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/llvoicechannel.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp
index dfd67d0c38..fac7fa6a18 100644
--- a/indra/newview/llvoicechannel.cpp
+++ b/indra/newview/llvoicechannel.cpp
@@ -140,7 +140,10 @@ LLVoiceChannel::LLVoiceChannel(const LLUUID& session_id, const std::string& sess
LLVoiceChannel::~LLVoiceChannel()
{
// Don't use LLVoiceClient::getInstance() here -- this can get called during atexit() time and that singleton MAY have already been destroyed.
- if(gVoiceClient)
+ // Using call of instanceExists() instead of gVoiceClient in check to avoid crash in LLVoiceClient::removeObserver()
+ // when quitting viewer by closing console window before login (though in case of such quit crash will occur
+ // later in other destructors anyway). EXT-5524
+ if(LLVoiceClient::instanceExists())
{
gVoiceClient->removeObserver(this);
}