include/svx/gallery1.hxx             |    2 
 svx/qa/unit/gallery/test_gallery.cxx |    4 +
 svx/source/gallery2/galbrws1.cxx     |   77 ++++++++++++++++++-----------------
 svx/source/inc/galbrws1.hxx          |    2 
 4 files changed, 46 insertions(+), 39 deletions(-)

New commits:
commit 3843658c92dc5e66eaad3eae6ab5aa0bcd88bd1a
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Sat Sep 7 20:21:06 2024 +0100
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Mon Sep 9 12:00:27 2024 +0200

    enforce null checking of AcquireTheme return
    
    Change-Id: I184603be25be734ec377439622872406ef74898a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173026
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173065

diff --git a/include/svx/gallery1.hxx b/include/svx/gallery1.hxx
index 97e5f4569a9a..c889435568a3 100644
--- a/include/svx/gallery1.hxx
+++ b/include/svx/gallery1.hxx
@@ -132,7 +132,7 @@ public:
     void                        RenameTheme( const OUString& rOldName, const 
OUString& rNewName );
     bool                        RemoveTheme( const OUString& rThemeName );
 
-    GalleryTheme*               AcquireTheme( std::u16string_view rThemeName, 
SfxListener& rListener );
+    SAL_RET_MAYBENULL GalleryTheme* AcquireTheme( std::u16string_view 
rThemeName, SfxListener& rListener );
     void                        ReleaseTheme( GalleryTheme* pTheme, 
SfxListener& rListener );
 
 public:
diff --git a/svx/qa/unit/gallery/test_gallery.cxx 
b/svx/qa/unit/gallery/test_gallery.cxx
index 7e2df25e14cb..79f0d85c08e8 100644
--- a/svx/qa/unit/gallery/test_gallery.cxx
+++ b/svx/qa/unit/gallery/test_gallery.cxx
@@ -306,6 +306,7 @@ void GalleryObjTest::TestInsertGalleryObject()
 
     // Insert Objects Into Theme
     GalleryTheme* pGalleryTheme = pGallery->AcquireTheme(myThemeName, 
aListener);
+    CPPUNIT_ASSERT(pGalleryTheme);
     CPPUNIT_ASSERT_EQUAL_MESSAGE("Object count inconsistent", sal_uInt32(0),
                                  pGalleryTheme->GetObjectCount());
 
@@ -352,6 +353,7 @@ void GalleryObjTest::TestRemoveGalleryObject()
 
     // Insert Objects Into Theme
     GalleryTheme* pGalleryTheme = pGallery->AcquireTheme(myThemeName, 
aListener);
+    CPPUNIT_ASSERT(pGalleryTheme);
     CPPUNIT_ASSERT_EQUAL_MESSAGE("Object count inconsistent", sal_uInt32(0),
                                  pGalleryTheme->GetObjectCount());
 
@@ -408,6 +410,7 @@ void GalleryObjTest::TestChangePositionGalleryObject()
 
     // Insert Objects Into Theme
     GalleryTheme* pGalleryTheme = pGallery->AcquireTheme(myThemeName, 
aListener);
+    CPPUNIT_ASSERT(pGalleryTheme);
     CPPUNIT_ASSERT_EQUAL_MESSAGE("Object count inconsistent", sal_uInt32(0),
                                  pGalleryTheme->GetObjectCount());
 
@@ -469,6 +472,7 @@ void GalleryObjTest::TestGetThemeNameFromGalleryTheme()
     SfxApplication::GetOrCreate();
 
     GalleryTheme* pGalleryTheme = pGallery->AcquireTheme(myThemeName, 
aListener);
+    CPPUNIT_ASSERT(pGalleryTheme);
     CPPUNIT_ASSERT_EQUAL_MESSAGE("Object count inconsistent", sal_uInt32(0),
                                  pGalleryTheme->GetObjectCount());
 
