summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
Diffstat (limited to 'sc')
-rw-r--r--sc/inc/dbdata.hxx9
-rw-r--r--sc/qa/unit/ucalc_sharedformula.cxx4
-rw-r--r--sc/source/filter/xml/xmldrani.cxx5
-rw-r--r--sc/source/ui/docshell/dbdocfun.cxx1
4 files changed, 8 insertions, 11 deletions
diff --git a/sc/inc/dbdata.hxx b/sc/inc/dbdata.hxx
index 328dd2a597e4..df6b88d4dbb9 100644
--- a/sc/inc/dbdata.hxx
+++ b/sc/inc/dbdata.hxx
@@ -257,8 +257,13 @@ public:
ScDBData* findByIndex(sal_uInt16 nIndex);
ScDBData* findByUpperName(const OUString& rName);
iterator findByUpperName2(const OUString& rName);
- // Takes ownership of p iff it returns true:
- SAL_WARN_UNUSED_RESULT bool insert(ScDBData* p);
+
+ /** Takes ownership of p and attempts to insert it into the collection.
+ Deletes p if it could not be inserted, i.e. duplicate name.
+ @return <TRUE/> if inserted, else <FALSE/>.
+ */
+ bool insert(ScDBData* p);
+
void erase(const iterator& itr);
bool empty() const;
size_t size() const;
diff --git a/sc/qa/unit/ucalc_sharedformula.cxx b/sc/qa/unit/ucalc_sharedformula.cxx
index a66a09302667..491573cc86cf 100644
--- a/sc/qa/unit/ucalc_sharedformula.cxx
+++ b/sc/qa/unit/ucalc_sharedformula.cxx
@@ -1637,8 +1637,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.
@@ -1662,8 +1660,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 c525b046cfe2..f7eb3be0d480 100644
--- a/sc/source/filter/xml/xmldrani.cxx
+++ b/sc/source/filter/xml/xmldrani.cxx
@@ -468,10 +468,7 @@ void ScXMLDatabaseRangeContext::EndElement()
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 4cbbd06b2050..c5c5d57ae67d 100644
--- a/sc/source/ui/docshell/dbdocfun.cxx
+++ b/sc/source/ui/docshell/dbdocfun.cxx
@@ -168,7 +168,6 @@ bool ScDBDocFunc::RenameDBRange( const OUString& rOld, const OUString& rNew )
bool bInserted = rDBs.insert(pNewData);
if (!bInserted) // Fehler -> alten Zustand wiederherstellen
{
- delete pNewData;
rDoc.SetDBCollection(pUndoColl); // gehoert dann dem Dokument
}