From f4d713ad1259b3a96d296ab75b9bac176f209472 Mon Sep 17 00:00:00 2001 From: Andrew Productengine Date: Mon, 1 Nov 2010 15:58:26 +0200 Subject: 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(). --- indra/newview/llpanelgroupgeneral.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'indra/newview') 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; } -- cgit v1.2.3