From 11d6e5ffc989ec5fb05332606dad417b1a3a12ae Mon Sep 17 00:00:00 2001 From: Hecklezz Date: Tue, 28 Jul 2026 07:59:41 +1000 Subject: [PATCH] Fix LLGroupMgr::removeObserver possibly failing to find and erase observers Merged upstream in SLViewer PR#6051 --- 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 d9ec2dc0c5..457b090ace 100644 --- a/indra/newview/llgroupmgr.cpp +++ b/indra/newview/llgroupmgr.cpp @@ -888,19 +888,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; - } } }