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

Caolán McNamara caolanm at redhat.com
Mon Sep 15 07:04:02 PDT 2014


 sfx2/source/appl/appbaslib.cxx |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

New commits:
commit 9128507579246b1559b0bc195d7e9f89541cbbbf
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon Sep 15 14:58:32 2014 +0100

    Resolves: fdo#81635 crash after 3rd call to ApplicationScriptLibraryContainer
    
    in PackageImpl::processPackage_
    
    xComponentContext->getServiceManager()->createInstanceWithContext(
                        "com.sun.star.script.ApplicationScriptLibraryContainer"
    
    does not increment the refcount, so on leaving the method the refcount
    is decremented by 1, because on the first enter the refcount happens to
    be three, then if the extension has more than 3 items in it the refcount
    hits 0 here and falls over
    
    some of fdo#79301, fdo#70607, fdo#66706 might be dups of this
    
    regression from 306efefe22e02248eff14f8be2cef68d75d26e55 I believe
    
    Change-Id: I3da50693fe656b68c5555b641d9b32246c8fc208

diff --git a/sfx2/source/appl/appbaslib.cxx b/sfx2/source/appl/appbaslib.cxx
index 3eee7e5..a6dcf9a 100644
--- a/sfx2/source/appl/appbaslib.cxx
+++ b/sfx2/source/appl/appbaslib.cxx
@@ -152,28 +152,28 @@ bool SfxBasicManagerHolder::LegacyPsswdBinaryLimitExceeded( Sequence< OUString >
     return true;
 }
 
-
 // Service for application library container
-
 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
 com_sun_star_comp_sfx2_ApplicationDialogLibraryContainer_get_implementation(
     css::uno::XComponentContext *,
     css::uno::Sequence<css::uno::Any> const &)
 {
     SfxGetpApp()->GetBasicManager();
-    return SfxGetpApp()->GetDialogContainer();
+    css::uno::XInterface* pRet = SfxGetpApp()->GetDialogContainer();
+    pRet->acquire();
+    return pRet;
 }
 
-
 // Service for application library container
-
 extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL
 com_sun_star_comp_sfx2_ApplicationScriptLibraryContainer_get_implementation(
     css::uno::XComponentContext *,
     css::uno::Sequence<css::uno::Any> const &)
 {
     SfxGetpApp()->GetBasicManager();
-    return SfxGetpApp()->GetBasicContainer();
+    css::uno::XInterface* pRet = SfxGetpApp()->GetBasicContainer();
+    pRet->acquire();
+    return pRet;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list