diff options
27 files changed, 123 insertions, 39 deletions
diff --git a/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx b/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx index 6b9ea06247f5..d88d9b932f4c 100644 --- a/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx +++ b/connectivity/source/commontools/FDatabaseMetaDataResultSet.cxx @@ -44,7 +44,6 @@ using namespace ::com::sun::star::lang; ODatabaseMetaDataResultSet::ODatabaseMetaDataResultSet() :ODatabaseMetaDataResultSet_BASE(m_aMutex) ,::comphelper::OPropertyContainer(ODatabaseMetaDataResultSet_BASE::rBHelper) - ,m_aStatement(nullptr) ,m_nColPos(0) ,m_bBOF(true) ,m_bEOF(true) @@ -56,7 +55,6 @@ ODatabaseMetaDataResultSet::ODatabaseMetaDataResultSet() ODatabaseMetaDataResultSet::ODatabaseMetaDataResultSet( MetaDataResultSetType _eType ) :ODatabaseMetaDataResultSet_BASE(m_aMutex) ,::comphelper::OPropertyContainer(ODatabaseMetaDataResultSet_BASE::rBHelper) - ,m_aStatement(nullptr) ,m_nColPos(0) ,m_bBOF(true) ,m_bEOF(true) @@ -111,7 +109,7 @@ void ODatabaseMetaDataResultSet::disposing() OPropertySetHelper::disposing(); ::osl::MutexGuard aGuard(m_aMutex); - m_aStatement = nullptr; + m_aStatement.clear(); m_xMetaData.clear(); m_aRowsIter = m_aRows.end(); m_aRows.clear(); diff --git a/connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx b/connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx index 5816f6456a32..bb5bda634cfc 100644 --- a/connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx +++ b/connectivity/source/drivers/ado/ADatabaseMetaDataResultSet.cxx @@ -53,7 +53,6 @@ ODatabaseMetaDataResultSet::ODatabaseMetaDataResultSet(ADORecordset* _pRecordSet :ODatabaseMetaDataResultSet_BASE(m_aMutex) ,OPropertySetHelper(ODatabaseMetaDataResultSet_BASE::rBHelper) ,m_pRecordSet(_pRecordSet) - ,m_aStatement(nullptr) ,m_nRowPos(0) ,m_bWasNull(false) ,m_bEOF(false) @@ -88,7 +87,7 @@ void ODatabaseMetaDataResultSet::disposing() ::osl::MutexGuard aGuard(m_aMutex); if(m_pRecordSet) m_pRecordSet->Close(); - m_aStatement = nullptr; + m_aStatement.clear(); m_xMetaData.clear(); } diff --git a/connectivity/source/drivers/evoab2/NResultSet.cxx b/connectivity/source/drivers/evoab2/NResultSet.cxx index e6a43dab7687..53b50a5c3c1a 100644 --- a/connectivity/source/drivers/evoab2/NResultSet.cxx +++ b/connectivity/source/drivers/evoab2/NResultSet.cxx @@ -914,8 +914,7 @@ Reference< XInterface > SAL_CALL OEvoabResultSet::getStatement( ) { ::osl::MutexGuard aGuard( m_aMutex ); checkDisposed(OResultSet_BASE::rBHelper.bDisposed); - css::uno::WeakReferenceHelper aStatement(static_cast<OWeakObject*>(m_pStatement)); - return aStatement.get(); + return static_cast<cppu::OWeakObject*>(m_pStatement); } diff --git a/connectivity/source/drivers/evoab2/NStatement.cxx b/connectivity/source/drivers/evoab2/NStatement.cxx index 1f3e21a2ef90..8e556800871b 100644 --- a/connectivity/source/drivers/evoab2/NStatement.cxx +++ b/connectivity/source/drivers/evoab2/NStatement.cxx @@ -614,7 +614,7 @@ Reference< XResultSet > OCommonStatement::impl_executeQuery_throw( const QueryDa pResult->construct( _rQueryData ); // done - m_xResultSet = pResult; + m_xResultSet = Reference<XWeak>(pResult); return pResult; } diff --git a/connectivity/source/drivers/file/FPreparedStatement.cxx b/connectivity/source/drivers/file/FPreparedStatement.cxx index 79c69b3ee62e..2ae516800b06 100644 --- a/connectivity/source/drivers/file/FPreparedStatement.cxx +++ b/connectivity/source/drivers/file/FPreparedStatement.cxx @@ -100,7 +100,7 @@ rtl::Reference<OResultSet> OPreparedStatement::makeResultSet() closeResultSet(); rtl::Reference<OResultSet> xResultSet(createResultSet()); - m_xResultSet = xResultSet; + m_xResultSet = uno::Reference<uno::XWeak>(xResultSet); initializeResultSet(xResultSet.get()); initResultSet(xResultSet.get()); return xResultSet; diff --git a/connectivity/source/drivers/mysqlc/mysqlc_prepared_resultset.cxx b/connectivity/source/drivers/mysqlc/mysqlc_prepared_resultset.cxx index 24208ae244af..90d0e3d8746a 100644 --- a/connectivity/source/drivers/mysqlc/mysqlc_prepared_resultset.cxx +++ b/connectivity/source/drivers/mysqlc/mysqlc_prepared_resultset.cxx @@ -183,7 +183,7 @@ OPreparedResultSet::OPreparedResultSet(OConnection& rConn, OPreparedStatement* p : OPreparedResultSet_BASE(m_aMutex) , OPropertySetHelper(OPreparedResultSet_BASE::rBHelper) , m_rConnection(rConn) - , m_aStatement(static_cast<OWeakObject*>(pStmt)) + , m_aStatement(css::uno::Reference<css::uno::XWeak>(static_cast<OWeakObject*>(pStmt))) , m_pStmt(pMyStmt) , m_encoding(rConn.getConnectionEncoding()) , m_nColumnCount(mysql_stmt_field_count(pMyStmt)) @@ -201,7 +201,7 @@ void OPreparedResultSet::disposing() MutexGuard aGuard(m_aMutex); - m_aStatement = nullptr; + m_aStatement.clear(); m_xMetaData = nullptr; } diff --git a/connectivity/source/drivers/mysqlc/mysqlc_resultset.cxx b/connectivity/source/drivers/mysqlc/mysqlc_resultset.cxx index 348283b56505..182e74b7fcb9 100644 --- a/connectivity/source/drivers/mysqlc/mysqlc_resultset.cxx +++ b/connectivity/source/drivers/mysqlc/mysqlc_resultset.cxx @@ -107,7 +107,7 @@ OResultSet::OResultSet(OConnection& rConn, OCommonStatement* pStmt, MYSQL_RES* p : OResultSet_BASE(m_aMutex) , OPropertySetHelper(OResultSet_BASE::rBHelper) , m_pMysql(rConn.getMysqlConnection()) - , m_aStatement(static_cast<OWeakObject*>(pStmt)) + , m_aStatement(css::uno::Reference<css::uno::XWeak>(static_cast<OWeakObject*>(pStmt))) , m_pResult(pResult) , m_encoding(_encoding) { @@ -181,7 +181,7 @@ void OResultSet::disposing() mysql_free_result(m_pResult); m_pResult = nullptr; } - m_aStatement = nullptr; + m_aStatement.clear(); m_xMetaData = nullptr; } diff --git a/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx b/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx index 39a9e39896dc..5fbe8bf8f460 100644 --- a/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx +++ b/connectivity/source/drivers/odbc/ODatabaseMetaDataResultSet.cxx @@ -47,7 +47,6 @@ ODatabaseMetaDataResultSet::ODatabaseMetaDataResultSet(OConnection* _pConnection ,OPropertySetHelper(ODatabaseMetaDataResultSet_BASE::rBHelper) ,m_aStatementHandle(_pConnection->createStatementHandle()) - ,m_aStatement(nullptr) ,m_pConnection(_pConnection) ,m_nTextEncoding(_pConnection->getTextEncoding()) ,m_nRowPos(-1) @@ -84,7 +83,7 @@ void ODatabaseMetaDataResultSet::disposing() m_pConnection->freeStatementHandle(m_aStatementHandle); - m_aStatement = nullptr; + m_aStatement.clear(); m_xMetaData.clear(); m_pConnection.clear(); } diff --git a/cppuhelper/source/gcc3.map b/cppuhelper/source/gcc3.map index d5af50655c1a..07099853afb7 100644 --- a/cppuhelper/source/gcc3.map +++ b/cppuhelper/source/gcc3.map @@ -435,6 +435,13 @@ global: _ZN3com3sun4star3uno19WeakReferenceHelperaSEOS3_; # com::sun::star::uno::WeakReferenceHelper::operator=(com::sun::star::uno::WeakReferenceHelper&&) } LIBO_UDK_3.9; +LIBO_UDK_7.5 { # LibO 7.5 +global: + _ZN3com3sun4star3uno19WeakReferenceHelperaSERKNS2_9ReferenceINS2_5XWeakEEE; # com::sun::star::uno::WeakReferenceHelper::operator=(com::sun::star::uno::Reference<com::sun::star::uno::XWeak> const&) + _ZN3com3sun4star3uno19WeakReferenceHelperC1ERKNS2_9ReferenceINS2_5XWeakEEE; # com::sun::star::uno::WeakReferenceHelper::WeakReferenceHelper(com::sun::star::uno::Reference<com::sun::star::uno::XWeak> const&) + _ZN3com3sun4star3uno19WeakReferenceHelperC2ERKNS2_9ReferenceINS2_5XWeakEEE; # com::sun::star::uno::WeakReferenceHelper::WeakReferenceHelper(com::sun::star::uno::Reference<com::sun::star::uno::XWeak> const&) +} LIBO_UDK_5.3; + # Unique libstdc++ symbols: GLIBCXX_3.4 { global: diff --git a/cppuhelper/source/weak.cxx b/cppuhelper/source/weak.cxx index f45f433e9ce2..65c9e7f81912 100644 --- a/cppuhelper/source/weak.cxx +++ b/cppuhelper/source/weak.cxx @@ -331,6 +331,7 @@ class OWeakRefListener final : public XReference { public: explicit OWeakRefListener(const Reference< XInterface >& xInt); + explicit OWeakRefListener(const Reference< XWeak >& xInt); virtual ~OWeakRefListener(); // noncopyable @@ -372,6 +373,25 @@ OWeakRefListener::OWeakRefListener(const Reference< XInterface >& xInt) osl_atomic_decrement( &m_aRefCount ); } +OWeakRefListener::OWeakRefListener(const Reference< XWeak >& xWeak) + : m_aRefCount( 1 ) +{ + try + { + if (xWeak.is()) + { + m_XWeakConnectionPoint = xWeak->queryAdapter(); + + if (m_XWeakConnectionPoint.is()) + { + m_XWeakConnectionPoint->addReference(static_cast<XReference*>(this)); + } + } + } + catch (RuntimeException &) { OSL_ASSERT( false ); } // assert here, but no unexpected() + osl_atomic_decrement( &m_aRefCount ); +} + OWeakRefListener::~OWeakRefListener() { try @@ -434,6 +454,16 @@ WeakReferenceHelper::WeakReferenceHelper(const Reference< XInterface >& xInt) } } +WeakReferenceHelper::WeakReferenceHelper(const Reference< XWeak >& xWeak) + : m_pImpl( nullptr ) +{ + if (xWeak.is()) + { + m_pImpl = new OWeakRefListener(xWeak); + m_pImpl->acquire(); + } +} + WeakReferenceHelper::WeakReferenceHelper(const WeakReferenceHelper& rWeakRef) : m_pImpl( nullptr ) { @@ -493,6 +523,22 @@ WeakReferenceHelper::operator= (const Reference< XInterface > & xInt) return *this; } +WeakReferenceHelper & +WeakReferenceHelper::operator= (const Reference< XWeak > & xWeak) +{ + try + { + clear(); + if (xWeak.is()) + { + m_pImpl = new OWeakRefListener(xWeak); + m_pImpl->acquire(); + } + } + catch (RuntimeException &) { OSL_ASSERT( false ); } // assert here, but no unexpected() + return *this; +} + WeakReferenceHelper::~WeakReferenceHelper() { clear(); diff --git a/dbaccess/source/core/api/RowSet.cxx b/dbaccess/source/core/api/RowSet.cxx index d22717c263b0..9de8f00537c3 100644 --- a/dbaccess/source/core/api/RowSet.cxx +++ b/dbaccess/source/core/api/RowSet.cxx @@ -2071,7 +2071,7 @@ Reference< XResultSet > SAL_CALL ORowSet::createResultSet( ) if(m_xStatement.is()) { rtl::Reference<ORowSetClone> pClone = new ORowSetClone( m_aContext, *this, m_pMutex ); - m_aClones.emplace_back(static_cast<cppu::OWeakObject*>(pClone.get())); + m_aClones.emplace_back(css::uno::Reference< css::uno::XWeak >(pClone)); return pClone; } return Reference< XResultSet >(); diff --git a/dbaccess/source/core/api/statement.cxx b/dbaccess/source/core/api/statement.cxx index 3a466cff7d5f..3a67cbaebc7a 100644 --- a/dbaccess/source/core/api/statement.cxx +++ b/dbaccess/source/core/api/statement.cxx @@ -124,7 +124,7 @@ void OStatementBase::disposeResultSet() Reference< XComponent > xComp(m_aResultSet.get(), UNO_QUERY); if (xComp.is()) xComp->dispose(); - m_aResultSet = nullptr; + m_aResultSet.clear(); } // OComponentHelper diff --git a/forms/source/component/FormattedField.cxx b/forms/source/component/FormattedField.cxx index 3ede69a641a0..80e425ad6840 100644 --- a/forms/source/component/FormattedField.cxx +++ b/forms/source/component/FormattedField.cxx @@ -121,7 +121,7 @@ Reference< XNumberFormatsSupplier > StandardFormatsSupplier::get( const Referenc // somebody used the small time frame where the mutex was not locked to create and set // the supplier return xSupplier; - s_xDefaultFormatsSupplier = pSupplier; + s_xDefaultFormatsSupplier = css::uno::Reference<css::uno::XWeak>(pSupplier); } return pSupplier; } diff --git a/framework/source/fwe/helper/titlehelper.cxx b/framework/source/fwe/helper/titlehelper.cxx index 740d98a753ec..2f63b47bd62c 100644 --- a/framework/source/fwe/helper/titlehelper.cxx +++ b/framework/source/fwe/helper/titlehelper.cxx @@ -243,7 +243,7 @@ void SAL_CALL TitleHelper::disposing(const css::lang::EventObject& aEvent) { osl::MutexGuard aLock(m_aMutex); - m_xOwner = nullptr; + m_xOwner.clear(); m_sTitle = OUString (); m_nLeasedNumber = css::frame::UntitledNumbersConst::INVALID_NUMBER; } diff --git a/include/cppuhelper/weakref.hxx b/include/cppuhelper/weakref.hxx index 9b41df598340..a5858b2e8805 100644 --- a/include/cppuhelper/weakref.hxx +++ b/include/cppuhelper/weakref.hxx @@ -42,6 +42,7 @@ namespace uno { class OWeakRefListener; +class XWeak; /** The WeakReferenceHelper holds a weak reference to an object. @@ -79,6 +80,16 @@ public: */ WeakReferenceHelper( const css::uno::Reference< css::uno::XInterface > & xInt ); +#if defined LIBO_INTERNAL_ONLY + /** Initialize this reference with the hard interface reference xWeak. This + is faster than the XInterface constructor because we can skip doing an + UNO_QUERY. + + @param xWeak another hard interface reference + */ + WeakReferenceHelper( const css::uno::Reference< css::uno::XWeak > & xWeak ); +#endif + /** Releases this reference. */ ~WeakReferenceHelper(); @@ -102,6 +113,17 @@ public: WeakReferenceHelper & SAL_CALL operator = ( const css::uno::Reference< css::uno::XInterface > & xInt ); +#if defined LIBO_INTERNAL_ONLY + /** Releases this reference and takes over hard reference xWeak. This + is faster than the XInterface constructor because we can skip doing an + UNO_QUERY. + + @param xWeak another hard reference + */ + WeakReferenceHelper & operator = ( + const css::uno::Reference< css::uno::XWeak > & xWeak ); +#endif + /** Returns true if both weak refs reference to the same object. @param rObj another weak ref @@ -176,6 +198,18 @@ public: const css::uno::Reference< interface_type > & xInt ) { WeakReferenceHelper::operator=(xInt); return *this; } +#if defined LIBO_INTERNAL_ONLY + /** Releases this reference and takes over hard reference xWeak. This + is faster than the XInterface constructor because we can skip doing an + UNO_QUERY. + + @param xWeak another hard reference + */ + WeakReference & operator = ( + const css::uno::Reference< css::uno::XWeak > & xWeak ) + { WeakReferenceHelper::operator=(xWeak); return *this; } +#endif + /** Gets a hard reference to the object. @return hard reference or null, if the weakly referenced interface has gone diff --git a/include/unotools/weakref.hxx b/include/unotools/weakref.hxx index 189df22d5359..ca5682416033 100644 --- a/include/unotools/weakref.hxx +++ b/include/unotools/weakref.hxx @@ -77,14 +77,22 @@ public: { } - /** Copy ctor. Initialize this reference with a hard reference. + /** Copy ctor. Initialize this reference with a hard reference. @param rRef another hard ref */ +#if defined LIBO_INTERNAL_ONLY + WeakReference(interface_type* pRef) + : WeakReferenceHelper( + css::uno::Reference<css::uno::XWeak>(static_cast<cppu::OWeakObject*>(pRef))) + { + } +#else WeakReference(interface_type* pRef) : WeakReferenceHelper(static_cast<cppu::OWeakObject*>(pRef)) { } +#endif /** Releases this reference and takes over hard reference xInt. If the implementation behind xInt does not support XWeak @@ -106,7 +114,8 @@ public: WeakReference& operator=(interface_type* pInt) { - WeakReferenceHelper::operator=(static_cast<::cppu::OWeakObject*>(pInt)); + WeakReferenceHelper::operator=( + css::uno::Reference<css::uno::XWeak>(static_cast<::cppu::OWeakObject*>(pInt))); return *this; } diff --git a/sw/inc/fldbas.hxx b/sw/inc/fldbas.hxx index 880fcf1186c0..42beefb1b5e8 100644 --- a/sw/inc/fldbas.hxx +++ b/sw/inc/fldbas.hxx @@ -24,6 +24,7 @@ #include "calbck.hxx" #include "nodeoffset.hxx" +#include <com/sun/star/beans/XPropertySet.hpp> #include <cppuhelper/weakref.hxx> #include <editeng/svxenum.hxx> #include <tools/solar.h> @@ -38,7 +39,6 @@ class SwRootFrame; class SvNumberFormatter; class IDocumentRedlineAccess; class SwGetRefField; -namespace com::sun::star::beans { class XPropertySet; } namespace com::sun::star::uno { class Any; } typedef struct _xmlTextWriter* xmlTextWriterPtr; diff --git a/sw/inc/fmtfld.hxx b/sw/inc/fmtfld.hxx index 32a81303c3eb..5687eaa2ec4d 100644 --- a/sw/inc/fmtfld.hxx +++ b/sw/inc/fmtfld.hxx @@ -23,6 +23,7 @@ #include <cppuhelper/weakref.hxx> #include <svl/poolitem.hxx> #include <svl/SfxBroadcaster.hxx> +#include <com/sun/star/text/XTextField.hpp> #include "swdllapi.h" #include "calbck.hxx" @@ -36,7 +37,6 @@ class SwFieldType; class SwDDETable; class SwFormatField; class IDocumentRedlineAccess; -namespace com::sun::star::text { class XTextField; } namespace sw { struct FindFormatForFieldHint final : SfxHint { diff --git a/sw/inc/fmtftn.hxx b/sw/inc/fmtftn.hxx index d6f80da2ee66..4b2635f6bc90 100644 --- a/sw/inc/fmtftn.hxx +++ b/sw/inc/fmtftn.hxx @@ -22,12 +22,12 @@ #include <rtl/ustring.hxx> #include <cppuhelper/weakref.hxx> #include <svl/poolitem.hxx> +#include <com/sun/star/text/XFootnote.hpp> #include "swdllapi.h" #include "calbck.hxx" namespace com::sun::star::text { - class XFootnote; class XTextRange; } diff --git a/sw/inc/fmtrfmrk.hxx b/sw/inc/fmtrfmrk.hxx index 698e084ab939..8b28494f9e20 100644 --- a/sw/inc/fmtrfmrk.hxx +++ b/sw/inc/fmtrfmrk.hxx @@ -22,13 +22,10 @@ #include <rtl/ustring.hxx> #include <cppuhelper/weakref.hxx> #include <svl/poolitem.hxx> +#include <com/sun/star/text/XTextContent.hpp> #include "calbck.hxx" -namespace com::sun::star { - namespace text { class XTextContent; } -} - class SwTextRefMark; // ATT_REFMARK diff --git a/sw/inc/ndtxt.hxx b/sw/inc/ndtxt.hxx index c77e062d80cd..1320cb23b9bc 100644 --- a/sw/inc/ndtxt.hxx +++ b/sw/inc/ndtxt.hxx @@ -19,6 +19,7 @@ #pragma once #include <cppuhelper/weakref.hxx> +#include <com/sun/star/text/XTextContent.hpp> #include "swdllapi.h" #include "IDocumentContentOperations.hxx" @@ -70,7 +71,6 @@ namespace com::sun::star { namespace uno { template < class > class Sequence; } - namespace text { class XTextContent; } } typedef o3tl::sorted_vector< sal_Int32 > SwSoftPageBreakList; diff --git a/sw/inc/section.hxx b/sw/inc/section.hxx index 4350048f9700..2ead8c7c6e7d 100644 --- a/sw/inc/section.hxx +++ b/sw/inc/section.hxx @@ -21,6 +21,7 @@ #define INCLUDED_SW_INC_SECTION_HXX #include <com/sun/star/uno/Sequence.h> +#include <com/sun/star/text/XTextSection.hpp> #include <tools/ref.hxx> #include <svl/hint.hxx> @@ -31,9 +32,6 @@ #include "frmfmt.hxx" #include <vector> -namespace com::sun::star { - namespace text { class XTextSection; } -} class SwSectionFormat; class SwDoc; class SwSection; diff --git a/sw/inc/tox.hxx b/sw/inc/tox.hxx index 1c2f12a899f6..2e0c94b61e40 100644 --- a/sw/inc/tox.hxx +++ b/sw/inc/tox.hxx @@ -29,15 +29,13 @@ #include <sal/log.hxx> #include <svl/listener.hxx> #include <svl/poolitem.hxx> +#include <com/sun/star/text/XDocumentIndexMark.hpp> #include "calbck.hxx" #include "hints.hxx" #include "swtypes.hxx" #include "toxe.hxx" -namespace com::sun::star { - namespace text { class XDocumentIndexMark; } -} class SwTOXType; class SwTOXMark; class SwTextTOXMark; diff --git a/sw/source/core/inc/bookmark.hxx b/sw/source/core/inc/bookmark.hxx index 2c5cfacfcd28..a9c807063f4f 100644 --- a/sw/source/core/inc/bookmark.hxx +++ b/sw/source/core/inc/bookmark.hxx @@ -24,6 +24,7 @@ #include <vcl/keycod.hxx> #include <memory> #include <string_view> +#include <com/sun/star/text/XTextContent.hpp> #include <rtl/ustring.hxx> #include <osl/diagnose.h> @@ -32,8 +33,6 @@ #include <swrect.hxx> #include "FormFieldButton.hxx" -namespace com::sun::star::text { class XTextContent; } - class SwDoc; class SwEditWin; class SwServerObject; diff --git a/sw/source/core/txtnode/atrfld.cxx b/sw/source/core/txtnode/atrfld.cxx index 079c8a4b1226..d6fab571bbe9 100644 --- a/sw/source/core/txtnode/atrfld.cxx +++ b/sw/source/core/txtnode/atrfld.cxx @@ -293,7 +293,7 @@ void SwFormatField::UpdateTextNode(const SfxPoolItem* pOld, const SfxPoolItem* p { if (pOld && (RES_REMOVE_UNO_OBJECT == pOld->Which())) { // invalidate cached UNO object - m_wXTextField = nullptr; + m_wXTextField.clear(); // ??? why does this Modify method not already do this? CallSwClientNotify(sw::LegacyModifyHint(pOld, pNew)); return; diff --git a/sw/source/core/undo/undobj1.cxx b/sw/source/core/undo/undobj1.cxx index fa88f6179442..8265ac6e6617 100644 --- a/sw/source/core/undo/undobj1.cxx +++ b/sw/source/core/undo/undobj1.cxx @@ -40,6 +40,7 @@ #include <ndole.hxx> #include <frameformats.hxx> #include <svx/svdobj.hxx> +#include <svx/unoshape.hxx> SwUndoFlyBase::SwUndoFlyBase( SwFrameFormat* pFormat, SwUndoId nUndoId ) : SwUndo(nUndoId, pFormat->GetDoc()) diff --git a/toolkit/source/controls/unocontrol.cxx b/toolkit/source/controls/unocontrol.cxx index 251c6261c8d4..a87711ec025c 100644 --- a/toolkit/source/controls/unocontrol.cxx +++ b/toolkit/source/controls/unocontrol.cxx @@ -660,7 +660,7 @@ void UnoControl::disposing( const EventObject& rEvt ) if ( maAccessibleContext.get() == rEvt.Source ) { // just in case the context is disposed, but not released - ensure that we do not re-use it in the future - maAccessibleContext = nullptr; + maAccessibleContext.clear(); } else if( mxModel.get() == Reference< XControlModel >(rEvt.Source,UNO_QUERY).get() ) { |