summaryrefslogtreecommitdiff
path: root/indra/newview/llpanelgroupgeneral.cpp
diff options
context:
space:
mode:
authorMerov Linden <merov@lindenlab.com>2012-12-17 18:59:01 -0800
committerMerov Linden <merov@lindenlab.com>2012-12-17 18:59:01 -0800
commit6fe7144104cd8b5bd9c7d215f76afdeafe13b7ee (patch)
treec4f7f5d9b0f03c5beae32ca0f234d1fd4f4d326b /indra/newview/llpanelgroupgeneral.cpp
parent0e4c3070cb6cfb389d708ca459ed2c721c1cc28a (diff)
CHUI-580 : WIP : Protect callback connections passed to LLAvatarNameCache::get() where necessary
Diffstat (limited to 'indra/newview/llpanelgroupgeneral.cpp')
-rw-r--r--indra/newview/llpanelgroupgeneral.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp
index 51b4d2ea65..69d2c84e8a 100644
--- a/indra/newview/llpanelgroupgeneral.cpp
+++ b/indra/newview/llpanelgroupgeneral.cpp
@@ -79,13 +79,18 @@ LLPanelGroupGeneral::LLPanelGroupGeneral()
mCtrlReceiveNotices(NULL),
mCtrlListGroup(NULL),
mActiveTitleLabel(NULL),
- mComboActiveTitle(NULL)
+ mComboActiveTitle(NULL),
+ mAvatarNameCacheConnection()
{
}
LLPanelGroupGeneral::~LLPanelGroupGeneral()
{
+ if (mAvatarNameCacheConnection.connected())
+ {
+ mAvatarNameCacheConnection.disconnect();
+ }
}
BOOL LLPanelGroupGeneral::postBuild()
@@ -728,9 +733,12 @@ void LLPanelGroupGeneral::updateMembers()
else
{
// If name is not cached, onNameCache() should be called when it is cached and add this member to list.
- LLAvatarNameCache::get(mMemberProgress->first,
- boost::bind(&LLPanelGroupGeneral::onNameCache,
- this, mUdpateSessionID, member, _1, _2));
+ // *TODO : Use a callback per member, not for the panel group.
+ if (mAvatarNameCacheConnection.connected())
+ {
+ mAvatarNameCacheConnection.disconnect();
+ }
+ mAvatarNameCacheConnection = LLAvatarNameCache::get(mMemberProgress->first, boost::bind(&LLPanelGroupGeneral::onNameCache, this, mUdpateSessionID, member, _1, _2));
}
}
@@ -770,8 +778,7 @@ void LLPanelGroupGeneral::addMember(LLGroupMemberData* member)
void LLPanelGroupGeneral::onNameCache(const LLUUID& update_id, LLGroupMemberData* member, const LLUUID& id, const LLAvatarName& av_name)
{
- if (!member
- || update_id != mUdpateSessionID)
+ if (!member || update_id != mUdpateSessionID)
{
return;
}