summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Productengine <adyukov@productengine.com>2010-10-28 20:16:11 +0300
committerAndrew Productengine <adyukov@productengine.com>2010-10-28 20:16:11 +0300
commitbf32cf1a62a8fb0d898977738972d7be14ebe028 (patch)
treeb0bc9b59854fe74db9697819c05ac8e8186fd186
parent158e647247f67344a5d7a9dde6ccc80bad615c9a (diff)
STORM-322 ADDITIONAL FIX Fixed a crash that happened when clicking "refresh" while names are caching
Refresh caused deletion of group members data (from gdatap->mMembers), so gdatap->mMembers[id] in LLPanelGroupMembersSubTab::onNameCache() was null and when it was passed into addMemberToList() there when getContribution() was called for it, crash happened. - Added check against NULL before using member data.
-rw-r--r--indra/newview/llpanelgrouproles.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp
index 0d1d96eae6..d1362d7922 100644
--- a/indra/newview/llpanelgrouproles.cpp
+++ b/indra/newview/llpanelgrouproles.cpp
@@ -1576,6 +1576,7 @@ void LLPanelGroupMembersSubTab::update(LLGroupChange gc)
void LLPanelGroupMembersSubTab::addMemberToList(LLUUID id, LLGroupMemberData* data)
{
+ if (!data) return;
LLUIString donated = getString("donation_area");
donated.setArg("[AREA]", llformat("%d", data->getContribution()));
@@ -1616,9 +1617,12 @@ void LLPanelGroupMembersSubTab::onNameCache(const LLUUID& update_id, const LLUUI
std::string fullname;
gCacheName->getFullName(id, fullname);
- if (matchesSearchFilter(fullname))
+
+ LLGroupMemberData* data;
+ // trying to avoid unnecessary hash lookups
+ if (matchesSearchFilter(fullname) && ((data = gdatap->mMembers[id]) != NULL))
{
- addMemberToList(id, gdatap->mMembers[id]);
+ addMemberToList(id, data);
if(!mMembersList->getEnabled())
{
mMembersList->setEnabled(TRUE);