summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHecklezz <tj8@live.com.au>2026-07-27 04:29:37 +1000
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-07-27 21:23:57 +0300
commita0e4f187a5cafa104f3e93797cea64c73710c17c (patch)
tree232286671aa6ffb3d78e01d88a475909455f03d5
parente5fbe49ff74f09d6cd982764e7913086e8825423 (diff)
Fix LLGroupMgr::removeObserver possibly failing to find and erase observers
-rw-r--r--indra/newview/llgroupmgr.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/indra/newview/llgroupmgr.cpp b/indra/newview/llgroupmgr.cpp
index e0da762279..6081b36918 100644
--- a/indra/newview/llgroupmgr.cpp
+++ b/indra/newview/llgroupmgr.cpp
@@ -869,19 +869,15 @@ void LLGroupMgr::removeObserver(LLGroupMgrObserver* observer)
{
return;
}
- observer_multimap_t::iterator it;
- it = mObservers.find(observer->getID());
- while (it != mObservers.end())
+ observer_multimap_t::iterator it = mObservers.lower_bound(observer->getID());
+ observer_multimap_t::iterator end = mObservers.upper_bound(observer->getID());
+ for (; it != end; ++it)
{
if (it->second == observer)
{
mObservers.erase(it);
break;
}
- else
- {
- ++it;
- }
}
}