summaryrefslogtreecommitdiff
path: root/sc/source/filter/excel
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-04-15 10:04:05 +0100
committerAndras Timar <andras.timar@collabora.com>2015-04-23 15:33:33 +0200
commitaa7ae43b882b116ba8f4b9b4610ff35ca903d755 (patch)
tree7b38fc630c688e8ff81d2433c931f8284d8a5601 /sc/source/filter/excel
parent43a51c4bc6be6b5b15aa44ce6f3bbb1c06d58181 (diff)
fix crash on export of fdo68639-2.ods to xls with invalid mnLastIdx
mnLastIdx doesn't get reset when the color list is reset, the code already acknowledges that mnLastIdx is the last set index but that it may not be a valid position, so only set rnIndex if mnLastIdx is valid and the data at that pos is the desired data. Change-Id: I57ce32fd1a13bfe9049ed94be34229c8c2808b8e (cherry picked from commit 6c3b1361a97f5219f90bf2f09f3c3f2b70b8e30e) Reviewed-on: https://gerrit.libreoffice.org/15320 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'sc/source/filter/excel')
-rw-r--r--sc/source/filter/excel/xestyle.cxx12
1 files changed, 8 insertions, 4 deletions
diff --git a/sc/source/filter/excel/xestyle.cxx b/sc/source/filter/excel/xestyle.cxx
index 5b49205df033..5dd6b9870438 100644
--- a/sc/source/filter/excel/xestyle.cxx
+++ b/sc/source/filter/excel/xestyle.cxx
@@ -509,18 +509,22 @@ const Color& XclExpPaletteImpl::GetOriginalColor( sal_uInt32 nColorId ) const
XclListColor* XclExpPaletteImpl::SearchListEntry( const Color& rColor, sal_uInt32& rnIndex )
{
- rnIndex = mnLastIdx;
- XclListColor* pEntry = NULL;
+ rnIndex = 0;
if (mxColorList->empty())
return NULL;
+ XclListColor* pEntry = NULL;
+
// search optimization for equal-colored objects occurring repeatedly
- if (rnIndex < mxColorList->size())
+ if (mnLastIdx < mxColorList->size())
{
- pEntry = &(*mxColorList)[rnIndex];
+ pEntry = &(*mxColorList)[mnLastIdx];
if( pEntry->GetColor() == rColor )
+ {
+ rnIndex = mnLastIdx;
return pEntry;
+ }
}
// binary search for color