diff options
| author | Andrew Productengine <adyukov@productengine.com> | 2010-10-28 20:16:11 +0300 | 
|---|---|---|
| committer | Andrew Productengine <adyukov@productengine.com> | 2010-10-28 20:16:11 +0300 | 
| commit | bf32cf1a62a8fb0d898977738972d7be14ebe028 (patch) | |
| tree | b0bc9b59854fe74db9697819c05ac8e8186fd186 | |
| parent | 158e647247f67344a5d7a9dde6ccc80bad615c9a (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.cpp | 8 | 
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); | 
