sw/inc/docufld.hxx | 8 ++++---- sw/source/core/fields/docufld.cxx | 19 ++++++++----------- 2 files changed, 12 insertions(+), 15 deletions(-)
New commits: commit 2d1cecf02b34d855c8d64e3271bffbcbf9bf4138 Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Fri Jan 20 12:20:06 2017 +0200 Revert "Revert "use rtl::Reference in SwPostItField"" This reverts commit 4b429851e54ccc42e5f9acebce67139bc3d5e244 and implements sberg's advice and removing copy operator Change-Id: I76876701f2585d4d1eacc4664b17d9ff73b26722 Reviewed-on: https://gerrit.libreoffice.org/33342 Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> Tested-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sw/inc/docufld.hxx b/sw/inc/docufld.hxx index 98e20ea..636abaa8 100644 --- a/sw/inc/docufld.hxx +++ b/sw/inc/docufld.hxx @@ -21,7 +21,7 @@ #include <tools/date.hxx> #include <tools/datetime.hxx> - +#include <rtl/ref.hxx> #include <svl/macitem.hxx> #include "fldbas.hxx" @@ -443,7 +443,7 @@ class SW_DLLPUBLIC SwPostItField : public SwField OUString sName; ///< Name of the comment. DateTime aDateTime; OutlinerParaObject* mpText; - SwTextAPIObject* m_pTextObject; + rtl::Reference<SwTextAPIObject> m_xTextObject; public: SwPostItField( SwPostItFieldType*, @@ -453,8 +453,8 @@ public: const OUString& rName, const DateTime& rDate); - SwPostItField(const SwPostItField&) = delete; // fix for MSVC2013 - SwPostItField(SwPostItField&&) = delete; // fix for MSVC2013 + SwPostItField(const SwPostItField&) = delete; + SwPostItField* operator=(const SwPostItField&) = delete; virtual ~SwPostItField() override; diff --git a/sw/source/core/fields/docufld.cxx b/sw/source/core/fields/docufld.cxx index e820553..e9ab623 100644 --- a/sw/source/core/fields/docufld.cxx +++ b/sw/source/core/fields/docufld.cxx @@ -1648,16 +1648,14 @@ SwPostItField::SwPostItField( SwPostItFieldType* pT, , sName( rName ) , aDateTime( rDateTime ) , mpText( nullptr ) - , m_pTextObject( nullptr ) { } SwPostItField::~SwPostItField() { - if ( m_pTextObject != nullptr ) + if ( m_xTextObject.is() ) { - m_pTextObject->DisposeEditSource(); - m_pTextObject->release(); + m_xTextObject->DisposeEditSource(); } delete mpText; @@ -1680,7 +1678,7 @@ SwField* SwPostItField::Copy() const if (mpText) pRet->SetTextObject( new OutlinerParaObject(*mpText) ); - // Note: member <m_pTextObject> not copied. + // Note: member <m_xTextObject> not copied. return pRet; } @@ -1747,21 +1745,20 @@ bool SwPostItField::QueryValue( uno::Any& rAny, sal_uInt16 nWhichId ) const break; case FIELD_PROP_TEXT: { - if ( !m_pTextObject ) + if ( !m_xTextObject.is() ) { SwPostItFieldType* pGetType = static_cast<SwPostItFieldType*>(GetTyp()); SwDoc* pDoc = pGetType->GetDoc(); SwTextAPIEditSource* pObj = new SwTextAPIEditSource( pDoc ); - const_cast <SwPostItField*> (this)->m_pTextObject = new SwTextAPIObject( pObj ); - m_pTextObject->acquire(); + const_cast <SwPostItField*> (this)->m_xTextObject = new SwTextAPIObject( pObj ); } if ( mpText ) - m_pTextObject->SetText( *mpText ); + m_xTextObject->SetText( *mpText ); else - m_pTextObject->SetString( sText ); + m_xTextObject->SetString( sText ); - uno::Reference < text::XText > xText( m_pTextObject ); + uno::Reference < text::XText > xText( m_xTextObject.get() ); rAny <<= xText; break; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits