tdf#126710: sc:Remove pResultData from ScDPResultMemberSlim

pResultData is constant in ScDPResultDimension, so we don't need
to store it in ScDPResultMemberSlim, just ask the dimension.

Signed-off-by: Dr. David Alan Gilbert <dave@treblig.org>
Change-Id: I0b9f9081c9ffcc0c285e546a4cfb2784315d0c3d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/208635
Tested-by: Jenkins
Reviewed-by: David Gilbert <freedesktop@treblig.org>
This commit is contained in:
Dr. David Alan Gilbert
2026-08-02 16:32:48 +02:00
committed by David Gilbert
parent aac1744361
commit 19b0757c54
2 changed files with 11 additions and 12 deletions
+3 -8
View File
@@ -449,7 +449,6 @@ private:
// When adding fields here, update ScDPResultDimension::Promote
ScDPResultDimension* mpOurDimension;
const ScDPMember* mpMemberDesc;
const ScDPResultData* pResultData;
const SCROW mnOrder;
bool bmHasElements : 1;
bool bmHasHiddenDetails : 1;
@@ -469,8 +468,7 @@ private:
ScDPResultMember* Promote(const char* sReason);
public:
ScDPResultMemberSlim(ScDPResultDimension* pRDimension, const ScDPResultData* pData,
const ScDPParentDimData& rParentDimData);
ScDPResultMemberSlim(ScDPResultDimension* pRDimension, const ScDPParentDimData& rParentDimData);
bool GetHasElements() const override
{
@@ -614,11 +612,7 @@ public:
return bmInitialized;
};
const ScDPResultData* GetResultData() const override
{
// pResultData is never changed, and on promotion is passed to new version
return pResultData;
}
const ScDPResultData* GetResultData() const override;
SCROW GetOrder() const override
{
@@ -878,6 +872,7 @@ public:
const ScMemberSortOrder& GetMemberOrder() const { return aMemberOrder; }
ScMemberSortOrder& GetMemberOrder() { return aMemberOrder; }
const ScDPResultData* GetResultData() const { return pResultData; }
bool IsDataLayout() const { return bIsDataLayout; }
const OUString& GetName() const { return aDimensionName; }
+8 -4
View File
@@ -989,11 +989,9 @@ ResultMembers& ScDPResultData::GetDimResultMembers(tools::Long nDim, const ScDPD
ScDPResultMemberSlim::ScDPResultMemberSlim(
ScDPResultDimension* pRDimension,
const ScDPResultData* pData,
const ScDPParentDimData& rParentDimData) :
mpOurDimension(pRDimension),
mpMemberDesc(rParentDimData.mpMemberDesc),
pResultData(pData),
mnOrder(rParentDimData.mnOrder),
bmHasElements(false),
bmHasHiddenDetails(false),
@@ -1039,6 +1037,12 @@ const ScDPLevel* ScDPResultMemberSlim::GetParentLevel() const
return mpOurDimension->GetParentLevelForResult();
}
const ScDPResultData* ScDPResultMemberSlim::GetResultData() const
{
// pResultData is constant over the dimension, just ask it
return mpOurDimension->GetResultData();
}
ScDPResultMemberFull::ScDPResultMemberFull(
const ScDPResultData* pData, const ScDPParentDimData& rParentDimData ) :
pResultData( pData ),
@@ -3826,7 +3830,7 @@ ScDPResultMember* ScDPResultDimension::Promote(ScDPResultMemberSlim* pSlim, SCRO
assert(pSlim == maMemberArray[nIndex].get());
ScDPParentDimData aParentData(nOrder, mpDimension, mpLevel, pSlim->mpMemberDesc);
ScDPResultMember* pFull = new ScDPResultMemberFull(pSlim->pResultData, aParentData);
ScDPResultMember* pFull = new ScDPResultMemberFull(pResultData, aParentData);
if (pSlim->bmHasElements)
pFull->SetHasElements();
@@ -4289,7 +4293,7 @@ SCROW ScDPResultMember::GetDataId() const
ScDPResultMember* ScDPResultDimension::AddMember(const ScDPParentDimData &aData )
{
ScDPResultMember* pMember = new ScDPResultMemberSlim(this, pResultData, aData);
ScDPResultMember* pMember = new ScDPResultMemberSlim(this, aData);
maMemberArray.emplace_back( pMember );
return pMember;