sw/source/filter/basflt/fltini.cxx | 1 - sw/source/filter/inc/fltini.hxx | 1 - sw/source/filter/xml/xmlimp.cxx | 11 +++++++++++ sw/source/filter/xml/xmltexti.cxx | 10 ---------- sw/source/ui/uno/unotxdoc.cxx | 10 ++++++++-- xmloff/inc/xmloff/xmlimp.hxx | 1 + 6 files changed, 20 insertions(+), 14 deletions(-)
New commits: commit 3a9e1e71d9a28b2c6bc96757e629b231d2276d9d Author: Stephan Bergmann <sberg...@redhat.com> Date: Fri Dec 14 21:46:49 2012 +0100 Do not defer ~XMLRedlineImportHelper activity to ~SwXMLImport At least with one Clang build, executing sw_unoapi test aborts at shutdown of soffice.bin with 20 __cxxabiv1::__cxa_call_unexpected 21 XMLRedlineImportHelper::~XMLRedlineImportHelper 22 XMLRedlineImportHelper::~XMLRedlineImportHelper 23 SwXMLTextImportHelper::~SwXMLTextImportHelper 24 SwXMLTextImportHelper::~SwXMLTextImportHelper 25 UniRefBase::release 26 UniReference<XMLTextImportHelper>::~UniReference 27 UniReference<XMLTextImportHelper>::~UniReference 28 SvXMLImport::~SvXMLImport 29 SwXMLImport::~SwXMLImport 30 SwXMLImport::~SwXMLImport 31 cppu::OWeakObject::release [...] 79 binaryurp::Bridge::dispose [...] 98 desktop::Desktop::DeregisterServices 99 desktop::Desktop::doShutdown 100 desktop::Desktop::Main due to ~XMLRedlineImportHelper calling setPropertyValue on an SwXTextDocument that is !IsValid() and thus throws a RuntimeException. SwXMLImport::endOocument already contains ClearShapeImport with a comment that indicates it is necessary for a similar reason, so add a ClearTextImport that ensures any ~XMLRedlineImportHelper activity is done before the SwXTextDocument becomes invalid, and not only at shutdown of the remote bridge that still holds a (Java) reference to SwXMLImport. Change-Id: I9891879c91bfea79fa9e22691be1826f61fdd70a diff --git a/sw/source/filter/xml/xmlimp.cxx b/sw/source/filter/xml/xmlimp.cxx index 8e79e98..240439e 100644 --- a/sw/source/filter/xml/xmlimp.cxx +++ b/sw/source/filter/xml/xmlimp.cxx @@ -936,6 +936,7 @@ void SwXMLImport::endDocument( void ) // delegate to parent: takes care of error handling SvXMLImport::endDocument(); + ClearTextImport(); } diff --git a/xmloff/inc/xmloff/xmlimp.hxx b/xmloff/inc/xmloff/xmlimp.hxx index 125728f..4fac737 100644 --- a/xmloff/inc/xmloff/xmlimp.hxx +++ b/xmloff/inc/xmloff/xmlimp.hxx @@ -155,6 +155,7 @@ protected: const ::com::sun::star::uno::Reference< ::com::sun::star::xml::sax::XAttributeList >& xAttrList ); virtual XMLTextImportHelper* CreateTextImport(); + inline void ClearTextImport() { mxTextImport = 0; } virtual XMLShapeImportHelper* CreateShapeImport(); inline sal_Bool HasShapeImport() const { return mxShapeImport.is(); } inline void ClearShapeImport() { mxShapeImport = 0; } commit da07b237caa815540405e9e4980beb16403ecd30 Author: Stephan Bergmann <sberg...@redhat.com> Date: Fri Dec 14 18:41:12 2012 +0100 Add exception messages Change-Id: I17dc1673d5126e00328baa1e7a8ed9b59572f08d diff --git a/sw/source/ui/uno/unotxdoc.cxx b/sw/source/ui/uno/unotxdoc.cxx index 2c26127..be2a5d6 100644 --- a/sw/source/ui/uno/unotxdoc.cxx +++ b/sw/source/ui/uno/unotxdoc.cxx @@ -1830,7 +1830,10 @@ void SwXTextDocument::setPropertyValue(const OUString& rPropertyName, { SolarMutexGuard aGuard; if(!IsValid()) - throw RuntimeException(); + throw RuntimeException( + "invalid SwXTextDocument", + static_cast< cppu::OWeakObject * >( + static_cast< SwXTextDocumentBaseClass * >(this))); const SfxItemPropertySimpleEntry* pEntry = pPropSet->getPropertyMap().getByName( rPropertyName); if(!pEntry) @@ -1842,7 +1845,10 @@ void SwXTextDocument::setPropertyValue(const OUString& rPropertyName, case WID_DOC_CHAR_COUNT : case WID_DOC_PARA_COUNT : case WID_DOC_WORD_COUNT : - throw RuntimeException(); + throw RuntimeException( + "bad WID", + static_cast< cppu::OWeakObject * >( + static_cast< SwXTextDocumentBaseClass * >(this))); case WID_DOC_WORD_SEPARATOR : { OUString sDelim; commit b25f4796a3c2d81d5af16183b162eb98e9f9d549 Author: Stephan Bergmann <sberg...@redhat.com> Date: Fri Dec 14 18:19:04 2012 +0100 SwXMLImport::CreateTextImport -> xmlimp.cxx Change-Id: Iea502cbe8becaf460f50e1ec954cf2cb6c18e252 diff --git a/sw/source/filter/xml/xmlimp.cxx b/sw/source/filter/xml/xmlimp.cxx index 637ef88..8e79e98 100644 --- a/sw/source/filter/xml/xmlimp.cxx +++ b/sw/source/filter/xml/xmlimp.cxx @@ -43,6 +43,7 @@ #include <ndtxt.hxx> #include <editsh.hxx> #include "xmlimp.hxx" +#include "xmltexti.hxx" #include <xmloff/DocumentSettingsContext.hxx> #include <docsh.hxx> #include <editeng/unolingu.hxx> @@ -990,6 +991,15 @@ SvTextShapeImportHelper::~SvTextShapeImportHelper() } +XMLTextImportHelper* SwXMLImport::CreateTextImport() +{ + return new SwXMLTextImportHelper( GetModel(), *this, getImportInfo(), + IsInsertMode(), + IsStylesOnlyMode(), bShowProgress, + IsBlockMode(), IsOrganizerMode(), + bPreserveRedlineMode ); +} + XMLShapeImportHelper* SwXMLImport::CreateShapeImport() { return new SvTextShapeImportHelper( *this ); diff --git a/sw/source/filter/xml/xmltexti.cxx b/sw/source/filter/xml/xmltexti.cxx index 35c2836..ef6b102 100644 --- a/sw/source/filter/xml/xmltexti.cxx +++ b/sw/source/filter/xml/xmltexti.cxx @@ -958,16 +958,6 @@ void SwXMLTextImportHelper::endAppletOrPlugin( } } -XMLTextImportHelper* SwXMLImport::CreateTextImport() -{ - return new SwXMLTextImportHelper( GetModel(), *this, getImportInfo(), - IsInsertMode(), - IsStylesOnlyMode(), bShowProgress, - IsBlockMode(), IsOrganizerMode(), - bPreserveRedlineMode ); -} - - // redlining helper methods // (override to provide the real implementation) commit 56f1f4512dbe366d5ba55a2363d1cf1a47f7be56 Author: Stephan Bergmann <sberg...@redhat.com> Date: Fri Dec 14 14:06:24 2012 +0100 -Werror,-Wunused-private-field Change-Id: I7a65695e8ccca57cf3bd0fd3495ecbd6fe147fa9 diff --git a/sw/source/filter/basflt/fltini.cxx b/sw/source/filter/basflt/fltini.cxx index 7e64eb8..8d42f30 100644 --- a/sw/source/filter/basflt/fltini.cxx +++ b/sw/source/filter/basflt/fltini.cxx @@ -312,7 +312,6 @@ void StgReader::SetFltName( const String& rFltNm ) SwRelNumRuleSpaces::SwRelNumRuleSpaces( SwDoc& rDoc, sal_Bool bNDoc ) - : bNewDoc( bNDoc ) { pNumRuleTbl = new SwNumRuleTbl(); pNumRuleTbl->reserve(8); diff --git a/sw/source/filter/inc/fltini.hxx b/sw/source/filter/inc/fltini.hxx index 55c9f88..115ed36 100644 --- a/sw/source/filter/inc/fltini.hxx +++ b/sw/source/filter/inc/fltini.hxx @@ -71,7 +71,6 @@ void GetWW8Writer( const String&, const String&, WriterRef& ); class SW_DLLPUBLIC SwRelNumRuleSpaces { SwNumRuleTbl* pNumRuleTbl; // Liste aller benannten NumRules - sal_Bool bNewDoc; public: SwRelNumRuleSpaces( SwDoc& rDoc, sal_Bool bNewDoc ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits