diff options
| author | Andrew Productengine <adyukov@productengine.com> | 2010-11-01 15:58:26 +0200 | 
|---|---|---|
| committer | Andrew Productengine <adyukov@productengine.com> | 2010-11-01 15:58:26 +0200 | 
| commit | f4d713ad1259b3a96d296ab75b9bac176f209472 (patch) | |
| tree | ccf2f1588529b03129597b2b5f66553eddf393ad /indra | |
| parent | 42b49397d2347b6a97394ce0b35efe5cc2ab44a2 (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().
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llpanelgroupgeneral.cpp | 3 | 
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;  	} | 
