summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sc/qa/unit/data/xls/fail/ofz5527-1.xlsbin0 -> 6657 bytes
-rw-r--r--sc/source/filter/excel/xicontent.cxx4
2 files changed, 3 insertions, 1 deletions
diff --git a/sc/qa/unit/data/xls/fail/ofz5527-1.xls b/sc/qa/unit/data/xls/fail/ofz5527-1.xls
new file mode 100644
index 000000000000..334cafe42445
--- /dev/null
+++ b/sc/qa/unit/data/xls/fail/ofz5527-1.xls
Binary files differ
diff --git a/sc/source/filter/excel/xicontent.cxx b/sc/source/filter/excel/xicontent.cxx
index 4db48555220a..3d0de0d1413c 100644
--- a/sc/source/filter/excel/xicontent.cxx
+++ b/sc/source/filter/excel/xicontent.cxx
@@ -678,6 +678,8 @@ void XclImpCondFormat::ReadCF( XclImpStream& rStrm )
// *** create the Calc conditional formatting ***
+ const ScAddress aPos(rPos); //in case maRanges.Join invalidates it
+
if( !mxScCondFmt.get() )
{
mxScCondFmt.reset( new ScConditionalFormat( 0/*nKey*/, &GetDocRef() ) );
@@ -686,7 +688,7 @@ void XclImpCondFormat::ReadCF( XclImpStream& rStrm )
mxScCondFmt->SetRange(maRanges);
}
- ScCondFormatEntry* pEntry = new ScCondFormatEntry( eMode, xTokArr1.get(), pTokArr2.get(), &GetDocRef(), rPos, aStyleName );
+ ScCondFormatEntry* pEntry = new ScCondFormatEntry(eMode, xTokArr1.get(), pTokArr2.get(), &GetDocRef(), aPos, aStyleName);
mxScCondFmt->AddEntry( pEntry );
++mnCondIndex;
}