sc/inc/dpresfilter.hxx              |    7 +------
 sc/source/core/data/dpresfilter.cxx |   30 ++++++++++++------------------
 2 files changed, 13 insertions(+), 24 deletions(-)

New commits:
commit 4cd3ce9848aa039b8d443a1257d1298231680b01
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Sat Sep 4 21:02:31 2021 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Sun Sep 5 22:11:38 2021 +0200

    no need to allocate DimensionNode with unique_ptr
    
    Change-Id: Ia832d2098b72a9e88e7a708d205c49bd3e9c82a5
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121652
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sc/inc/dpresfilter.hxx b/sc/inc/dpresfilter.hxx
index fcc41a296042..379989788559 100644
--- a/sc/inc/dpresfilter.hxx
+++ b/sc/inc/dpresfilter.hxx
@@ -66,11 +66,6 @@ private:
         MembersType maChildMembersValueNames;
         MembersType maChildMembersValues;
 
-        DimensionNode();
-        DimensionNode(const DimensionNode&) = delete;
-        const DimensionNode& operator=(const DimensionNode&) = delete;
-        ~DimensionNode();
-
 #if DEBUG_PIVOT_TABLE
         void dump(int nLevel) const;
 #endif
@@ -79,7 +74,7 @@ private:
     struct MemberNode
     {
         ValuesType maValues;
-        std::map<OUString, std::unique_ptr<DimensionNode>> maChildDimensions;
+        std::map<OUString, DimensionNode> maChildDimensions;
 
         MemberNode();
         MemberNode(const MemberNode&) = delete;
diff --git a/sc/source/core/data/dpresfilter.cxx 
b/sc/source/core/data/dpresfilter.cxx
index 9c6c25413cf2..529abae7dd2e 100644
--- a/sc/source/core/data/dpresfilter.cxx
+++ b/sc/source/core/data/dpresfilter.cxx
@@ -36,12 +36,6 @@ size_t ScDPResultTree::NamePairHash::operator() (const 
NamePairType& rPair) cons
     return seed;
 }
 
-ScDPResultTree::DimensionNode::DimensionNode() {}
-
-ScDPResultTree::DimensionNode::~DimensionNode()
-{
-}
-
 #if DEBUG_PIVOT_TABLE
 void ScDPResultTree::DimensionNode::dump(int nLevel) const
 {
@@ -110,7 +104,7 @@ void ScDPResultTree::add(
         if (itDim == rDims.end())
         {
             // New dimension.  Insert it.
-            auto r = rDims.emplace(aUpperName, 
std::make_unique<DimensionNode>());
+            auto r = rDims.emplace(aUpperName, DimensionNode());
             assert(r.second);
             itDim = r.first;
         }
@@ -118,8 +112,8 @@ void ScDPResultTree::add(
         pDimName = &itDim->first;
 
         // Now, see if this dimension member exists.
-        DimensionNode* pDim = itDim->second.get();
-        MembersType& rMembersValueNames = pDim->maChildMembersValueNames;
+        DimensionNode& rDim = itDim->second;
+        MembersType& rMembersValueNames = rDim.maChildMembersValueNames;
         aUpperName = 
ScGlobal::getCharClassPtr()->uppercase(filter.maValueName);
         MembersType::iterator itMem = rMembersValueNames.find(aUpperName);
         if (itMem == rMembersValueNames.end())
@@ -139,7 +133,7 @@ void ScDPResultTree::add(
             // makes no sense to add it to the separate mapping.
             if (!filter.maValue.isEmpty() && filter.maValue != 
filter.maValueName)
             {
-                MembersType& rMembersValues = pDim->maChildMembersValues;
+                MembersType& rMembersValues = rDim.maChildMembersValues;
                 aUpperName = 
ScGlobal::getCharClassPtr()->uppercase(filter.maValue);
                 MembersType::iterator itMemVal = 
rMembersValues.find(aUpperName);
                 if (itMemVal == rMembersValues.end())
@@ -210,16 +204,16 @@ const ScDPResultTree::ValuesType* 
ScDPResultTree::getResults(
             // Specified dimension not found.
             return nullptr;
 
-        const DimensionNode* pDim = itDim->second.get();
-        MembersType::const_iterator itMem( pDim->maChildMembersValueNames.find(
+        const DimensionNode& rDim = itDim->second;
+        MembersType::const_iterator itMem( rDim.maChildMembersValueNames.find(
                     ScGlobal::getCharClassPtr()->uppercase( 
rFilter.MatchValueName)));
 
-        if (itMem == pDim->maChildMembersValueNames.end())
+        if (itMem == rDim.maChildMembersValueNames.end())
         {
             // Specified member name not found, try locale independent value.
-            itMem = pDim->maChildMembersValues.find( 
ScGlobal::getCharClassPtr()->uppercase( rFilter.MatchValue));
+            itMem = rDim.maChildMembersValues.find( 
ScGlobal::getCharClassPtr()->uppercase( rFilter.MatchValue));
 
-            if (itMem == pDim->maChildMembersValues.end())
+            if (itMem == rDim.maChildMembersValues.end())
                 // Specified member not found.
                 return nullptr;
         }
@@ -236,10 +230,10 @@ const ScDPResultTree::ValuesType* 
ScDPResultTree::getResults(
         while (pFieldMember->maChildDimensions.size() == 1)
         {
             auto itDim( pFieldMember->maChildDimensions.begin());
-            const DimensionNode* pDim = itDim->second.get();
-            if (pDim->maChildMembersValueNames.size() != 1)
+            const DimensionNode& rDim = itDim->second;
+            if (rDim.maChildMembersValueNames.size() != 1)
                 break;  // while
-            pFieldMember = 
pDim->maChildMembersValueNames.begin()->second.get();
+            pFieldMember = rDim.maChildMembersValueNames.begin()->second.get();
             if (!pFieldMember->maValues.empty())
                 return &pFieldMember->maValues;
         }

Reply via email to