diff options
author | Sergei Litovchuk <slitovchuk@productengine.com> | 2009-12-03 15:52:48 +0200 |
---|---|---|
committer | Sergei Litovchuk <slitovchuk@productengine.com> | 2009-12-03 15:52:48 +0200 |
commit | ec48cc1a40fc189de379ca3dd198e3b96395ce33 (patch) | |
tree | bd6fbcbdc138a152aa62ac9891f7432611c7b45e /indra/newview/llimview.cpp | |
parent | 8157e8989102f1585fb13f6ad3822fbb7a4720c6 (diff) |
No ticket. Fixed using LLVoiceChannel::setStateChangedCallback() in IM Panel and IM View.
- Added disconnecting signal in destructor.
--HG--
branch : product-engine
Diffstat (limited to 'indra/newview/llimview.cpp')
-rw-r--r-- | indra/newview/llimview.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp index 5481ca97cd..22cc799ef0 100644 --- a/indra/newview/llimview.cpp +++ b/indra/newview/llimview.cpp @@ -165,7 +165,7 @@ LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id, const std::string& if(mVoiceChannel) { - mVoiceChannel->setStateChangedCallback(boost::bind(&LLIMSession::onVoiceChannelStateChanged, this, _1, _2)); + mVoiceChannelStateChangeConnection = mVoiceChannel->setStateChangedCallback(boost::bind(&LLIMSession::onVoiceChannelStateChanged, this, _1, _2)); } mSpeakers = new LLIMSpeakerMgr(mVoiceChannel); @@ -270,9 +270,11 @@ LLIMModel::LLIMSession::~LLIMSession() } } + mVoiceChannelStateChangeConnection.disconnect(); + // HAVE to do this here -- if it happens in the LLVoiceChannel destructor it will call the wrong version (since the object's partially deconstructed at that point). mVoiceChannel->deactivate(); - + delete mVoiceChannel; mVoiceChannel = NULL; } |