summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Stahl <mstahl@redhat.com>2016-11-22 22:49:15 +0100
committerMichael Stahl <mstahl@redhat.com>2016-11-25 13:00:35 +0000
commitc100e38b49512512b11a0c594f244a4937bc6d66 (patch)
treeb9c76ea778f06220cd9382eaa30d1db980b94679
parentc53cf1dfc5eacd8fee6b2b549ec6b59ad927e01c (diff)
presenter console: fix STL assert when exiting slide show
AtkListener::handleChildRemoved() calls removeAccessibleEventListener(), apparently without the listener being registered, so the remove() returns end(), which isn't valid for erase(). (probably happens since e4e208fa2b0930be5a7cbbe2fab2ff2fe2c4a1ff) Change-Id: Ia0de1bafe214f5a46f250d6573d8c4b408c9cf26 (cherry picked from commit f6d2ff1cb7f0f4917a0d4df38d5dcff8e37d20cc) Reviewed-on: https://gerrit.libreoffice.org/31192 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
-rw-r--r--sdext/source/presenter/PresenterAccessibility.cxx6
1 files changed, 5 insertions, 1 deletions
diff --git a/sdext/source/presenter/PresenterAccessibility.cxx b/sdext/source/presenter/PresenterAccessibility.cxx
index 7c474b288daf..48916ebf025a 100644
--- a/sdext/source/presenter/PresenterAccessibility.cxx
+++ b/sdext/source/presenter/PresenterAccessibility.cxx
@@ -1109,7 +1109,11 @@ void SAL_CALL PresenterAccessible::AccessibleObject::removeAccessibleEventListen
{
const osl::MutexGuard aGuard(m_aMutex);
- maListeners.erase(std::remove(maListeners.begin(), maListeners.end(), rxListener));
+ auto const it(std::remove(maListeners.begin(), maListeners.end(), rxListener));
+ if (it != maListeners.end())
+ {
+ maListeners.erase(it);
+ }
}
}