diff options
-rw-r--r-- | cppuhelper/source/servicemanager.cxx | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/cppuhelper/source/servicemanager.cxx b/cppuhelper/source/servicemanager.cxx index dcb7af9c7bca..ce4bf4627025 100644 --- a/cppuhelper/source/servicemanager.cxx +++ b/cppuhelper/source/servicemanager.cxx @@ -1567,6 +1567,9 @@ bool cppuhelper::ServiceManager::removeLegacyFactory( } assert(i->second.get() != 0); clear = i->second; + if (removeListener) { + comp = i->second->component; + } //TODO: The below leaves data_ in an inconsistent state upon exceptions: removeFromImplementationMap( &data_.services, i->second->info->services, i->second); @@ -1576,9 +1579,6 @@ bool cppuhelper::ServiceManager::removeLegacyFactory( data_.namedImplementations.erase(i->second->info->name); } data_.dynamicImplementations.erase(i); - if (removeListener) { - comp = i->second->component; - } } if (comp.is()) { removeEventListenerFromComponent(comp); |