summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-10-02 10:55:46 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-10-04 08:15:37 +0200
commit5c7de51f908e866cdab7dbf4aa22aa48f42dc153 (patch)
tree5ff2f6f3d7ec4de89faef7a5bdb4787a517b3945 /sc
parent5f5d890c242b8a092804991dba809f6f4287cfb2 (diff)
loplugin:useuniqueptr in ResultMembers
no need to store a small structure separately on the heap Change-Id: I054ca078242225d12cf8abc86e25813586e6495f Reviewed-on: https://gerrit.libreoffice.org/61299 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sc')
-rw-r--r--sc/inc/dptabres.hxx13
-rw-r--r--sc/source/core/data/dptabres.cxx22
2 files changed, 13 insertions, 22 deletions
diff --git a/sc/inc/dptabres.hxx b/sc/inc/dptabres.hxx
index 276392fbe6be..990fbe8172e8 100644
--- a/sc/inc/dptabres.hxx
+++ b/sc/inc/dptabres.hxx
@@ -218,11 +218,6 @@ class ScDPDataMember;
#define SC_DPMEASURE_ALL -1
#define SC_DPMEASURE_ANY -2
-struct MemberHashIndexFunc
-{
- size_t operator() (SCROW rDataIndex) const { return rDataIndex; }
-};
-
struct ScDPParentDimData
{
const SCROW mnOrder; //! Ref
@@ -234,15 +229,13 @@ struct ScDPParentDimData
ScDPParentDimData(SCROW nIndex, const ScDPDimension* pDim, const ScDPLevel* pLev, const ScDPMember* pMember);
};
-typedef std::unordered_map < SCROW, ScDPParentDimData *, MemberHashIndexFunc> DimMemberHash;
-
class ResultMembers final
{
- DimMemberHash maMemberHash;
+ std::unordered_map<SCROW, ScDPParentDimData> maMemberHash;
bool mbHasHideDetailsMember;
public:
- ScDPParentDimData* FindMember( SCROW nIndex ) const;
- void InsertMember( ScDPParentDimData* pNew );
+ const ScDPParentDimData* FindMember( SCROW nIndex ) const;
+ void InsertMember( ScDPParentDimData const & rNew );
bool IsHasHideDetailsMembers() const { return mbHasHideDetailsMember; }
void SetHasHideDetailsMembers( bool b ) { mbHasHideDetailsMember = b; }
ResultMembers();
diff --git a/sc/source/core/data/dptabres.cxx b/sc/source/core/data/dptabres.cxx
index e5bef46c3256..7b9e9aa9c792 100644
--- a/sc/source/core/data/dptabres.cxx
+++ b/sc/source/core/data/dptabres.cxx
@@ -929,8 +929,8 @@ ResultMembers& ScDPResultData::GetDimResultMembers(long nDim, const ScDPDimensio
ScDPMember* pMember = pMembers->getByIndex(nSorted);
if (!pResultMembers->FindMember(pMember->GetItemDataId()))
{
- ScDPParentDimData* pNew = new ScDPParentDimData(i, pDim, pLevel, pMember);
- pResultMembers->InsertMember(pNew);
+ ScDPParentDimData aNew(i, pDim, pLevel, pMember);
+ pResultMembers->InsertMember(aNew);
}
}
@@ -4021,7 +4021,7 @@ void ScDPResultDimension::InitWithMembers(
if ( pResultMember == nullptr )
{ //only insert found item
- ScDPParentDimData* pMemberData = rMembers.FindMember( nDataID );
+ const ScDPParentDimData* pMemberData = rMembers.FindMember( nDataID );
if ( pMemberData && aCompare.IsIncluded( *( pMemberData->mpMemberDesc ) ) )
pResultMember = InsertMember( pMemberData );
}
@@ -4041,20 +4041,20 @@ ScDPParentDimData::ScDPParentDimData(
SCROW nIndex, const ScDPDimension* pDim, const ScDPLevel* pLev, const ScDPMember* pMember) :
mnOrder(nIndex), mpParentDim(pDim), mpParentLevel(pLev), mpMemberDesc(pMember) {}
-ScDPParentDimData* ResultMembers::FindMember( SCROW nIndex ) const
+const ScDPParentDimData* ResultMembers::FindMember( SCROW nIndex ) const
{
- DimMemberHash::const_iterator aRes = maMemberHash.find( nIndex );
+ auto aRes = maMemberHash.find( nIndex );
if( aRes != maMemberHash.end()) {
- if ( aRes->second->mpMemberDesc && aRes->second->mpMemberDesc->GetItemDataId()==nIndex )
- return aRes->second;
+ if ( aRes->second.mpMemberDesc && aRes->second.mpMemberDesc->GetItemDataId()==nIndex )
+ return &aRes->second;
}
return nullptr;
}
-void ResultMembers::InsertMember( ScDPParentDimData* pNew )
+void ResultMembers::InsertMember( const ScDPParentDimData& rNew )
{
- if ( !pNew->mpMemberDesc->getShowDetails() )
+ if ( !rNew.mpMemberDesc->getShowDetails() )
mbHasHideDetailsMember = true;
- maMemberHash.insert( std::pair< const SCROW, ScDPParentDimData *>( pNew->mpMemberDesc->GetItemDataId(), pNew ) );
+ maMemberHash.emplace( rNew.mpMemberDesc->GetItemDataId(), rNew );
}
ResultMembers::ResultMembers():
@@ -4063,8 +4063,6 @@ ResultMembers::ResultMembers():
}
ResultMembers::~ResultMembers()
{
- for ( DimMemberHash::const_iterator iter = maMemberHash.begin(); iter != maMemberHash.end(); ++iter )
- delete iter->second;
}
LateInitParams::LateInitParams(