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

Michael Stahl mstahl at redhat.com
Wed Aug 19 12:36:52 PDT 2015


 sc/inc/dbdata.hxx                                |   16 ++-
 sc/source/core/data/documen3.cxx                 |    4 
 sc/source/core/data/document.cxx                 |    4 
 sc/source/core/tool/dbdata.cxx                   |  105 ++++++++++++++---------
 sc/source/core/tool/rangeutl.cxx                 |    2 
 sc/source/core/tool/tokenstringcontext.cxx       |    2 
 sc/source/filter/xml/XMLExportDatabaseRanges.cxx |    5 +
 sc/source/ui/app/inputwin.cxx                    |    2 
 sc/source/ui/dbgui/dbnamdlg.cxx                  |   10 +-
 sc/source/ui/docshell/dbdocfun.cxx               |   14 +--
 sc/source/ui/docshell/docsh4.cxx                 |    2 
 sc/source/ui/navipi/content.cxx                  |    2 
 sc/source/ui/unoobj/datauno.cxx                  |    4 
 sc/source/ui/view/cellsh2.cxx                    |    2 
 sc/source/ui/view/tabvwsh4.cxx                   |    3 
 15 files changed, 106 insertions(+), 71 deletions(-)

New commits:
commit b5ae7dbc871df57686a603dfa99e8179a0e3a4b8
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed Aug 19 15:45:57 2015 +0200

    sc: replace boost::ptr_set with std::set<std::unique_ptr>
    
    Change-Id: I93bdb33a442a358b0067d57499b11d73bfbaa2d9
    Reviewed-on: https://gerrit.libreoffice.org/17860
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>

diff --git a/sc/inc/dbdata.hxx b/sc/inc/dbdata.hxx
index a5d6765..877a7fc 100644
--- a/sc/inc/dbdata.hxx
+++ b/sc/inc/dbdata.hxx
@@ -26,9 +26,11 @@
 #include "global.hxx"
 
 #include <boost/ptr_container/ptr_vector.hpp>
-#include <boost/ptr_container/ptr_set.hpp>
 #include <boost/scoped_ptr.hpp>
 
+#include <memory>
+#include <set>
+
 class ScDocument;
 struct ScSortParam;
 struct ScQueryParam;
@@ -73,9 +75,9 @@ private:
     using ScRefreshTimer::operator==;
 
 public:
