summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2015-04-15 10:04:05 +0100
committerDavid Tardon <dtardon@redhat.com>2015-04-20 15:51:18 +0000
commitd9ca5cc82281b27819ddbaf5e89e05a133adc741 (patch)
tree4b2324c6996e85f028c4d48bca6459308bf01691
parent05006dd3b2cd3e3961127d719e5a4d2c39aaa051 (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/15319 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com> (cherry picked from commit e3c0596857ed8713de829ac9875892312f595504) Reviewed-on: https://gerrit.libreoffice.org/15443 Reviewed-by: Michael Stahl <mstahl@redhat.com> Reviewed-by: David Tardon <dtardon@redhat.com>
-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 f4c76407844e..9635acfc54ba 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