summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sc/qa/unit/data/xls/forcepoint-pivot-1.xlsbin0 -> 28160 bytes
-rw-r--r--sc/source/filter/excel/xipivot.cxx8
2 files changed, 4 insertions, 4 deletions
diff --git a/sc/qa/unit/data/xls/forcepoint-pivot-1.xls b/sc/qa/unit/data/xls/forcepoint-pivot-1.xls
new file mode 100644
index 000000000000..12919922666b
--- /dev/null
+++ b/sc/qa/unit/data/xls/forcepoint-pivot-1.xls
Binary files differ
diff --git a/sc/source/filter/excel/xipivot.cxx b/sc/source/filter/excel/xipivot.cxx
index e63db6cdb1ab..669d6262cc2d 100644
--- a/sc/source/filter/excel/xipivot.cxx
+++ b/sc/source/filter/excel/xipivot.cxx
@@ -1566,13 +1566,13 @@ void XclImpPivotTable::ApplyMergeFlags(const ScRange& rOutRange, const ScDPSaveD
itr = aFieldBtns.begin();
itrEnd = aFieldBtns.end();
vector<const ScDPSaveDimension*>::const_iterator itDim = aFieldDims.begin();
- for (; itr != itrEnd; ++itr, ++itDim)
+ for (; itr != itrEnd; ++itr)
{
ScMF nMFlag = ScMF::Button;
- const ScDPSaveDimension* pDim = *itDim;
- if (pDim->HasInvisibleMember())
+ const ScDPSaveDimension* pDim = itDim != aFieldDims.end() ? *itDim++ : nullptr;
+ if (pDim && pDim->HasInvisibleMember())
nMFlag |= ScMF::HiddenMember;
- if (!pDim->IsDataLayout())
+ if (!pDim || !pDim->IsDataLayout())
nMFlag |= ScMF::ButtonPopup;
rDoc.ApplyFlagsTab(itr->Col(), itr->Row(), itr->Col(), itr->Row(), itr->Tab(), nMFlag);
}