[Libreoffice-commits] core.git: sd/source

Caolán McNamara caolanm at redhat.com
Thu Mar 9 08:58:07 UTC 2017


 sd/source/ui/framework/configuration/ResourceFactoryManager.cxx |   10 ++++++++++
 1 file changed, 10 insertions(+)

New commits:
commit de978c0437620b84c3678705c926804318f6a996
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Wed Mar 8 17:06:36 2017 +0000

    valgrind: fix leak
    
    ==2184== 1,396 (24 direct, 1,372 indirect) bytes in 1 blocks are definitely lost in loss record 11,080 of 11,791
    ...
    ==2184==    by 0x31D4F774: sd::framework::BasicPaneFactory::createResource(com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId> const&) (BasicPaneFactory.cxx:258)
    ...
    ==2184==    by 0x31D3F550: sd::framework::ConfigurationControllerResourceManager::ActivateResources(std::__debug::vector<com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId>, std::allocator<com::sun::star::uno::Reference<com::sun::star::drawing::framework::XResourceId> > > const&, com::sun::star::uno::Reference<com::sun::star::drawing::framework::XConfiguration> const&) (ConfigurationControllerResourceManager.cxx:74)
    ...
    ==2184==    by 0x31D426A3: sd::framework::ConfigurationUpdater::UpdateCore(sd::framework::ConfigurationClassifier const&) (ConfigurationUpdater.cxx:247)
    ==2184==    by 0x31D42B76: sd::framework::ConfigurationUpdater::UpdateConfiguration() (ConfigurationUpdater.cxx:156)
    ==2184==    by 0x31D42F3E: sd::framework::ConfigurationUpdater::RequestUpdate(com::sun::star::uno::Reference<com::sun::star::drawing::framework::XConfiguration> const&) (ConfigurationUpdater.cxx:103)
    
    Change-Id: I257ae26bc0e61696b1c8e27a1b3a75a993fac1a5
    Reviewed-on: https://gerrit.libreoffice.org/34982
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sd/source/ui/framework/configuration/ResourceFactoryManager.cxx b/sd/source/ui/framework/configuration/ResourceFactoryManager.cxx
index 29a157d..adf3ed1 100644
--- a/sd/source/ui/framework/configuration/ResourceFactoryManager.cxx
+++ b/sd/source/ui/framework/configuration/ResourceFactoryManager.cxx
@@ -50,6 +50,16 @@ ResourceFactoryManager::ResourceFactoryManager (const Reference<XControllerManag
 
 ResourceFactoryManager::~ResourceFactoryManager()
 {
+    for (auto iXInterfaceResource = maFactoryMap.begin();
+         iXInterfaceResource != maFactoryMap.end();
+         ++iXInterfaceResource)
+    {
+        Reference<lang::XComponent> xComponent (iXInterfaceResource->second, UNO_QUERY);
+        iXInterfaceResource->second = nullptr;
+        if (xComponent.is())
+            xComponent->dispose();
+    }
+
     Reference<lang::XComponent> xComponent (mxURLTransformer, UNO_QUERY);
     if (xComponent.is())
         xComponent->dispose();


More information about the Libreoffice-commits mailing list