sw/qa/core/data/ooxml/pass/fdo80514.docx |binary writerfilter/source/dmapper/DomainMapper_Impl.cxx | 6 ++++++ writerfilter/source/dmapper/NumberingManager.cxx | 5 +++++ writerfilter/source/dmapper/NumberingManager.hxx | 3 +++ 4 files changed, 14 insertions(+)
New commits: commit b00a59287e0b1dcc0a46dd18e5e884282eb859f3 Author: Vinaya Mandke <vinaya.man...@synerzip.com> Date: Wed Jun 25 12:53:07 2014 +0530 fdo#80514 LO crashes on opening; tries to remove a para with NumPicBullet LO crashes while opening the issue file as, an extra Num Pic Bullets is attached to the dummy para. All NumPicBullets were disposed in dtor of ListsManager. LO tries to remove dummy para after the section, while the pic bullet is still attached to it. This causes Lo to crash while removing the paragraph. Added a 'ListsManager::DisposeNumPicBullets( )' to remove the extra bullets from the document Added the issue file in sw/qa/core/data/ooxml/pass/ Change-Id: I578f48364dcb4ff939fa3800e90db88a99d5ca1a Reviewed-on: https://gerrit.libreoffice.org/9897 Reviewed-by: Miklos Vajna <vmik...@collabora.co.uk> Tested-by: Miklos Vajna <vmik...@collabora.co.uk> diff --git a/sw/qa/core/data/ooxml/pass/fdo80514.docx b/sw/qa/core/data/ooxml/pass/fdo80514.docx new file mode 100644 index 0000000..5ea2ce7 Binary files /dev/null and b/sw/qa/core/data/ooxml/pass/fdo80514.docx differ diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index 20fcbfc..8bd5900 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -299,6 +299,12 @@ void DomainMapper_Impl::RemoveDummyParaForTableInSection() return; uno::Reference< text::XTextCursor > xCursor = GetTopTextAppend()->createTextCursorByRange(pSectionContext->GetStartingRange()); + // Remove the extra NumPicBullets from the document, + // which get attached to the first paragraph in the + // document + ListsManager::Pointer pListTable = GetListTable(); + pListTable->DisposeNumPicBullets(); + uno::Reference<container::XEnumerationAccess> xEnumerationAccess(xCursor, uno::UNO_QUERY); if (xEnumerationAccess.is() && m_aTextAppendStack.size() == 1 ) { diff --git a/writerfilter/source/dmapper/NumberingManager.cxx b/writerfilter/source/dmapper/NumberingManager.cxx index 000eb72..d34c0b9 100644 --- a/writerfilter/source/dmapper/NumberingManager.cxx +++ b/writerfilter/source/dmapper/NumberingManager.cxx @@ -699,6 +699,11 @@ ListsManager::ListsManager(DomainMapper& rDMapper, ListsManager::~ListsManager( ) { + DisposeNumPicBullets(); +} + +void ListsManager::DisposeNumPicBullets( ) +{ uno::Reference<drawing::XShape> xShape; for (std::vector<NumPicBullet::Pointer>::iterator it = m_aNumPicBullets.begin(); it != m_aNumPicBullets.end(); ++it) { diff --git a/writerfilter/source/dmapper/NumberingManager.hxx b/writerfilter/source/dmapper/NumberingManager.hxx index 3845d40..3eff441 100644 --- a/writerfilter/source/dmapper/NumberingManager.hxx +++ b/writerfilter/source/dmapper/NumberingManager.hxx @@ -263,6 +263,9 @@ public: // Mapping methods void CreateNumberingRules( ); + + // Dispose the NumPicBullets + void DisposeNumPicBullets( ); }; } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits