diff options
Diffstat (limited to 'indra/newview/llgroupmgr.cpp')
| -rw-r--r-- | indra/newview/llgroupmgr.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/indra/newview/llgroupmgr.cpp b/indra/newview/llgroupmgr.cpp index 7d7a5b9a3a..d1116b66e1 100644 --- a/indra/newview/llgroupmgr.cpp +++ b/indra/newview/llgroupmgr.cpp @@ -780,7 +780,10 @@ void LLGroupMgr::removeObserver(LLGroupMgrObserver* observer) mObservers.erase(it); break; } - ++it; + else + { + ++it; + } } } @@ -1287,6 +1290,7 @@ void LLGroupMgr::processCreateGroupReply(LLMessageSystem* msg, void ** data) LLGroupMgrGroupData* LLGroupMgr::createGroupData(const LLUUID& id) { LLGroupMgrGroupData* group_datap; + group_iter existing_group = gGroupMgr->mGroups.find(id); if (existing_group == gGroupMgr->mGroups.end()) { @@ -1320,7 +1324,6 @@ void LLGroupMgr::notifyObservers(LLGroupChange gc) void LLGroupMgr::addGroup(LLGroupMgrGroupData* group_datap) { - mGroups[group_datap->getID()] = group_datap; if (mGroups.size() > MAX_CACHED_GROUPS) { // get rid of groups that aren't observed @@ -1330,8 +1333,8 @@ void LLGroupMgr::addGroup(LLGroupMgrGroupData* group_datap) if (oi == mObservers.end()) { // not observed - LLGroupMgrGroupData* group_datap = gi->second; - delete group_datap; + LLGroupMgrGroupData* unobserved_groupp = gi->second; + delete unobserved_groupp; mGroups.erase(gi++); } else @@ -1340,6 +1343,7 @@ void LLGroupMgr::addGroup(LLGroupMgrGroupData* group_datap) } } } + mGroups[group_datap->getID()] = group_datap; } |
