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 | |
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().
-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; } |