diff --git a/svx/source/gallery2/galbrws1.cxx b/svx/source/gallery2/galbrws1.cxx
index 51dfd90d4a2c..f17bf7871917 100644
--- a/svx/source/gallery2/galbrws1.cxx
+++ b/svx/source/gallery2/galbrws1.cxx
@@ -359,13 +359,14 @@ void GalleryBrowser1::ImplExecute(std::u16string_view 
rIdent)
 {
     if (rIdent == u"update")
     {
-        GalleryTheme*       pTheme = mpGallery->AcquireTheme( 
GetSelectedTheme(), maLocalListener );
-
-        SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
-        ScopedVclPtr<VclAbstractDialog> 
aActualizeProgress(pFact->CreateActualizeProgressDialog(mxThemes.get(), 
pTheme));
+        if (GalleryTheme* pTheme = mpGallery->AcquireTheme( 
GetSelectedTheme(), maLocalListener ))
+        {
+            SvxAbstractDialogFactory* pFact = 
SvxAbstractDialogFactory::Create();
+            ScopedVclPtr<VclAbstractDialog> 
aActualizeProgress(pFact->CreateActualizeProgressDialog(mxThemes.get(), 
pTheme));
 
-        aActualizeProgress->Execute();
-        mpGallery->ReleaseTheme( pTheme, maLocalListener );
+            aActualizeProgress->Execute();
+            mpGallery->ReleaseTheme( pTheme, maLocalListener );
+        }
     }
     else if (rIdent == u"delete")
     {
@@ -376,45 +377,47 @@ void GalleryBrowser1::ImplExecute(std::u16string_view 
rIdent)
     }
     else if (rIdent == u"rename")
     {
-        GalleryTheme*   pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), 
maLocalListener );
-        const OUString  aOldName( pTheme->GetName() );
-
-        SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
-        ScopedVclPtr<AbstractTitleDialog> 
aDlg(pFact->CreateTitleDialog(mxThemes.get(), aOldName));
-
-        if( aDlg->Execute() == RET_OK )
+        if (GalleryTheme* pTheme = mpGallery->AcquireTheme(GetSelectedTheme(), 
maLocalListener))
         {
-            const OUString aNewName( aDlg->GetTitle() );
+            const OUString  aOldName( pTheme->GetName() );
+
+            SvxAbstractDialogFactory* pFact = 
SvxAbstractDialogFactory::Create();
+            ScopedVclPtr<AbstractTitleDialog> 
aDlg(pFact->CreateTitleDialog(mxThemes.get(), aOldName));
 
-            if( !aNewName.isEmpty() && ( aNewName != aOldName ) )
+            if( aDlg->Execute() == RET_OK )
             {
-                OUString  aName( aNewName );
-                sal_uInt16  nCount = 0;
+                const OUString aNewName( aDlg->GetTitle() );
 
-                while( mpGallery->HasTheme( aName ) && ( nCount++ < 16000 ) )
+                if( !aNewName.isEmpty() && ( aNewName != aOldName ) )
                 {
-                    aName = aNewName + " " + OUString::number( nCount );
-                }
+                    OUString  aName( aNewName );
+                    sal_uInt16  nCount = 0;
 
-                mpGallery->RenameTheme( aOldName, aName );
+                    while( mpGallery->HasTheme( aName ) && ( nCount++ < 16000 
) )
+                    {
+                        aName = aNewName + " " + OUString::number( nCount );
+                    }
+
+                    mpGallery->RenameTheme( aOldName, aName );
+                }
             }
+            mpGallery->ReleaseTheme( pTheme, maLocalListener );
         }
