diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-07-04 10:07:46 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-07-10 12:27:54 +0200 |
commit | 1a33947a91685808fd5f6d4903b6ae896686066d (patch) | |
tree | 2a9454c3df148a16c3d4b14c3cfd1c9e10916da3 /sw/inc | |
parent | b7e75f974962db49d29d2f5261dce4de5cd42d3e (diff) |
pass SwField around by std::unique_ptr
Fix leak in SwFieldPage::InsertField, where it interacts badly with
SwFieldMgr::UpdateCurField
The awkward
return std::unique_ptr<SwField>(pTmp.release());
code is because clang 3.8.0 doesn't seem able to do auto-upcast of
std::unique_ptr.
Change-Id: I05b748e9cda145fd972a01bfa343239df32368b9
Reviewed-on: https://gerrit.libreoffice.org/57197
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sw/inc')
-rw-r--r-- | sw/inc/SwUndoField.hxx | 2 | ||||
-rw-r--r-- | sw/inc/authfld.hxx | 2 | ||||
-rw-r--r-- | sw/inc/chpfld.hxx | 2 | ||||
-rw-r--r-- | sw/inc/dbfld.hxx | 10 | ||||
-rw-r--r-- | sw/inc/ddefld.hxx | 2 | ||||
-rw-r--r-- | sw/inc/docufld.hxx | 32 | ||||
-rw-r--r-- | sw/inc/expfld.hxx | 8 | ||||
-rw-r--r-- | sw/inc/fldbas.hxx | 4 | ||||
-rw-r--r-- | sw/inc/flddat.hxx | 2 | ||||
-rw-r--r-- | sw/inc/flddropdown.hxx | 2 | ||||
-rw-r--r-- | sw/inc/fmtfld.hxx | 8 | ||||
-rw-r--r-- | sw/inc/reffld.hxx | 2 | ||||
-rw-r--r-- | sw/inc/usrfld.hxx | 2 |
13 files changed, 39 insertions, 39 deletions
diff --git a/sw/inc/SwUndoField.hxx b/sw/inc/SwUndoField.hxx index e9ef5d8dcb38..f27aed1a830c 100644 --- a/sw/inc/SwUndoField.hxx +++ b/sw/inc/SwUndoField.hxx @@ -43,7 +43,7 @@ public: class SwUndoFieldFromDoc : public SwUndoField { - SwField * pOldField, * pNewField; + std::unique_ptr<SwField> pOldField, pNewField; SwMsgPoolItem * pHint; bool bUpdate; diff --git a/sw/inc/authfld.hxx b/sw/inc/authfld.hxx index ad50de2487fc..60e7f1533100 100644 --- a/sw/inc/authfld.hxx +++ b/sw/inc/authfld.hxx @@ -148,7 +148,7 @@ class SwAuthorityField : public SwField mutable sal_IntPtr m_nTempSequencePos; virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; public: /// For internal use only, in general continue using ExpandField() instead. diff --git a/sw/inc/chpfld.hxx b/sw/inc/chpfld.hxx index 561836850c5d..695a21c395c4 100644 --- a/sw/inc/chpfld.hxx +++ b/sw/inc/chpfld.hxx @@ -55,7 +55,7 @@ class SW_DLLPUBLIC SwChapterField : public SwField OUString sPost; virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; public: SwChapterField(SwChapterFieldType*, sal_uInt32 nFormat = 0); diff --git a/sw/inc/dbfld.hxx b/sw/inc/dbfld.hxx index 214d3d9acec3..5d2c51af7880 100644 --- a/sw/inc/dbfld.hxx +++ b/sw/inc/dbfld.hxx @@ -63,7 +63,7 @@ class SW_DLLPUBLIC SwDBField : public SwValueField bool bInitialized : 1; virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; public: SwDBField(SwDBFieldType*, sal_uInt32 nFormat = 0); @@ -165,7 +165,7 @@ public: const OUString& rCond, const SwDBData& rDBData); virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; void Evaluate(SwDoc const *); inline void SetCondValid(bool bCond); @@ -205,7 +205,7 @@ public: SwDBNumSetField(SwDBNumSetFieldType*, const OUString& rCond, const OUString& rDBNum, const SwDBData& rDBData); virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; inline bool IsCondValid() const; inline void SetCondValid(bool bCond); @@ -248,7 +248,7 @@ public: SwDBNameField(SwDBNameFieldType*, const SwDBData& rDBData); virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; virtual bool QueryValue( css::uno::Any& rVal, sal_uInt16 nWhich ) const override; virtual bool PutValue( const css::uno::Any& rVal, sal_uInt16 nWhich ) override; }; @@ -270,7 +270,7 @@ public: SwDBSetNumberField(SwDBSetNumberFieldType*, const SwDBData& rDBData, sal_uInt32 nFormat = 0); virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; void Evaluate(SwDoc const *); inline long GetSetNumber() const; diff --git a/sw/inc/ddefld.hxx b/sw/inc/ddefld.hxx index 0bd96a8cbccb..510f6223874e 100644 --- a/sw/inc/ddefld.hxx +++ b/sw/inc/ddefld.hxx @@ -106,7 +106,7 @@ class SwDDEField : public SwField { private: virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; public: SwDDEField(SwDDEFieldType*); diff --git a/sw/inc/docufld.hxx b/sw/inc/docufld.hxx index 8afc0a1e425a..5a6545f712b6 100644 --- a/sw/inc/docufld.hxx +++ b/sw/inc/docufld.hxx @@ -157,7 +157,7 @@ public: sal_uInt16 const nMaxPage); virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; virtual OUString GetPar2() const override; virtual void SetPar2(const OUString& rStr) override; @@ -187,7 +187,7 @@ public: SwAuthorField(SwAuthorFieldType*, sal_uInt32 nFormat); virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; void SetExpansion(const OUString& rStr) { m_aContent = rStr; } @@ -213,7 +213,7 @@ public: SwFileNameField(SwFileNameFieldType*, sal_uInt32 nFormat); virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; void SetExpansion(const OUString& rStr) { m_aContent = rStr; } @@ -237,7 +237,7 @@ public: SwTemplNameField(SwTemplNameFieldType*, sal_uInt32 nFormat); virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; virtual bool QueryValue( css::uno::Any& rVal, sal_uInt16 nWhich ) const override; virtual bool PutValue( const css::uno::Any& rVal, sal_uInt16 nWhich ) override; }; @@ -267,7 +267,7 @@ public: void ChangeExpansion( const SwFrame* pFrame ); virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; virtual sal_uInt16 GetSubType() const override; virtual void SetSubType(sal_uInt16 nSub) override; @@ -301,7 +301,7 @@ class SW_DLLPUBLIC SwHiddenTextField : public SwField bool m_bValid : 1; ///< Is DB-field evaluated? virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; public: SwHiddenTextField( SwHiddenTextFieldType*, @@ -362,7 +362,7 @@ public: SwHiddenParaField(SwHiddenParaFieldType*, const OUString& rCond); virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; void SetHidden(bool bHidden) { m_bIsHidden = bHidden; } bool IsHidden() const { return m_bIsHidden; } @@ -391,7 +391,7 @@ class SW_DLLPUBLIC SwMacroField : public SwField bool m_bIsScriptURL; virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; public: /// Direct input, delete old value. @@ -465,7 +465,7 @@ public: virtual ~SwPostItField() override; virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; const DateTime& GetDateTime() const { return m_aDateTime; } const Date GetDate() const { return Date(m_aDateTime.GetDate()); } @@ -511,7 +511,7 @@ class SW_DLLPUBLIC SwDocInfoField : public SwValueField OUString m_aName; virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; public: SwDocInfoField(SwDocInfoFieldType*, sal_uInt16 nSub, const OUString& rName, sal_uInt32 nFormat=0); @@ -547,7 +547,7 @@ public: SwExtUserField(SwExtUserFieldType*, sal_uInt16 nSub, sal_uInt32 nFormat); virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; virtual sal_uInt16 GetSubType() const override; virtual void SetSubType(sal_uInt16 nSub) override; @@ -581,7 +581,7 @@ public: SwRefPageSetField( SwRefPageSetFieldType*, short nOff, bool bOn ); virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; virtual OUString GetPar2() const override; virtual void SetPar2(const OUString& rStr) override; @@ -619,7 +619,7 @@ public: SwRefPageGetField( SwRefPageGetFieldType*, sal_uInt32 nFormat ); virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; void SetText( const OUString& rText ) { m_sText = rText; } @@ -650,7 +650,7 @@ public: const OUString& sText, const OUString& sHelp ); virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; /// Placeholder-Text virtual OUString GetPar1() const override; @@ -690,7 +690,7 @@ public: virtual OUString GetDescription() const override; virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; /// Type virtual OUString GetPar1() const override; @@ -725,7 +725,7 @@ public: SwCombinedCharField( SwCombinedCharFieldType*, const OUString& rChars ); virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; /// Characters virtual OUString GetPar1() const override; diff --git a/sw/inc/expfld.hxx b/sw/inc/expfld.hxx index aefbbdbcbe0e..952e7fcc5402 100644 --- a/sw/inc/expfld.hxx +++ b/sw/inc/expfld.hxx @@ -92,7 +92,7 @@ class SW_DLLPUBLIC SwGetExpField : public SwFormulaField bool bLateInitialization; // #i82544# virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; public: SwGetExpField( SwGetExpFieldType*, const OUString& rFormel, @@ -214,7 +214,7 @@ class SW_DLLPUBLIC SwSetExpField : public SwFormulaField SwFormatField * mpFormatField; /// pool item to which the SwSetExpField belongs virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; public: SwSetExpField(SwSetExpFieldType*, const OUString& rFormel, sal_uLong nFormat = 0); @@ -299,7 +299,7 @@ class SW_DLLPUBLIC SwInputField : public SwField SwFormatField* mpFormatField; // attribute to which the <SwInputField> belongs to virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; // Accessing Input Field's content const OUString& getContent() const { return aContent;} @@ -385,7 +385,7 @@ class SwTableField : public SwValueField, public SwTableFormula sal_uInt16 nSubType; virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; /// Search TextNode containing the field. virtual const SwNode* GetNodeOfFormula() const override; diff --git a/sw/inc/fldbas.hxx b/sw/inc/fldbas.hxx index fcb55df88b4c..0093ce66b337 100644 --- a/sw/inc/fldbas.hxx +++ b/sw/inc/fldbas.hxx @@ -283,7 +283,7 @@ private: SwFieldType* m_pType; virtual OUString Expand() const = 0; - virtual SwField* Copy() const = 0; + virtual std::unique_ptr<SwField> Copy() const = 0; protected: void SetFormat(sal_uInt32 const nSet) { @@ -316,7 +316,7 @@ public: /// @return name or content. virtual OUString GetFieldName() const; - SwField * CopyField() const; + std::unique_ptr<SwField> CopyField() const; /// ResId SwFieldIds Which() const diff --git a/sw/inc/flddat.hxx b/sw/inc/flddat.hxx index dc5d2d6ee0db..9ffdc71c63ed 100644 --- a/sw/inc/flddat.hxx +++ b/sw/inc/flddat.hxx @@ -46,7 +46,7 @@ class SW_DLLPUBLIC SwDateTimeField : public SwValueField long nOffset; // Offset in minutes. virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; public: SwDateTimeField(SwDateTimeFieldType* pType, sal_uInt16 nSubType = DATEFLD, diff --git a/sw/inc/flddropdown.hxx b/sw/inc/flddropdown.hxx index 36aa09fe0b3d..f53e727cfe24 100644 --- a/sw/inc/flddropdown.hxx +++ b/sw/inc/flddropdown.hxx @@ -97,7 +97,7 @@ class SW_DLLPUBLIC SwDropDownField : public SwField @return the copy of this field */ - virtual SwField * Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; public: /** diff --git a/sw/inc/fmtfld.hxx b/sw/inc/fmtfld.hxx index cc4c365b1238..1b72d3e6b83c 100644 --- a/sw/inc/fmtfld.hxx +++ b/sw/inc/fmtfld.hxx @@ -44,7 +44,7 @@ class SW_DLLPUBLIC SwFormatField css::uno::WeakReference<css::text::XTextField> m_wXTextField; - SwField* mpField; + std::unique_ptr<SwField> mpField; SwTextField* mpTextField; // the TextAttribute protected: @@ -70,11 +70,11 @@ public: const SwField* GetField() const { - return mpField; + return mpField.get(); } SwField* GetField() { - return mpField; + return mpField.get(); } /** @@ -84,7 +84,7 @@ public: @attention The current field will be destroyed before setting the new field. */ - void SetField( SwField * pField ); + void SetField( std::unique_ptr<SwField> pField ); const SwTextField* GetTextField() const { diff --git a/sw/inc/reffld.hxx b/sw/inc/reffld.hxx index 8a9987b9ab87..45ce7ddbc11c 100644 --- a/sw/inc/reffld.hxx +++ b/sw/inc/reffld.hxx @@ -88,7 +88,7 @@ private: sal_uInt16 nSeqNo; virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; // #i81002# static OUString MakeRefNumStr( const SwTextNode& rTextNodeOfField, diff --git a/sw/inc/usrfld.hxx b/sw/inc/usrfld.hxx index d523964b97c3..c776f5b200c4 100644 --- a/sw/inc/usrfld.hxx +++ b/sw/inc/usrfld.hxx @@ -88,7 +88,7 @@ class SW_DLLPUBLIC SwUserField : public SwValueField sal_uInt16 nSubType; virtual OUString Expand() const override; - virtual SwField* Copy() const override; + virtual std::unique_ptr<SwField> Copy() const override; public: SwUserField(SwUserFieldType*, sal_uInt16 nSub, sal_uInt32 nFormat); |