From a0e4f187a5cafa104f3e93797cea64c73710c17c Mon Sep 17 00:00:00 2001 From: Hecklezz Date: Mon, 27 Jul 2026 04:29:37 +1000 Subject: Fix LLGroupMgr::removeObserver possibly failing to find and erase observers --- indra/newview/llgroupmgr.cpp | 10 +++------- 1 file 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; - } } } -- cgit v1.3