From 86cda9ab3cdfc2f253b4d2f44dd00f40d8574210 Mon Sep 17 00:00:00 2001 From: Julien Nabet Date: Wed, 22 Nov 2017 18:48:12 +0100 Subject: Revert partly 9d1f61a61893435b26f7239136ad92b7354545a8 The use of erase/remove idiom is wrong here since "there can be multiple registrations of the same listener" See Stephan's comments in https://gerrit.libreoffice.org/#/c/44892/3/binaryurp/source/bridge.cxx Change-Id: Iebf979ca25520392ba9de6439d5bf19b8e3446b2 Reviewed-on: https://gerrit.libreoffice.org/45104 Tested-by: Julien Nabet Reviewed-by: Julien Nabet --- binaryurp/source/bridge.cxx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'binaryurp') diff --git a/binaryurp/source/bridge.cxx b/binaryurp/source/bridge.cxx index 92a1665d8a45..d39d1f24e667 100644 --- a/binaryurp/source/bridge.cxx +++ b/binaryurp/source/bridge.cxx @@ -927,7 +927,11 @@ void Bridge::removeEventListener( css::uno::Reference< css::lang::XEventListener > const & aListener) { osl::MutexGuard g(mutex_); - listeners_.erase(std::remove(listeners_.begin(), listeners_.end(), aListener), listeners_.end()); + Listeners::iterator i( + std::find(listeners_.begin(), listeners_.end(), aListener)); + if (i != listeners_.end()) { + listeners_.erase(i); + } } void Bridge::sendCommitChangeRequest() { -- cgit