summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2017-01-20 12:20:06 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-01-23 06:57:47 +0000
commit2d1cecf02b34d855c8d64e3271bffbcbf9bf4138 (patch)
tree4154ba6c9f34da635f84834c87436a983e3d6276 /sw
parenta27e09079596eeae81cced01eaeabf94d6675085 (diff)
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.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sw')
-rw-r--r--sw/inc/docufld.hxx8
-rw-r--r--sw/source/core/fields/docufld.cxx19
2 files changed, 12 insertions, 15 deletions
diff --git a/sw/inc/docufld.hxx b/sw/inc/docufld.hxx
index 98e20eada1bb..636abaa80a7d 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 e8205534509a..e9ab62338a93 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;
}