[Libreoffice-commits] core.git: sc/inc sc/qa sc/source

Caolán McNamara caolanm at redhat.com
Tue Mar 27 11:31:32 UTC 2018


 sc/inc/dbdata.hxx                  |    2 +-
 sc/qa/unit/ucalc_sharedformula.cxx |    4 ----
 sc/source/filter/xml/xmldrani.cxx  |    5 +----
 sc/source/ui/docshell/dbdocfun.cxx |    1 -
 4 files changed, 2 insertions(+), 10 deletions(-)

New commits:
commit edfa0562617c1330cc00923a5cf6e5916bacfed0
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Mar 27 10:11:51 2018 +0100

    ofz#7121 NamedDBs::insert takes ownership of its argument
    
    at one point this was based on std::auto_ptr and didn't
    free its arg on failure
    
    Change-Id: I8aeed6876d80b7ebe4ebb5e2cfd12e00420bd207
    Reviewed-on: https://gerrit.libreoffice.org/51932
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/sc/inc/dbdata.hxx b/sc/inc/dbdata.hxx
index 061ef5187cfa..7752693765a1 100644
--- a/sc/inc/dbdata.hxx
+++ b/sc/inc/dbdata.hxx
@@ -262,7 +262,7 @@ public:
             Deletes p if it could not be inserted, i.e. duplicate name.
             @return <TRUE/> if inserted, else <FALSE/>.
          */
-        SAL_WARN_UNUSED_RESULT bool insert(ScDBData* p);
+        bool insert(ScDBData* p);
 
         void erase(const iterator& itr);
         bool empty() const;
diff --git a/sc/qa/unit/ucalc_sharedformula.cxx b/sc/qa/unit/ucalc_sharedformula.cxx
index 0f2c50f9d204..a21f778d6411 100644
--- a/sc/qa/unit/ucalc_sharedformula.cxx
+++ b/sc/qa/unit/ucalc_sharedformula.cxx
@@ -1581,8 +1581,6 @@ void Test::testSharedFormulaUpdateOnDBChange()
     // Define database range 'MyRange' for A1:A2.
     ScDBData* pData = new ScDBData("MyRange", 0, 0, 0, 0, 1);
     bool bInserted = pDBs->getNamedDBs().insert(pData);
-    if (!bInserted)
-        delete pData;
     CPPUNIT_ASSERT_MESSAGE("Failed to insert a new database range.", bInserted);
 
     // Insert in C2:C4 a group of formula cells that reference MyRange.
@@ -1606,8 +1604,6 @@ void Test::testSharedFormulaUpdateOnDBChange()
     ScDBCollection aNewDBs(m_pDoc);
     ScDBData* pNewData = new ScDBData("MyRange", 0, 0, 0, 0, 3);
     bInserted = aNewDBs.getNamedDBs().insert(pNewData);
-    if (!bInserted)
-        delete pNewData;
     CPPUNIT_ASSERT_MESSAGE("Failed to insert a new database range.", bInserted);
 
     std::vector<ScRange> aDeleted;
diff --git a/sc/source/filter/xml/xmldrani.cxx b/sc/source/filter/xml/xmldrani.cxx
index 9e88a8943a95..721f7f946a8f 100644
--- a/sc/source/filter/xml/xmldrani.cxx
+++ b/sc/source/filter/xml/xmldrani.cxx
@@ -444,10 +444,7 @@ void SAL_CALL ScXMLDatabaseRangeContext::endFastElement( sal_Int32 /*nElement*/
         if (pData.get())
         {
             setAutoFilterFlags(*pDoc, *pData);
-            if (pDoc->GetDBCollection()->getNamedDBs().insert(pData.get()))
-            {
-                pData.release();
-            }
+            pDoc->GetDBCollection()->getNamedDBs().insert(pData.release());
         }
     }
 }
diff --git a/sc/source/ui/docshell/dbdocfun.cxx b/sc/source/ui/docshell/dbdocfun.cxx
index 3a409e774d64..3a8a5d28de06 100644
--- a/sc/source/ui/docshell/dbdocfun.cxx
+++ b/sc/source/ui/docshell/dbdocfun.cxx
@@ -170,7 +170,6 @@ bool ScDBDocFunc::RenameDBRange( const OUString& rOld, const OUString& rNew )
         bool bInserted = rDBs.insert(pNewData);
         if (!bInserted)                             // error -> restore old state
         {
-            delete pNewData;
             rDoc.SetDBCollection(std::move(pUndoColl));       // belongs to the document then
         }
 


More information about the Libreoffice-commits mailing list