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/dbfld.hxx | |
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/dbfld.hxx')
-rw-r--r-- | sw/inc/dbfld.hxx | 10 |
1 files changed, 5 insertions, 5 deletions
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; |