[Libreoffice-commits] core.git: sw/inc sw/source

Noel Grandin noel.grandin at collabora.co.uk
Mon Jan 23 06:58:23 UTC 2017


 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.grandin at 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.grandin at collabora.co.uk>
    Tested-by: Noel Grandin <noel.grandin at 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;
         }


More information about the Libreoffice-commits mailing list