UNO methods are no longer called directly on ServiceManager
Change-Id: I037ed9899873e614e9e10c89f1f8a74efa73d737
This commit is contained in:
parent
3d6d07a7e3
commit
882aaee5ff
@ -656,6 +656,34 @@ void cppuhelper::ServiceManager::loadImplementation(
|
||||
}
|
||||
}
|
||||
|
||||
void cppuhelper::ServiceManager::disposing() {
|
||||
std::vector< css::uno::Reference< css::lang::XComponent > > comps;
|
||||
Data clear;
|
||||
{
|
||||
osl::MutexGuard g(rBHelper.rMutex);
|
||||
for (Data::DynamicImplementations::const_iterator i(
|
||||
data_.dynamicImplementations.begin());
|
||||
i != data_.dynamicImplementations.end(); ++i)
|
||||
{
|
||||
assert(i->second.get() != 0);
|
||||
if (i->second->component.is()) {
|
||||
comps.push_back(i->second->component);
|
||||
}
|
||||
}
|
||||
data_.namedImplementations.swap(clear.namedImplementations);
|
||||
data_.dynamicImplementations.swap(clear.dynamicImplementations);
|
||||
data_.services.swap(clear.services);
|
||||
data_.singletons.swap(clear.singletons);
|
||||
}
|
||||
for (std::vector<
|
||||
css::uno::Reference< css::lang::XComponent > >::const_iterator i(
|
||||
comps.begin());
|
||||
i != comps.end(); ++i)
|
||||
{
|
||||
removeEventListenerFromComponent(*i);
|
||||
}
|
||||
}
|
||||
|
||||
rtl::OUString cppuhelper::ServiceManager::getImplementationName()
|
||||
throw (css::uno::RuntimeException)
|
||||
{
|
||||
@ -1102,34 +1130,6 @@ void cppuhelper::ServiceManager::disposing(
|
||||
false);
|
||||
}
|
||||
|
||||
void cppuhelper::ServiceManager::disposing() {
|
||||
std::vector< css::uno::Reference< css::lang::XComponent > > comps;
|
||||
Data clear;
|
||||
{
|
||||
osl::MutexGuard g(rBHelper.rMutex);
|
||||
for (Data::DynamicImplementations::const_iterator i(
|
||||
data_.dynamicImplementations.begin());
|
||||
i != data_.dynamicImplementations.end(); ++i)
|
||||
{
|
||||
assert(i->second.get() != 0);
|
||||
if (i->second->component.is()) {
|
||||
comps.push_back(i->second->component);
|
||||
}
|
||||
}
|
||||
data_.namedImplementations.swap(clear.namedImplementations);
|
||||
data_.dynamicImplementations.swap(clear.dynamicImplementations);
|
||||
data_.services.swap(clear.services);
|
||||
data_.singletons.swap(clear.singletons);
|
||||
}
|
||||
for (std::vector<
|
||||
css::uno::Reference< css::lang::XComponent > >::const_iterator i(
|
||||
comps.begin());
|
||||
i != comps.end(); ++i)
|
||||
{
|
||||
removeEventListenerFromComponent(*i);
|
||||
}
|
||||
}
|
||||
|
||||
void cppuhelper::ServiceManager::removeEventListenerFromComponent(
|
||||
css::uno::Reference< css::lang::XComponent > const & component)
|
||||
{
|
||||
|
@ -155,6 +155,11 @@ public:
|
||||
css::uno::Reference< css::lang::XSingleComponentFactory > * factory1,
|
||||
css::uno::Reference< css::lang::XSingleServiceFactory > * factory2);
|
||||
|
||||
private:
|
||||
virtual ~ServiceManager() {}
|
||||
|
||||
virtual void SAL_CALL disposing();
|
||||
|
||||
virtual rtl::OUString SAL_CALL getImplementationName()
|
||||
throw (css::uno::RuntimeException);
|
||||
|
||||
@ -278,11 +283,6 @@ public:
|
||||
virtual void SAL_CALL disposing(css::lang::EventObject const & Source)
|
||||
throw (css::uno::RuntimeException);
|
||||
|
||||
private:
|
||||
virtual ~ServiceManager() {}
|
||||
|
||||
virtual void SAL_CALL disposing();
|
||||
|
||||
// needs to be called with rBHelper.rMutex locked:
|
||||
bool isDisposed() { return rBHelper.bDisposed || rBHelper.bInDispose; }
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user