-        mpGallery->ReleaseTheme( pTheme, maLocalListener );
     }
     else if (rIdent == u"assign")
     {
-        GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), 
maLocalListener );
-
-        if (pTheme && !pTheme->IsReadOnly())
+        if (GalleryTheme* pTheme = mpGallery->AcquireTheme( 
GetSelectedTheme(), maLocalListener ))
         {
+            if (!pTheme->IsReadOnly())
+            {
+                SvxAbstractDialogFactory* pFact = 
SvxAbstractDialogFactory::Create();
+                ScopedVclPtr<AbstractGalleryIdDialog> 
aDlg(pFact->CreateGalleryIdDialog(mxThemes.get(), pTheme));
+                if( aDlg->Execute() == RET_OK )
+                    pTheme->SetId( aDlg->GetId(), true );
+            }
 
-            SvxAbstractDialogFactory* pFact = 
SvxAbstractDialogFactory::Create();
-            ScopedVclPtr<AbstractGalleryIdDialog> 
aDlg(pFact->CreateGalleryIdDialog(mxThemes.get(), pTheme));
-            if( aDlg->Execute() == RET_OK )
-                pTheme->SetId( aDlg->GetId(), true );
+            mpGallery->ReleaseTheme( pTheme, maLocalListener );
         }
-
-        mpGallery->ReleaseTheme( pTheme, maLocalListener );
     }
     else if (rIdent == u"properties")
     {
commit 60be4fb9a81a7d896e0b21b8b74944150b76918f
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Sat Sep 7 18:03:51 2024 +0200
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Mon Sep 9 12:00:17 2024 +0200

    svx: maLocalListner -> maLocalListener
    
    Change-Id: Ie9ba310fcc57f27bcdbeb8dcb9ca1e0ecb35df0f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172998
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>
    Signed-off-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173064

diff --git a/svx/source/gallery2/galbrws1.cxx b/svx/source/gallery2/galbrws1.cxx
index 4b961203e887..51dfd90d4a2c 100644
--- a/svx/source/gallery2/galbrws1.cxx
+++ b/svx/source/gallery2/galbrws1.cxx
@@ -248,7 +248,7 @@ void GalleryBrowser1::ImplFillExchangeData( const 
GalleryTheme* pThm, ExchangeDa
 
 void GalleryBrowser1::ImplGetExecuteVector(std::vector<OUString>& o_aExec)
 {
-    GalleryTheme*           pTheme = mpGallery->AcquireTheme( 
GetSelectedTheme(), maLocalListner );
+    GalleryTheme*           pTheme = mpGallery->AcquireTheme( 
GetSelectedTheme(), maLocalListener );
 
     if( !pTheme )
         return;
@@ -280,14 +280,14 @@ void 
GalleryBrowser1::ImplGetExecuteVector(std::vector<OUString>& o_aExec)
 
     o_aExec.emplace_back("properties");
 
-    mpGallery->ReleaseTheme( pTheme, maLocalListner );
+    mpGallery->ReleaseTheme( pTheme, maLocalListener );
 }
 
 void GalleryBrowser1::ImplGalleryThemeProperties( std::u16string_view 
rThemeName, bool bCreateNew )
 {
     DBG_ASSERT(!mpThemePropsDlgItemSet, "mpThemePropsDlgItemSet already set!");
     mpThemePropsDlgItemSet.reset(new SfxItemSet( SfxGetpApp()->GetPool() ));
-    GalleryTheme*   pTheme = mpGallery->AcquireTheme( rThemeName, 
maLocalListner );
+    GalleryTheme*   pTheme = mpGallery->AcquireTheme( rThemeName, 
maLocalListener );
 
     ImplFillExchangeData( pTheme, *mpExchangeData );
 
@@ -337,7 +337,7 @@ void GalleryBrowser1::ImplEndGalleryThemeProperties(bool 
bCreateNew, sal_Int32 n
     }
 
     OUString aThemeName( mpExchangeData->pTheme->GetName() );
-    mpGallery->ReleaseTheme( mpExchangeData->pTheme, maLocalListner );
+    mpGallery->ReleaseTheme( mpExchangeData->pTheme, maLocalListener );
 
     if ( bCreateNew && ( nRet != RET_OK ) )
     {
@@ -359,13 +359,13 @@ void GalleryBrowser1::ImplExecute(std::u16string_view 
rIdent)
 {
     if (rIdent == u"update")
     {
-        GalleryTheme*       pTheme = mpGallery->AcquireTheme( 
GetSelectedTheme(), maLocalListner );
+        GalleryTheme*       pTheme = mpGallery->AcquireTheme( 
GetSelectedTheme(), maLocalListener );
 
         SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
         ScopedVclPtr<VclAbstractDialog> 
aActualizeProgress(pFact->CreateActualizeProgressDialog(mxThemes.get(), 
pTheme));
 
         aActualizeProgress->Execute();
-        mpGallery->ReleaseTheme( pTheme, maLocalListner );
+        mpGallery->ReleaseTheme( pTheme, maLocalListener );
     }
     else if (rIdent == u"delete")
     {
@@ -376,7 +376,7 @@ void GalleryBrowser1::ImplExecute(std::u16string_view 
rIdent)
     }
     else if (rIdent == u"rename")
     {
-        GalleryTheme*   pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), 
maLocalListner );
+        GalleryTheme*   pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), 
maLocalListener );
         const OUString  aOldName( pTheme->GetName() );
 
         SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
@@ -399,11 +399,11 @@ void GalleryBrowser1::ImplExecute(std::u16string_view 
rIdent)
                 mpGallery->RenameTheme( aOldName, aName );
             }
         }
