sw/qa/extras/ooxmlexport/data/cell-grid-span.docx |binary sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 10 ++++++++++ sw/source/filter/writer/wrtswtbl.cxx | 6 +++++- 3 files changed, 15 insertions(+), 1 deletion(-)
New commits: commit 8f7c127c4be32a91052ea962aafd0af8a1645714 Author: Tushar Bende <tushar.be...@synerzip.com> Date: Thu Nov 14 20:04:23 2013 +0530 Fix for LibreOffice crash during Document RoundTrip Description: Some Documents were crashing LO During Roundtrip. This was because of setting wrong gridSpan value during export. Conflicts: sw/qa/extras/ooxmlexport/ooxmlexport.cxx Change-Id: Ibcb6d4f00520500a98c16eb40dec3b052ad6b3f9 Reviewed-on: https://gerrit.libreoffice.org/6672 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sw/qa/extras/ooxmlexport/data/cell-grid-span.docx b/sw/qa/extras/ooxmlexport/data/cell-grid-span.docx new file mode 100644 index 0000000..de71d48 Binary files /dev/null and b/sw/qa/extras/ooxmlexport/data/cell-grid-span.docx differ diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx index ce9a0a9..30f7115 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx @@ -1811,6 +1811,16 @@ DECLARE_OOXML_TEST(testTextBoxGradientAngle, "fdo65295.docx") CPPUNIT_ASSERT_EQUAL(sal_Int16( 45 * 10), aGradient8.Angle); } +DECLARE_OOXML_TEST(testCellGridSpan, "cell-grid-span.docx") +{ + // The problem was during export gridSpan value for 1st & 2nd cells for test document + // used to get set wrongly to 5 and 65532 respectively which was the reason for crash during save operation + // Varifying gridSpan element is not present in RoundTriped Document (As it's Default value is 1). + xmlDocPtr pXmlDoc = parseExport(); + assertXPath(pXmlDoc, "/w:document/w:body/w:tbl/w:tr/w:tc[1]/w:tcPr/w:gridSpan",0); + assertXPath(pXmlDoc, "/w:document/w:body/w:tbl/w:tr/w:tc[2]/w:tcPr/w:gridSpan",0); +} + #endif CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/sw/source/filter/writer/wrtswtbl.cxx b/sw/source/filter/writer/wrtswtbl.cxx index c75de62..18d4896 100644 --- a/sw/source/filter/writer/wrtswtbl.cxx +++ b/sw/source/filter/writer/wrtswtbl.cxx @@ -651,7 +651,11 @@ void SwWriteTable::FillTableRowsCols( long nStartRPos, sal_uInt16 nStartRow, SwWriteTableCol aSrchCol( nCPos ); SwWriteTableCols::const_iterator it = aCols.find( &aSrchCol ); OSL_ENSURE( it != aCols.end(), "missing column" ); - nCol = it - aCols.begin(); + if(it != aCols.end()) + { + // if find fails for some nCPos value then it used to set nCol value with size of aCols. + nCol = it - aCols.begin(); + } if( !ShouldExpandSub( pBox, bSubExpanded, nDepth ) ) {
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits