svx/inc/XPropertyTable.hxx            |   14 +++----
 svx/source/unodraw/XPropertyTable.cxx |   62 +++++++++++++++-------------------
 svx/source/xoutdev/xtabbtmp.cxx       |    3 -
 svx/source/xoutdev/xtabcolr.cxx       |    4 --
 svx/source/xoutdev/xtabdash.cxx       |    3 -
 svx/source/xoutdev/xtabgrdt.cxx       |    4 --
 svx/source/xoutdev/xtabhtch.cxx       |    3 -
 svx/source/xoutdev/xtablend.cxx       |    3 -
 svx/source/xoutdev/xtabptrn.cxx       |    3 -
 9 files changed, 42 insertions(+), 57 deletions(-)

New commits:
commit 37a5d60df7631cca8ce597905d09748a48ff2a86
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Wed May 25 08:07:33 2022 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Wed May 25 09:23:39 2022 +0200

    SvxUnoXPropertyTable is never passed a null ptr
    
    and make the type of the constructor functions more precise to avoid
    unnecessary UNO_QUERY at the call site
    
    Change-Id: I8164fd3df131720cf86eaf6d49735a3157d3cc97
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/134914
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/svx/inc/XPropertyTable.hxx b/svx/inc/XPropertyTable.hxx
index 19da2a0b524a..e9f76965ef36 100644
--- a/svx/inc/XPropertyTable.hxx
+++ b/svx/inc/XPropertyTable.hxx
@@ -19,17 +19,17 @@
 
 #pragma once
 
-#include <com/sun/star/uno/XInterface.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
 #include <svx/xtable.hxx>
 
 // FIXME: should have a single factory method with an enumeration here [!]
 
-css::uno::Reference< css::uno::XInterface > SvxUnoXColorTable_createInstance( 
XPropertyList* pList ) noexcept;
-css::uno::Reference< css::uno::XInterface > 
SvxUnoXLineEndTable_createInstance( XPropertyList* pList ) noexcept;
-css::uno::Reference< css::uno::XInterface > SvxUnoXDashTable_createInstance( 
XPropertyList* pList ) noexcept;
-css::uno::Reference< css::uno::XInterface > SvxUnoXHatchTable_createInstance( 
XPropertyList* pList ) noexcept;
-css::uno::Reference< css::uno::XInterface > 
SvxUnoXGradientTable_createInstance( XPropertyList* pList ) noexcept;
-css::uno::Reference< css::uno::XInterface > SvxUnoXBitmapTable_createInstance( 
XPropertyList* pList ) noexcept;
+css::uno::Reference< css::container::XNameContainer > 
SvxUnoXColorTable_createInstance( XPropertyList& rList ) noexcept;
+css::uno::Reference< css::container::XNameContainer > 
SvxUnoXLineEndTable_createInstance( XPropertyList& rList ) noexcept;
+css::uno::Reference< css::container::XNameContainer > 
SvxUnoXDashTable_createInstance( XPropertyList& rList ) noexcept;
+css::uno::Reference< css::container::XNameContainer > 
SvxUnoXHatchTable_createInstance( XPropertyList& rList ) noexcept;
+css::uno::Reference< css::container::XNameContainer > 
SvxUnoXGradientTable_createInstance( XPropertyList& rList ) noexcept;
+css::uno::Reference< css::container::XNameContainer > 
SvxUnoXBitmapTable_createInstance( XPropertyList& rList ) noexcept;
 
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/svx/source/unodraw/XPropertyTable.cxx 
b/svx/source/unodraw/XPropertyTable.cxx
index 9455f1fe4069..56bb135237f8 100644
--- a/svx/source/unodraw/XPropertyTable.cxx
+++ b/svx/source/unodraw/XPropertyTable.cxx
@@ -46,13 +46,13 @@ namespace {
 class SvxUnoXPropertyTable : public WeakImplHelper< container::XNameContainer, 
lang::XServiceInfo >
 {
 private:
-    XPropertyList*  mpList;
+    XPropertyList& mrList;
     sal_Int16 mnWhich;
 
-    tools::Long getCount() const { return mpList ? mpList->Count() : 0; }
+    tools::Long getCount() const { return mrList.Count(); }
     const XPropertyEntry* get(tools::Long index) const;
 public:
-    SvxUnoXPropertyTable( sal_Int16 nWhich, XPropertyList* pList ) noexcept;
+    SvxUnoXPropertyTable( sal_Int16 nWhich, XPropertyList& rList ) noexcept;
 
     /// @throws uno::RuntimeException
     virtual uno::Any getAny( const XPropertyEntry* pEntry ) const = 0;
@@ -81,17 +81,14 @@ public:
 
 }
 
-SvxUnoXPropertyTable::SvxUnoXPropertyTable( sal_Int16 nWhich, XPropertyList* 
pList ) noexcept
-: mpList( pList ), mnWhich( nWhich )
+SvxUnoXPropertyTable::SvxUnoXPropertyTable( sal_Int16 nWhich, XPropertyList& 
rList ) noexcept
+: mrList( rList ), mnWhich( nWhich )
 {
 }
 
 const XPropertyEntry* SvxUnoXPropertyTable::get(tools::Long index) const
 {
-    if( mpList )
-        return mpList->Get(index);
-    else
-        return nullptr;
+   return mrList.Get(index);
 }
 
 // XServiceInfo
@@ -105,9 +102,6 @@ void SAL_CALL SvxUnoXPropertyTable::insertByName( const  
OUString& aName, const
 {
     SolarMutexGuard aGuard;
 
-    if( nullptr == mpList )
-        throw lang::IllegalArgumentException();
-
     if( hasByName( aName ) )
         throw container::ElementExistException();
 
@@ -117,7 +111,7 @@ void SAL_CALL SvxUnoXPropertyTable::insertByName( const  
OUString& aName, const
     if (!pNewEntry)
         throw lang::IllegalArgumentException();
 
-    mpList->Insert(std::move(pNewEntry));
+    mrList.Insert(std::move(pNewEntry));
 }
 
 void SAL_CALL SvxUnoXPropertyTable::removeByName( const  OUString& Name )
@@ -133,7 +127,7 @@ void SAL_CALL SvxUnoXPropertyTable::removeByName( const  
OUString& Name )
         const XPropertyEntry* pEntry = get(i);
         if (pEntry && aInternalName == pEntry->GetName())
         {
-            mpList->Remove(i);
+            mrList.Remove(i);
             return;
         }
     }
@@ -159,7 +153,7 @@ void SAL_CALL SvxUnoXPropertyTable::replaceByName( const  
OUString& aName, const
             if (!pNewEntry)
                 throw lang::IllegalArgumentException();
 
-            mpList->Replace(std::move(pNewEntry), i);
+            mrList.Replace(std::move(pNewEntry), i);
             return;
         }
     }
@@ -212,7 +206,7 @@ sal_Bool SAL_CALL SvxUnoXPropertyTable::hasByName( const  
OUString& aName )
 
     OUString aInternalName = SvxUnogetInternalNameForItem(mnWhich, aName);
 
-    const tools::Long nCount = mpList?mpList->Count():0;
+    const tools::Long nCount = mrList.Count();
     tools::Long i;
     for( i = 0; i < nCount; i++ )
     {
@@ -237,7 +231,7 @@ namespace {
 class SvxUnoXColorTable : public SvxUnoXPropertyTable
 {
 public:
-    explicit SvxUnoXColorTable( XPropertyList* pList ) noexcept : 
SvxUnoXPropertyTable( XATTR_LINECOLOR, pList ) {};
+    explicit SvxUnoXColorTable( XPropertyList& rList ) noexcept : 
SvxUnoXPropertyTable( XATTR_LINECOLOR, rList ) {};
 
     // SvxUnoXPropertyTable
     virtual uno::Any getAny( const XPropertyEntry* pEntry ) const noexcept 
override;
@@ -253,9 +247,9 @@ public:
 
 }
 
-uno::Reference< uno::XInterface > SvxUnoXColorTable_createInstance( 
XPropertyList* pList ) noexcept
+uno::Reference< container::XNameContainer > SvxUnoXColorTable_createInstance( 
XPropertyList& rList ) noexcept
 {
-    return static_cast<OWeakObject*>(new SvxUnoXColorTable( pList ));
+    return new SvxUnoXColorTable( rList );
 }
 
 // SvxUnoXPropertyTable
@@ -295,7 +289,7 @@ namespace {
 class SvxUnoXLineEndTable : public SvxUnoXPropertyTable
 {
 public:
-    explicit SvxUnoXLineEndTable( XPropertyList* pTable ) noexcept : 
SvxUnoXPropertyTable( XATTR_LINEEND, pTable ) {};
+    explicit SvxUnoXLineEndTable( XPropertyList& rTable ) noexcept : 
SvxUnoXPropertyTable( XATTR_LINEEND, rTable ) {};
 
     // SvxUnoXPropertyTable
     virtual uno::Any getAny( const XPropertyEntry* pEntry ) const noexcept 
override;
@@ -311,9 +305,9 @@ public:
 
 }
 
-uno::Reference< uno::XInterface > SvxUnoXLineEndTable_createInstance( 
XPropertyList* pTable ) noexcept
+uno::Reference< container::XNameContainer > 
SvxUnoXLineEndTable_createInstance( XPropertyList& rTable ) noexcept
 {
-    return static_cast<OWeakObject*>(new SvxUnoXLineEndTable( pTable ));
+    return new SvxUnoXLineEndTable( rTable );
 }
 
 // SvxUnoXPropertyTable
@@ -363,7 +357,7 @@ namespace {
 class SvxUnoXDashTable : public SvxUnoXPropertyTable
 {
 public:
-    explicit SvxUnoXDashTable( XPropertyList* pTable ) noexcept : 
SvxUnoXPropertyTable( XATTR_LINEDASH, pTable ) {};
+    explicit SvxUnoXDashTable( XPropertyList& rTable ) noexcept : 
SvxUnoXPropertyTable( XATTR_LINEDASH, rTable ) {};
 
     // SvxUnoXPropertyTable
     virtual uno::Any getAny( const XPropertyEntry* pEntry ) const noexcept 
override;
@@ -379,9 +373,9 @@ public:
 
 }
 
-uno::Reference< uno::XInterface > SvxUnoXDashTable_createInstance( 
XPropertyList* pTable ) noexcept
+uno::Reference< container::XNameContainer > SvxUnoXDashTable_createInstance( 
XPropertyList& rTable ) noexcept
 {
-    return static_cast<OWeakObject*>(new SvxUnoXDashTable( pTable ));
+    return new SvxUnoXDashTable( rTable );
 }
 
 // SvxUnoXPropertyTable
@@ -441,7 +435,7 @@ namespace {
 class SvxUnoXHatchTable : public SvxUnoXPropertyTable
 {
 public:
-    explicit SvxUnoXHatchTable( XPropertyList* pTable ) noexcept : 
SvxUnoXPropertyTable( XATTR_FILLHATCH, pTable ) {};
+    explicit SvxUnoXHatchTable( XPropertyList& rTable ) noexcept : 
SvxUnoXPropertyTable( XATTR_FILLHATCH, rTable ) {};
 
     // SvxUnoXPropertyTable
     virtual uno::Any getAny( const XPropertyEntry* pEntry ) const noexcept 
override;
@@ -457,9 +451,9 @@ public:
 
 }
 
-uno::Reference< uno::XInterface > SvxUnoXHatchTable_createInstance( 
XPropertyList* pTable ) noexcept
+uno::Reference< container::XNameContainer > SvxUnoXHatchTable_createInstance( 
XPropertyList& rTable ) noexcept
 {
-    return static_cast<OWeakObject*>(new SvxUnoXHatchTable( pTable ));
+    return new SvxUnoXHatchTable( rTable );
 }
 
 // SvxUnoXPropertyTable
@@ -514,7 +508,7 @@ namespace {
 class SvxUnoXGradientTable : public SvxUnoXPropertyTable
 {
 public:
-    explicit SvxUnoXGradientTable( XPropertyList* pTable ) noexcept : 
SvxUnoXPropertyTable( XATTR_FILLGRADIENT, pTable ) {};
+    explicit SvxUnoXGradientTable( XPropertyList& rTable ) noexcept : 
SvxUnoXPropertyTable( XATTR_FILLGRADIENT, rTable ) {};
 
     // SvxUnoXPropertyTable
     virtual uno::Any getAny( const XPropertyEntry* pEntry ) const noexcept 
override;
@@ -530,9 +524,9 @@ public:
 
 }
 
-uno::Reference< uno::XInterface > SvxUnoXGradientTable_createInstance( 
XPropertyList* pTable ) noexcept
+uno::Reference< container::XNameContainer > 
SvxUnoXGradientTable_createInstance( XPropertyList& rTable ) noexcept
 {
-    return static_cast<OWeakObject*>(new SvxUnoXGradientTable( pTable ));
+    return new SvxUnoXGradientTable( rTable );
 }
 
 // SvxUnoXPropertyTable
@@ -599,7 +593,7 @@ namespace {
 class SvxUnoXBitmapTable : public SvxUnoXPropertyTable
 {
 public:
-    explicit SvxUnoXBitmapTable( XPropertyList* pTable ) noexcept : 
SvxUnoXPropertyTable( XATTR_FILLBITMAP, pTable ) {};
+    explicit SvxUnoXBitmapTable( XPropertyList& rTable ) noexcept : 
SvxUnoXPropertyTable( XATTR_FILLBITMAP, rTable ) {};
 
     // SvxUnoXPropertyTable
     virtual uno::Any getAny( const XPropertyEntry* pEntry ) const override;
@@ -615,9 +609,9 @@ public:
 
 }
 
-uno::Reference< uno::XInterface > SvxUnoXBitmapTable_createInstance( 
XPropertyList* pTable ) noexcept
+uno::Reference< container::XNameContainer > SvxUnoXBitmapTable_createInstance( 
XPropertyList& rTable ) noexcept
 {
-    return static_cast<OWeakObject*>(new SvxUnoXBitmapTable( pTable ));
+    return new SvxUnoXBitmapTable( rTable );
 }
 
 // SvxUnoXPropertyTable
diff --git a/svx/source/xoutdev/xtabbtmp.cxx b/svx/source/xoutdev/xtabbtmp.cxx
index fd1b7dfdadb7..178ba8ab2db4 100644
--- a/svx/source/xoutdev/xtabbtmp.cxx
+++ b/svx/source/xoutdev/xtabbtmp.cxx
@@ -35,8 +35,7 @@ XBitmapEntry* XBitmapList::GetBitmap(tools::Long nIndex) const
 
 uno::Reference< container::XNameContainer > XBitmapList::createInstance()
 {
-    return uno::Reference< container::XNameContainer >(
-        SvxUnoXBitmapTable_createInstance( this ), uno::UNO_QUERY );
+    return SvxUnoXBitmapTable_createInstance( *this );
 }
 
 bool XBitmapList::Create()
diff --git a/svx/source/xoutdev/xtabcolr.cxx b/svx/source/xoutdev/xtabcolr.cxx
index 67e963ce92a6..e952d6f8a44f 100644
--- a/svx/source/xoutdev/xtabcolr.cxx
+++ b/svx/source/xoutdev/xtabcolr.cxx
@@ -54,9 +54,7 @@ XColorEntry* XColorList::GetColor(tools::Long nIndex) const
 
 uno::Reference< container::XNameContainer > XColorList::createInstance()
 {
-    return uno::Reference< container::XNameContainer >(
-        SvxUnoXColorTable_createInstance( this ),
-        uno::UNO_QUERY );
+    return SvxUnoXColorTable_createInstance( *this );
 }
 
 bool XColorList::Create()
diff --git a/svx/source/xoutdev/xtabdash.cxx b/svx/source/xoutdev/xtabdash.cxx
index b0dcced37322..da5ec20a3bdf 100644
--- a/svx/source/xoutdev/xtabdash.cxx
+++ b/svx/source/xoutdev/xtabdash.cxx
@@ -60,8 +60,7 @@ XDashEntry* XDashList::GetDash(tools::Long nIndex) const
 
 uno::Reference< container::XNameContainer > XDashList::createInstance()
 {
-    return uno::Reference< container::XNameContainer >(
-        SvxUnoXDashTable_createInstance( this ), uno::UNO_QUERY );
+    return SvxUnoXDashTable_createInstance( *this );
 }
 
 bool XDashList::Create()
diff --git a/svx/source/xoutdev/xtabgrdt.cxx b/svx/source/xoutdev/xtabgrdt.cxx
index 94bda61ffa2e..3d2acb574c3c 100644
--- a/svx/source/xoutdev/xtabgrdt.cxx
+++ b/svx/source/xoutdev/xtabgrdt.cxx
@@ -60,9 +60,7 @@ XGradientEntry* XGradientList::GetGradient(tools::Long 
nIndex) const
 
 uno::Reference< container::XNameContainer > XGradientList::createInstance()
 {
-    return uno::Reference< container::XNameContainer >(
-        SvxUnoXGradientTable_createInstance( this ),
-        uno::UNO_QUERY );
+    return SvxUnoXGradientTable_createInstance( *this );
 }
 
 bool XGradientList::Create()
diff --git a/svx/source/xoutdev/xtabhtch.cxx b/svx/source/xoutdev/xtabhtch.cxx
index 44824cb08289..4fc97727b0cc 100644
--- a/svx/source/xoutdev/xtabhtch.cxx
+++ b/svx/source/xoutdev/xtabhtch.cxx
@@ -59,8 +59,7 @@ XHatchEntry* XHatchList::GetHatch(tools::Long nIndex) const
 
 uno::Reference< container::XNameContainer > XHatchList::createInstance()
 {
-    return uno::Reference< container::XNameContainer >(
-        SvxUnoXHatchTable_createInstance( this ), uno::UNO_QUERY );
+    return SvxUnoXHatchTable_createInstance( *this );
 }
 
 bool XHatchList::Create()
diff --git a/svx/source/xoutdev/xtablend.cxx b/svx/source/xoutdev/xtablend.cxx
index 50fc240a60ab..fcca059601e5 100644
--- a/svx/source/xoutdev/xtablend.cxx
+++ b/svx/source/xoutdev/xtablend.cxx
@@ -53,8 +53,7 @@ XLineEndEntry* XLineEndList::GetLineEnd(tools::Long nIndex) 
const
 
 uno::Reference< container::XNameContainer > XLineEndList::createInstance()
 {
-    return uno::Reference< container::XNameContainer >(
-        SvxUnoXLineEndTable_createInstance( this ), uno::UNO_QUERY );
+    return SvxUnoXLineEndTable_createInstance( *this );
 }
 
 bool XLineEndList::Create()
diff --git a/svx/source/xoutdev/xtabptrn.cxx b/svx/source/xoutdev/xtabptrn.cxx
index 8d461167a87a..29697880f07f 100644
--- a/svx/source/xoutdev/xtabptrn.cxx
+++ b/svx/source/xoutdev/xtabptrn.cxx
@@ -37,8 +37,7 @@ XBitmapEntry* XPatternList::GetBitmap(tools::Long nIndex) 
const
 
 uno::Reference< container::XNameContainer > XPatternList::createInstance()
 {
-    return uno::Reference< container::XNameContainer >(
-        SvxUnoXBitmapTable_createInstance( this ), uno::UNO_QUERY );
+    return SvxUnoXBitmapTable_createInstance( *this );
 }
 
 bool XPatternList::Create()

Reply via email to