-        mpGallery->ReleaseTheme( pTheme, maLocalListner );
+        mpGallery->ReleaseTheme( pTheme, maLocalListener );
     }
     else if (rIdent == u"assign")
     {
-        GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), 
maLocalListner );
+        GalleryTheme* pTheme = mpGallery->AcquireTheme( GetSelectedTheme(), 
maLocalListener );
 
         if (pTheme && !pTheme->IsReadOnly())
         {
@@ -414,7 +414,7 @@ void GalleryBrowser1::ImplExecute(std::u16string_view 
rIdent)
                 pTheme->SetId( aDlg->GetId(), true );
         }
 
-        mpGallery->ReleaseTheme( pTheme, maLocalListner );
+        mpGallery->ReleaseTheme( pTheme, maLocalListener );
     }
     else if (rIdent == u"properties")
     {
@@ -1497,7 +1497,7 @@ void GalleryBrowser1::FillThemeEntries()
             const GalleryThemeEntry* pThemeInfo = mpGallery->GetThemeInfo( i );
             OUString aThemeName = pThemeInfo->GetThemeName();
             //sal_uInt32 nId = pThemeInfo->GetId();
-            if (GalleryTheme* pTheme = mpGallery->AcquireTheme(aThemeName, 
maLocalListner))
+            if (GalleryTheme* pTheme = mpGallery->AcquireTheme(aThemeName, 
maLocalListener))
             {
                 sal_uInt32 nObjectCount = pTheme->GetObjectCount();
                 for (size_t nObject = 0; nObject < nObjectCount; ++nObject)
@@ -1508,7 +1508,7 @@ void GalleryBrowser1::FillThemeEntries()
                         maAllThemeEntries.push_back(ThemeEntry(aThemeName, 
aTitle, nObject));
                     }
                 }
-                mpGallery->ReleaseTheme(pTheme, maLocalListner);
+                mpGallery->ReleaseTheme(pTheme, maLocalListener);
             }
         }
         maFoundThemeEntries.assign(maAllThemeEntries.begin(), 
maAllThemeEntries.end());
diff --git a/svx/source/inc/galbrws1.hxx b/svx/source/inc/galbrws1.hxx
index 50cffa1ddd7b..2796bbcc2e72 100644
--- a/svx/source/inc/galbrws1.hxx
+++ b/svx/source/inc/galbrws1.hxx
@@ -135,7 +135,7 @@ private:
     css::uno::Reference<css::util::XURLTransformer> m_xTransformer;
 
     CharClass m_aCharacterClassficator;
-    SfxListener maLocalListner;
+    SfxListener maLocalListener;
 
     void ImplInsertThemeEntry(const GalleryThemeEntry* pEntry);
     static void ImplFillExchangeData(const GalleryTheme* pThm, ExchangeData& 
rData);

Reply via email to