diff options
author | Ingrid Halama <iha@openoffice.org> | 2010-10-07 16:43:07 +0200 |
---|---|---|
committer | Ingrid Halama <iha@openoffice.org> | 2010-10-07 16:43:07 +0200 |
commit | 53eb59a4c0a49ac89cf801c14583a297637dccc1 (patch) | |
tree | 7f578f7e1520018a2f65462f54e697181dbada75 /chart2 | |
parent | ee8bb91da8d56fe194aa58a8d78e0c64d0f8dea9 (diff) |
chart49: #i114953# don't crash with very complex categories
Diffstat (limited to 'chart2')
-rwxr-xr-x | chart2/source/tools/InternalDataProvider.cxx | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/chart2/source/tools/InternalDataProvider.cxx b/chart2/source/tools/InternalDataProvider.cxx index 4abc51be31af..26b2db4fc253 100755 --- a/chart2/source/tools/InternalDataProvider.cxx +++ b/chart2/source/tools/InternalDataProvider.cxx @@ -356,9 +356,11 @@ InternalDataProvider::InternalDataProvider( const Reference< chart2::XChartDocum if( xSeq.is() ) aStringSeq = xSeq->getTextualData(); // @todo: be able to deal with XDataSequence, too sal_Int32 nLength = aStringSeq.getLength(); - if( static_cast< sal_Int32 >(aNewCategories.size()) < nLength ) + sal_Int32 nCatLength = static_cast< sal_Int32 >(aNewCategories.size()); + if( nCatLength < nLength ) aNewCategories.resize( nLength ); - + else if( nLength < nCatLength ) + aStringSeq.realloc( nCatLength ); transform( aNewCategories.begin(), aNewCategories.end(), aStringSeq.getConstArray(), aNewCategories.begin(), lcl_setStringAtLevel(nL) ); } |