summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Productengine <adyukov@productengine.com>2010-11-01 15:58:26 +0200
committerAndrew Productengine <adyukov@productengine.com>2010-11-01 15:58:26 +0200
commitf4d713ad1259b3a96d296ab75b9bac176f209472 (patch)
treeccf2f1588529b03129597b2b5f66553eddf393ad
parent42b49397d2347b6a97394ce0b35efe5cc2ab44a2 (diff)
STORM-404 FIXED Fixed crash in LLPanelGroupGeneral::updateMembers().
Crash happened when trying to create new group while other group was still updating. It was caused by invalid iterator mMemberProgress in LLPanelGroupGeneral::updateMembers(). Its usage shouldn't have been reached when member list is cleared and empty thanking to gdatap->isMemberDataComplete() check at the beginning of the function. But when the new group was created while members of other group were still updating this protection failed: in LLGroupMgr::processGroupMembersReply() for the group being created mMemberDataComplete was set TRUE when group size was zero(because this new group still had no members). So the check for completness in LLPanelGroupGeneral::updateMembers() was succesfully passed, and further in this method viewer crashed. - Added check for emptiness of member list into LLPanelGroupGeneral::updateMembers().
-rw-r--r--indra/newview/llpanelgroupgeneral.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp
index 80df420a4e..ec340dc258 100644
--- a/indra/newview/llpanelgroupgeneral.cpp
+++ b/indra/newview/llpanelgroupgeneral.cpp
@@ -692,7 +692,8 @@ void LLPanelGroupGeneral::updateMembers()
LLGroupMgrGroupData* gdatap = LLGroupMgr::getInstance()->getGroupData(mGroupID);
if (!mListVisibleMembers || !gdatap
- || !gdatap->isMemberDataComplete())
+ || !gdatap->isMemberDataComplete()
+ || gdatap->mMembers.empty())
{
return;
}