-    struct less : public ::std::binary_function<ScDBData, ScDBData, bool>
+    struct less : public ::std::binary_function<std::unique_ptr<ScDBData>, std::unique_ptr<ScDBData>, bool>
     {
-        bool operator() (const ScDBData& left, const ScDBData& right) const;
+        bool operator() (const std::unique_ptr<ScDBData>& left, const std::unique_ptr<ScDBData>& right) const;
     };
 
     SC_DLLPUBLIC ScDBData(const OUString& rName,
@@ -185,12 +187,14 @@ public:
     {
         friend class ScDBCollection;
 
-        typedef ::boost::ptr_set<ScDBData, ScDBData::less> DBsType;
-        DBsType maDBs;
+        typedef ::std::set<std::unique_ptr<ScDBData>, ScDBData::less> DBsType;
+        DBsType m_DBs;
         ScDBCollection& mrParent;
         ScDocument& mrDoc;
         NamedDBs(ScDBCollection& rParent, ScDocument& rDoc);
         NamedDBs(const NamedDBs& r);
+        NamedDBs & operator=(NamedDBs const&) = delete;
+
     public:
         typedef DBsType::iterator iterator;
         typedef DBsType::const_iterator const_iterator;
@@ -201,10 +205,10 @@ public:
         const_iterator end() const;
         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);
         void erase(iterator itr);
-        void erase(const ScDBData& r);
         bool empty() const;
         size_t size() const;
         bool operator== (const NamedDBs& r) const;
diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx
index 5e6aa4d..2353e91 100644
--- a/sc/source/core/data/documen3.cxx
+++ b/sc/source/core/data/documen3.cxx
@@ -242,7 +242,7 @@ void ScDocument::SetDBCollection( ScDBCollection* pNewDBCollection, bool bRemove
         ScDBCollection::NamedDBs::const_iterator itr = rNamedDBs.begin(), itrEnd = rNamedDBs.end();
         for (; itr != itrEnd; ++itr)
         {
-            const ScDBData& rOldData = *itr;
+            const ScDBData& rOldData = **itr;
             if (!rOldData.HasAutoFilter())
                 continue;
 
@@ -1591,7 +1591,7 @@ bool ScDocument::GetFormulaEntries( ScTypedCaseStrSet& rStrings )
         const ScDBCollection::NamedDBs& rDBs = pDBCollection->getNamedDBs();
         ScDBCollection::NamedDBs::const_iterator itr = rDBs.begin(), itrEnd = rDBs.end();
         for (; itr != itrEnd; ++itr)
-            rStrings.insert(ScTypedStrData(itr->GetName(), 0.0, ScTypedStrData::DbName));
+            rStrings.insert(ScTypedStrData((*itr)->GetName(), 0.0, ScTypedStrData::DbName));
     }
 
     // Content of name ranges
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 976c63a..3570386 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -5497,9 +5497,9 @@ bool ScDocument::RefreshAutoFilter( SCCOL nStartCol, SCROW nStartRow,
     ScDBCollection::NamedDBs::const_iterator itr = rDBs.begin(), itrEnd = rDBs.end();
     for (; itr != itrEnd; ++itr)
     {
-        if (itr->HasAutoFilter())
+        if ((*itr)->HasAutoFilter())
         {
-            itr->GetArea( nDBTab, nDBStartCol,nDBStartRow, nDBEndCol,nDBEndRow );
+            (*itr)->GetArea(nDBTab, nDBStartCol,nDBStartRow, nDBEndCol,nDBEndRow);
             if ( nDBTab==nTab && nDBStartRow<=nEndRow && nDBEndRow>=nStartRow &&
                                     nDBStartCol<=nEndCol && nDBEndCol>=nStartCol )
             {
diff --git a/sc/source/core/tool/dbdata.cxx b/sc/source/core/tool/dbdata.cxx
index d896b22..4857b18 100644
--- a/sc/source/core/tool/dbdata.cxx
+++ b/sc/source/core/tool/dbdata.cxx
@@ -43,9 +43,9 @@ using ::std::find_if;
 using ::std::remove_if;
 using ::std::pair;
 
-bool ScDBData::less::operator() (const ScDBData& left, const ScDBData& right) const
+bool ScDBData::less::operator() (const std::unique_ptr<ScDBData>& left, const std::unique_ptr<ScDBData>& right) const
 {
-    return ScGlobal::GetpTransliteration()->compareString(left.GetUpperName(), right.GetUpperName()) < 0;
+    return ScGlobal::GetpTransliteration()->compareString(left->GetUpperName(), right->GetUpperName()) < 0;
 }
 
 ScDBData::ScDBData( const OUString& rName,
@@ -670,7 +670,7 @@ public:
     }
 };
 
-class UpdateRefFunc : public unary_function<ScDBData, void>
+class UpdateRefFunc : public unary_function<std::unique_ptr<ScDBData>, void>
 {
     ScDocument* mpDoc;
     UpdateRefMode meMode;
@@ -698,9 +698,13 @@ public:
     {
         r.UpdateReference(mpDoc, meMode, mnCol1, mnRow1, mnTab1, mnCol2, mnRow2, mnTab2, mnDx, mnDy, mnDz);
     }
+    void operator() (std::unique_ptr<ScDBData> const& p)
+    {
+        p->UpdateReference(mpDoc, meMode, mnCol1, mnRow1, mnTab1, mnCol2, mnRow2, mnTab2, mnDx, mnDy, mnDz);
+    }
 };
 
-class UpdateMoveTabFunc : public unary_function<ScDBData, void>
+class UpdateMoveTabFunc : public unary_function<std::unique_ptr<ScDBData>, void>
 {
     SCTAB mnOldTab;
     SCTAB mnNewTab;
@@ -710,9 +714,13 @@ public:
     {
         r.UpdateMoveTab(mnOldTab, mnNewTab);
     }
+    void operator() (std::unique_ptr<ScDBData> const& p)
+    {
+        p->UpdateMoveTab(mnOldTab, mnNewTab);
+    }
 };
 
-class FindByCursor : public unary_function<ScDBData, bool>
+class FindByCursor : public unary_function<std::unique_ptr<ScDBData>, bool>
 {
     SCCOL mnCol;
     SCROW mnRow;
@@ -726,9 +734,13 @@ public:
     {
         return r.IsDBAtCursor(mnCol, mnRow, mnTab, mbStartOnly);
     }
+    bool operator() (std::unique_ptr<ScDBData> const& p)
+    {
+        return p->IsDBAtCursor(mnCol, mnRow, mnTab, mbStartOnly);
+    }
 };
 
-class FindByRange : public unary_function<ScDBData, bool>
+class FindByRange : public unary_function<std::unique_ptr<ScDBData>, bool>
 {
     const ScRange& mrRange;
 public:
@@ -739,27 +751,32 @@ public:
         return r.IsDBAtArea(
             mrRange.aStart.Tab(), mrRange.aStart.Col(), mrRange.aStart.Row(), mrRange.aEnd.Col(), mrRange.aEnd.Row());
     }
+    bool operator() (std::unique_ptr<ScDBData> const& p)
+    {
+        return p->IsDBAtArea(
+            mrRange.aStart.Tab(), mrRange.aStart.Col(), mrRange.aStart.Row(), mrRange.aEnd.Col(), mrRange.aEnd.Row());
+    }
 };
 
-class FindByIndex : public unary_function<ScDBData, bool>
+class FindByIndex : public unary_function<std::unique_ptr<ScDBData>, bool>
 {
     sal_uInt16 mnIndex;
 public:
     FindByIndex(sal_uInt16 nIndex) : mnIndex(nIndex) {}
-    bool operator() (const ScDBData& r) const
+    bool operator() (std::unique_ptr<ScDBData> const& p) const
     {
-        return r.GetIndex() == mnIndex;
+        return p->GetIndex() == mnIndex;
     }
 };
 
-class FindByUpperName : public unary_function<ScDBData, bool>
+class FindByUpperName : public unary_function<std::unique_ptr<ScDBData>, bool>
 {
     const OUString& mrName;
 public:
     FindByUpperName(const OUString& rName) : mrName(rName) {}
-    bool operator() (const ScDBData& r) const
+    bool operator() (std::unique_ptr<ScDBData> const& p) const
     {
-        return r.GetUpperName() == mrName;
+        return p->GetUpperName() == mrName;
     }
 };
 
@@ -779,41 +796,54 @@ public:
 ScDBCollection::NamedDBs::NamedDBs(ScDBCollection& rParent, ScDocument& rDoc) :
     mrParent(rParent), mrDoc(rDoc) {}
 
-ScDBCollection::NamedDBs::NamedDBs(const NamedDBs& r) :
-    maDBs(r.maDBs), mrParent(r.mrParent), mrDoc(r.mrDoc) {}
+ScDBCollection::NamedDBs::NamedDBs(const NamedDBs& r)
+    : mrParent(r.mrParent)
+    , mrDoc(r.mrDoc)
+{
+    for (auto const& it : r.m_DBs)
+    {
+        m_DBs.insert(std::unique_ptr<ScDBData>(new ScDBData(*it)));
+    }
+}
 
 ScDBCollection::NamedDBs::iterator ScDBCollection::NamedDBs::begin()
 {
-    return maDBs.begin();
+    return m_DBs.begin();
 }
 
 ScDBCollection::NamedDBs::iterator ScDBCollection::NamedDBs::end()
 {
-    return maDBs.end();
+    return m_DBs.end();
 }
 
 ScDBCollection::NamedDBs::const_iterator ScDBCollection::NamedDBs::begin() const
 {
-    return maDBs.begin();
+    return m_DBs.begin();
 }
 
 ScDBCollection::NamedDBs::const_iterator ScDBCollection::NamedDBs::end() const
 {
-    return maDBs.end();
+    return m_DBs.end();
 }
 
 ScDBData* ScDBCollection::NamedDBs::findByIndex(sal_uInt16 nIndex)
 {
     DBsType::iterator itr = find_if(
-        maDBs.begin(), maDBs.end(), FindByIndex(nIndex));
-    return itr == maDBs.end() ? NULL : &(*itr);
+        m_DBs.begin(), m_DBs.end(), FindByIndex(nIndex));
+    return itr == m_DBs.end() ? nullptr : itr->get();
 }
 
 ScDBData* ScDBCollection::NamedDBs::findByUpperName(const OUString& rName)
 {
     DBsType::iterator itr = find_if(
-        maDBs.begin(), maDBs.end(), FindByUpperName(rName));
-    return itr == maDBs.end() ? NULL : &(*itr);
+        m_DBs.begin(), m_DBs.end(), FindByUpperName(rName));
+    return itr == m_DBs.end() ? nullptr : itr->get();
+}
+
+auto ScDBCollection::NamedDBs::findByUpperName2(const OUString& rName) -> iterator
+{
+    return find_if(
+        m_DBs.begin(), m_DBs.end(), FindByUpperName(rName));
 }
 
 bool ScDBCollection::NamedDBs::insert(ScDBData* p)
@@ -822,7 +852,7 @@ bool ScDBCollection::NamedDBs::insert(ScDBData* p)
     if (!pData->GetIndex())
         pData->SetIndex(mrParent.nEntryIndex++);
 
-    pair<DBsType::iterator, bool> r = o3tl::ptr_container::insert(maDBs, std::move(pData));
+    pair<DBsType::iterator, bool> r = m_DBs.insert(std::move(pData));
 
     if (r.second && p->HasImportParam() && !p->HasImportSelection())
     {
@@ -834,27 +864,22 @@ bool ScDBCollection::NamedDBs::insert(ScDBData* p)
 
 void ScDBCollection::NamedDBs::erase(iterator itr)
 {
-    maDBs.erase(itr);
-}
-
-void ScDBCollection::NamedDBs::erase(const ScDBData& r)
-{
-    maDBs.erase(r);
+    m_DBs.erase(itr);
 }
 
 bool ScDBCollection::NamedDBs::empty() const
 {
-    return maDBs.empty();
+    return m_DBs.empty();
 }
 
 size_t ScDBCollection::NamedDBs::size() const
 {
-    return maDBs.size();
+    return m_DBs.size();
 }
 
 bool ScDBCollection::NamedDBs::operator== (const NamedDBs& r) const
 {
-    return maDBs == r.maDBs;
+    return m_DBs == r.m_DBs;
 }
 
 ScDBCollection::AnonDBs::iterator ScDBCollection::AnonDBs::begin()
@@ -946,7 +971,7 @@ const ScDBData* ScDBCollection::GetDBAtCursor(SCCOL nCol, SCROW nRow, SCTAB nTab
     NamedDBs::DBsType::const_iterator itr = find_if(
         maNamedDBs.begin(), maNamedDBs.end(), FindByCursor(nCol, nRow, nTab, bStartOnly));
     if (itr != maNamedDBs.end())
-        return &(*itr);
+        return itr->get();
 
     // Check for the sheet-local anonymous db range.
     const ScDBData* pNoNameData = pDoc->GetAnonymousDBData(nTab);
@@ -970,7 +995,7 @@ ScDBData* ScDBCollection::GetDBAtCursor(SCCOL nCol, SCROW nRow, SCTAB nTab, bool
     NamedDBs::DBsType::iterator itr = find_if(
         maNamedDBs.begin(), maNamedDBs.end(), FindByCursor(nCol, nRow, nTab, bStartOnly));
     if (itr != maNamedDBs.end())
-        return &(*itr);
+        return itr->get();
 
     // Check for the sheet-local anonymous db range.
     ScDBData* pNoNameData = pDoc->GetAnonymousDBData(nTab);
@@ -995,7 +1020,7 @@ const ScDBData* ScDBCollection::GetDBAtArea(SCTAB nTab, SCCOL nCol1, SCROW nRow1
     NamedDBs::DBsType::const_iterator itr = find_if(
         maNamedDBs.begin(), maNamedDBs.end(), FindByRange(aRange));
     if (itr != maNamedDBs.end())
-        return &(*itr);
+        return itr->get();
 
     // Check for the sheet-local anonymous db range.
     ScDBData* pNoNameData = pDoc->GetAnonymousDBData(nTab);
@@ -1024,7 +1049,7 @@ ScDBData* ScDBCollection::GetDBAtArea(SCTAB nTab, SCCOL nCol1, SCROW nRow1, SCCO
     NamedDBs::DBsType::iterator itr = find_if(
         maNamedDBs.begin(), maNamedDBs.end(), FindByRange(aRange));
     if (itr != maNamedDBs.end())
-        return &(*itr);
+        return itr->get();
 
     // Check for the sheet-local anonymous db range.
     ScDBData* pNoNameData = pDoc->GetAnonymousDBData(nTab);
@@ -1055,7 +1080,7 @@ void ScDBCollection::DeleteOnTab( SCTAB nTab )
         NamedDBs::DBsType::iterator itr = maNamedDBs.begin(), itrEnd = maNamedDBs.end();
         for (; itr != itrEnd; ++itr)
         {
-            if (func(*itr))
+            if (func(**itr))
                 v.push_back(itr);
         }
     }
@@ -1109,17 +1134,17 @@ ScDBData* ScDBCollection::GetDBNearCursor(SCCOL nCol, SCROW nRow, SCTAB nTab )
         SCTAB nAreaTab;
         SCCOL nStartCol, nEndCol;
         SCROW nStartRow, nEndRow;
-        itr->GetArea( nAreaTab, nStartCol, nStartRow, nEndCol, nEndRow );
+        (*itr)->GetArea( nAreaTab, nStartCol, nStartRow, nEndCol, nEndRow );
         if ( nTab == nAreaTab && nCol+1 >= nStartCol && nCol <= nEndCol+1 &&
                                  nRow+1 >= nStartRow && nRow <= nEndRow+1 )
         {
             if ( nCol < nStartCol || nCol > nEndCol || nRow < nStartRow || nRow > nEndRow )
             {
                 if (!pNearData)
-                    pNearData = &(*itr);    // remember first adjacent area
+                    pNearData = itr->get(); // remember first adjacent area
             }
             else
-                return &(*itr);             // not "unbenannt"/"unnamed" and cursor within
+                return itr->get();          // not "unbenannt"/"unnamed" and cursor within
         }
     }
     if (pNearData)
diff --git a/sc/source/core/tool/rangeutl.cxx b/sc/source/core/tool/rangeutl.cxx
index 7c5f13d..3ffcc54 100644
--- a/sc/source/core/tool/rangeutl.cxx
+++ b/sc/source/core/tool/rangeutl.cxx
@@ -1025,7 +1025,7 @@ bool ScAreaNameIterator::Next( OUString& rName, ScRange& rRange )
         {
             if (pDBCollection && maDBPos != maDBEnd)
             {
-                const ScDBData& rData = *maDBPos;
+                const ScDBData& rData = **maDBPos;
                 ++maDBPos;
                 rData.GetArea(rRange);
                 rName = rData.GetName();
diff --git a/sc/source/core/tool/tokenstringcontext.cxx b/sc/source/core/tool/tokenstringcontext.cxx
index 44babec..4517975 100644
--- a/sc/source/core/tool/tokenstringcontext.cxx
+++ b/sc/source/core/tool/tokenstringcontext.cxx
@@ -83,7 +83,7 @@ TokenStringContext::TokenStringContext( const ScDocument* pDoc, formula::Formula
         ScDBCollection::NamedDBs::const_iterator it = rNamedDBs.begin(), itEnd = rNamedDBs.end();
         for (; it != itEnd; ++it)
         {
-            const ScDBData& rData = *it;
+            const ScDBData& rData = **it;
             maNamedDBs.insert(IndexNameMapType::value_type(rData.GetIndex(), rData.GetName()));
         }
     }
diff --git a/sc/source/filter/xml/XMLExportDatabaseRanges.cxx b/sc/source/filter/xml/XMLExportDatabaseRanges.cxx
index e9bf123..3673e87 100644
--- a/sc/source/filter/xml/XMLExportDatabaseRanges.cxx
+++ b/sc/source/filter/xml/XMLExportDatabaseRanges.cxx
@@ -160,6 +160,11 @@ public:
             write(rData.GetName(), rData);
     }
 
+    void operator() (std::unique_ptr<ScDBData> const& p)
+    {
+        return operator()(*p);
+    }
+
 private:
     void write(const OUString& rName, const ScDBData& rData)
     {
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index 57288e0..7054af6 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -343,7 +343,7 @@ bool ScInputWindow::UseSubTotal(ScRangeList* pRangeList)
         ScDBCollection::NamedDBs::const_iterator itr = rDBs.begin(), itrEnd = rDBs.end();
         for (; !bSubTotal && itr != itrEnd; ++itr)
         {
-            const ScDBData& rDB = *itr;
+            const ScDBData& rDB = **itr;
             if (!rDB.HasAutoFilter())
                 continue;
 
diff --git a/sc/source/ui/dbgui/dbnamdlg.cxx b/sc/source/ui/dbgui/dbnamdlg.cxx
index df1beb0..8854ecd 100644
--- a/sc/source/ui/dbgui/dbnamdlg.cxx
+++ b/sc/source/ui/dbgui/dbnamdlg.cxx
@@ -341,7 +341,7 @@ void ScDbNameDlg::UpdateNames()
     {
         DBsType::const_iterator itr = rDBs.begin(), itrEnd = rDBs.end();
         for (; itr != itrEnd; ++itr)
-            m_pEdName->InsertEntry(itr->GetName());
+            m_pEdName->InsertEntry((*itr)->GetName());
     }
     else
     {
@@ -504,14 +504,14 @@ IMPL_LINK_NOARG(ScDbNameDlg, AddBtnHdl)
 
 namespace {
 
-class FindByName : public ::std::unary_function<ScDBData, bool>
+class FindByName : public ::std::unary_function<std::unique_ptr<ScDBData>, bool>
 {
     const OUString& mrName;
 public:
     FindByName(const OUString& rName) : mrName(rName) {}
-    bool operator() (const ScDBData& r) const
+    bool operator() (std::unique_ptr<ScDBData> const& p) const
     {
-        return r.GetName().equals(mrName);
+        return p->GetName().equals(mrName);
     }
 };
 
@@ -539,7 +539,7 @@ IMPL_LINK_NOARG(ScDbNameDlg, RemoveBtnHdl)
             SCTAB nTab;
             SCCOL nColStart, nColEnd;
             SCROW nRowStart, nRowEnd;
-            itr->GetArea( nTab, nColStart, nRowStart, nColEnd, nRowEnd );
+            (*itr)->GetArea( nTab, nColStart, nRowStart, nColEnd, nRowEnd );
             aRemoveList.push_back(
                 ScRange( ScAddress( nColStart, nRowStart, nTab ),
                          ScAddress( nColEnd,   nRowEnd,   nTab ) ) );
diff --git a/sc/source/ui/docshell/dbdocfun.cxx b/sc/source/ui/docshell/dbdocfun.cxx
index ff748c4..e7bf8fa 100644
--- a/sc/source/ui/docshell/dbdocfun.cxx
+++ b/sc/source/ui/docshell/dbdocfun.cxx
@@ -118,8 +118,8 @@ bool ScDBDocFunc::DeleteDBRange(const OUString& rName)
     bool bUndo = rDoc.IsUndoEnabled();
 
     ScDBCollection::NamedDBs& rDBs = pDocColl->getNamedDBs();
-    const ScDBData* p = rDBs.findByUpperName(ScGlobal::pCharClass->uppercase(rName));
-    if (p)
+    auto const iter = rDBs.findByUpperName2(ScGlobal::pCharClass->uppercase(rName));
+    if (iter != rDBs.end())
     {
         ScDocShellModificator aModificator( rDocShell );
 
@@ -128,7 +128,7 @@ bool ScDBDocFunc::DeleteDBRange(const OUString& rName)
             pUndoColl = new ScDBCollection( *pDocColl );
 
         rDoc.PreprocessDBDataUpdate();
-        rDBs.erase(*p);
+        rDBs.erase(iter);
         rDoc.CompileHybridFormula();
 
         if (bUndo)
@@ -153,18 +153,18 @@ bool ScDBDocFunc::RenameDBRange( const OUString& rOld, const OUString& rNew )
     ScDBCollection* pDocColl = rDoc.GetDBCollection();
     bool bUndo = rDoc.IsUndoEnabled();
     ScDBCollection::NamedDBs& rDBs = pDocColl->getNamedDBs();
-    const ScDBData* pOld = rDBs.findByUpperName(ScGlobal::pCharClass->uppercase(rOld));
+    auto const iterOld = rDBs.findByUpperName2(ScGlobal::pCharClass->uppercase(rOld));
     const ScDBData* pNew = rDBs.findByUpperName(ScGlobal::pCharClass->uppercase(rNew));
-    if (pOld && !pNew)
+    if (iterOld != rDBs.end() && !pNew)
     {
         ScDocShellModificator aModificator( rDocShell );
 
-        ScDBData* pNewData = new ScDBData(rNew, *pOld);
+        ScDBData* pNewData = new ScDBData(rNew, **iterOld);
 
         ScDBCollection* pUndoColl = new ScDBCollection( *pDocColl );
 
         rDoc.PreprocessDBDataUpdate();
-        rDBs.erase(*pOld);
+        rDBs.erase(iterOld);
         bool bInserted = rDBs.insert(pNewData);
         if (!bInserted)                             // Fehler -> alten Zustand wiederherstellen
         {
diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx
index f2ade2a..a2225f5 100644
--- a/sc/source/ui/docshell/docsh4.cxx
+++ b/sc/source/ui/docshell/docsh4.cxx
@@ -496,7 +496,7 @@ void ScDocShell::Execute( SfxRequest& rReq )
                             ScDBCollection::NamedDBs::iterator itr = rDBs.begin(), itrEnd = rDBs.end();
                             for (; itr != itrEnd; ++itr)
                             {
-                                ScDBData& rDBData = *itr;
+                                ScDBData& rDBData = **itr;
                                 if ( rDBData.IsStripData() &&
                                      rDBData.HasImportParam() && !rDBData.HasImportSelection() )
                                 {
diff --git a/sc/source/ui/navipi/content.cxx b/sc/source/ui/navipi/content.cxx
index ab70ebc..5dd7d76 100644
--- a/sc/source/ui/navipi/content.cxx
+++ b/sc/source/ui/navipi/content.cxx
@@ -902,7 +902,7 @@ void ScContentTree::GetDbNames()
     ScDBCollection::NamedDBs::const_iterator itr = rDBs.begin(), itrEnd = rDBs.end();
     for (; itr != itrEnd; ++itr)
     {
-        const OUString& aStrName = itr->GetName();
+        const OUString& aStrName = (*itr)->GetName();
         InsertContent(SC_CONTENT_DBAREA, aStrName);
     }
 }
diff --git a/sc/source/ui/unoobj/datauno.cxx b/sc/source/ui/unoobj/datauno.cxx
index eb2b7d1..7bda638 100644
--- a/sc/source/ui/unoobj/datauno.cxx
+++ b/sc/source/ui/unoobj/datauno.cxx
@@ -2249,7 +2249,7 @@ ScDatabaseRangeObj* ScDatabaseRangesObj::GetObjectByIndex_Impl(size_t nIndex)
 
     ScDBCollection::NamedDBs::const_iterator itr = rDBs.begin();
     ::std::advance(itr, nIndex); // boundary check is done above.
-    return new ScDatabaseRangeObj(pDocShell, itr->GetName());
+    return new ScDatabaseRangeObj(pDocShell, (*itr)->GetName());
 }
 
 ScDatabaseRangeObj* ScDatabaseRangesObj::GetObjectByName_Impl(const OUString& aName)
@@ -2380,7 +2380,7 @@ uno::Sequence<OUString> SAL_CALL ScDatabaseRangesObj::getElementNames()
             uno::Sequence<OUString> aSeq(rDBs.size());
             ScDBCollection::NamedDBs::const_iterator itr = rDBs.begin(), itrEnd = rDBs.end();
             for (size_t i = 0; itr != itrEnd; ++itr, ++i)
-                aSeq[i] = itr->GetName();
+                aSeq[i] = (*itr)->GetName();
 
             return aSeq;
         }
diff --git a/sc/source/ui/view/cellsh2.cxx b/sc/source/ui/view/cellsh2.cxx
index 9bb397d..d16b70d 100644
--- a/sc/source/ui/view/cellsh2.cxx
+++ b/sc/source/ui/view/cellsh2.cxx
@@ -719,7 +719,7 @@ void ScCellShell::ExecuteDB( SfxRequest& rReq )
                         const ScDBCollection::NamedDBs& rDBs = pDBCol->getNamedDBs();
                         ScDBCollection::NamedDBs::const_iterator itr = rDBs.begin(), itrEnd = rDBs.end();
                         for (; itr != itrEnd; ++itr)
-                            aList.push_back(itr->GetName());
+                            aList.push_back((*itr)->GetName());
 
                         ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
                         OSL_ENSURE(pFact, "ScAbstractFactory create fail!");
diff --git a/sc/source/ui/view/tabvwsh4.cxx b/sc/source/ui/view/tabvwsh4.cxx
index 8890c4b..8633840 100644
--- a/sc/source/ui/view/tabvwsh4.cxx
+++ b/sc/source/ui/view/tabvwsh4.cxx
@@ -1601,7 +1601,8 @@ void ScTabViewShell::Construct( TriState nForceDesignMode )
                 ScDBCollection::NamedDBs::const_iterator itr = rDBs.begin(), itrEnd = rDBs.end();
                 for (; itr != itrEnd; ++itr)
                 {
-                    if (itr->IsStripData() && itr->HasImportParam() && !itr->HasImportSelection())
+                    if ((*itr)->IsStripData() && (*itr)->HasImportParam()
+                        && !(*itr)->HasImportSelection())
                     {
                         bReImport = true;
                         break;


More information about the Libreoffice-commits mailing list