sc/source/filter/oox/sheetdatacontext.cxx | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)
New commits: commit 010e207039cc12bf7c688d978adeb16c0802333e Author: Katarina Behrens <bu...@bubli.org> Date: Sat Sep 29 20:09:42 2012 +0200 fdo #50343: Fixed crash on xlsx import of file with array formula Follow-up of 7fff98724bc7e3. Buffer only cell formula values via setCellFormulaValue. Otherwise we get crash in FormulaBuffer::applyCellFormulaValues() as array/shared/datatable formulas are treated differently Change-Id: Ie344b273ec662e8af1bf9fa54e79614393634974 diff --git a/sc/source/filter/oox/sheetdatacontext.cxx b/sc/source/filter/oox/sheetdatacontext.cxx index 7ca86d7..c7db69c 100644 --- a/sc/source/filter/oox/sheetdatacontext.cxx +++ b/sc/source/filter/oox/sheetdatacontext.cxx @@ -184,7 +184,13 @@ void SheetDataContext::onEndElement() case XML_normal: setCellFormula( maCellData.maCellAddr, maFormulaStr ); mrSheetData.setCellFormat( maCellData ); + + // If a number cell has some preloaded value, stick it into the buffer + // but do this only for real cell formulas (not array, shared etc.) + if( !( maCellValue.isEmpty() ) && ( maCellData.mnCellType == XML_n ) ) + setCellFormulaValue( maCellData.maCellAddr, maCellValue.toDouble() ); break; + case XML_shared: if( maFmlaData.mnSharedId >= 0 ) { @@ -249,13 +255,6 @@ void SheetDataContext::onEndElement() mrSheetData.setBlankCell( maCellData ); } } - else if( !maCellValue.isEmpty() ) switch( maCellData.mnCellType ) - { - case XML_n: - /* Set the pre-loaded value */ - setCellFormulaValue( maCellData.maCellAddr, maCellValue.toDouble() ); - break; - } } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits