sc/source/core/data/dpoutput.cxx | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-)
New commits: commit 37e65a2d577d69cfd10df999bc189180f2dea157 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Wed Oct 9 09:13:57 2019 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed Oct 9 11:25:24 2019 +0200 cid#1452393 silence Using invalid iterator Change-Id: Idf3ec9c751f8c7d93ce82e25613757627b867cc4 Reviewed-on: https://gerrit.libreoffice.org/80521 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sc/source/core/data/dpoutput.cxx b/sc/source/core/data/dpoutput.cxx index 54c4a204dedb..558d4bde8d4b 100644 --- a/sc/source/core/data/dpoutput.cxx +++ b/sc/source/core/data/dpoutput.cxx @@ -1152,6 +1152,18 @@ long ScDPOutput::GetHeaderRows() const return pPageFields.size() + ( bDoFilter ? 1 : 0 ); } +namespace +{ + void insertNames(ScDPUniqueStringSet& rNames, const uno::Sequence<sheet::MemberResult>& rMemberResults) + { + for (const sheet::MemberResult& rMemberResult : rMemberResults) + { + if (rMemberResult.Flags & sheet::MemberResultFlags::HASMEMBER) + rNames.insert(rMemberResult.Name); + } + } +} + void ScDPOutput::GetMemberResultNames(ScDPUniqueStringSet& rNames, long nDimension) { // Return the list of all member names in a dimension's MemberResults. @@ -1161,26 +1173,20 @@ void ScDPOutput::GetMemberResultNames(ScDPUniqueStringSet& rNames, long nDimensi auto lFindDimension = [nDimension](const ScDPOutLevelData& rField) { return rField.mnDim == nDimension; }; // look in column fields - auto it = std::find_if(pColFields.begin(), pColFields.end(), lFindDimension); - bool bFound = it != pColFields.end(); - - if (!bFound) + auto colit = std::find_if(pColFields.begin(), pColFields.end(), lFindDimension); + if (colit != pColFields.end()) { - // look in row fields - it = std::find_if(pRowFields.begin(), pRowFields.end(), lFindDimension); - bFound = it != pRowFields.end(); + // collect the member names + insertNames(rNames, colit->maResult); + return; } - // collect the member names - - if ( bFound ) + // look in row fields + auto rowit = std::find_if(pRowFields.begin(), pRowFields.end(), lFindDimension); + if (rowit != pRowFields.end()) { - const uno::Sequence<sheet::MemberResult> aMemberResults = it->maResult; - for (const sheet::MemberResult& rMemberResult : aMemberResults) - { - if ( rMemberResult.Flags & sheet::MemberResultFlags::HASMEMBER ) - rNames.insert(rMemberResult.Name); - } + // collect the member names + insertNames(rNames, rowit->maResult); } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits