diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-05-09 14:00:59 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-05-16 09:03:47 +0200 |
commit | 19b4520fbfa8080821021586d8fe3428a2a893af (patch) | |
tree | 32cf8ee829d62f20b19bd124c7a9c5fe39231f3e | |
parent | 6da400912e8c69ae86650e799767da54ee422392 (diff) |
loplugin:useuniqueptr in SvxOutlinerForwarder
Change-Id: Ie861132b43b0a01ee8b4f3bc201bbf12f8af9f36
Reviewed-on: https://gerrit.libreoffice.org/54181
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r-- | compilerplugins/clang/useuniqueptr.cxx | 4 | ||||
-rw-r--r-- | editeng/source/uno/unoforou.cxx | 23 | ||||
-rw-r--r-- | include/editeng/unoforou.hxx | 6 |
3 files changed, 13 insertions, 20 deletions
diff --git a/compilerplugins/clang/useuniqueptr.cxx b/compilerplugins/clang/useuniqueptr.cxx index c7f76fe6b962..0c82307a9da8 100644 --- a/compilerplugins/clang/useuniqueptr.cxx +++ b/compilerplugins/clang/useuniqueptr.cxx @@ -49,6 +49,10 @@ public: // and the logic depends on overriding methods. if (fn == SRCDIR "/sfx2/source/dialog/tabdlg.cxx") return; + // pLongArr is being deleted here because we temporarily overwrite a pointer to someone else's buffer, with a pointer + // to our own buffer + if (fn == SRCDIR "/editeng/source/misc/txtrange.cxx") + return; TraverseDecl(compiler.getASTContext().getTranslationUnitDecl()); } diff --git a/editeng/source/uno/unoforou.cxx b/editeng/source/uno/unoforou.cxx index 3db46f1a83e9..fa8e08ed16d7 100644 --- a/editeng/source/uno/unoforou.cxx +++ b/editeng/source/uno/unoforou.cxx @@ -109,8 +109,7 @@ SfxItemSet SvxOutlinerForwarder::GetAttribs( const ESelection& rSel, EditEngineA else { // no, we need delete the old cache - delete mpAttribsCache; - mpAttribsCache = nullptr; + mpAttribsCache.reset(); } } @@ -122,7 +121,7 @@ SfxItemSet SvxOutlinerForwarder::GetAttribs( const ESelection& rSel, EditEngineA if( EditEngineAttribs::All == nOnlyHardAttrib ) { - mpAttribsCache = new SfxItemSet( aSet ); + mpAttribsCache.reset(new SfxItemSet( aSet )); maAttribCacheSelection = rSel; } @@ -146,12 +145,11 @@ SfxItemSet SvxOutlinerForwarder::GetParaAttribs( sal_Int32 nPara ) const else { // no, we need delete the old cache - delete mpParaAttribsCache; - mpParaAttribsCache = nullptr; + mpParaAttribsCache.reset(); } } - mpParaAttribsCache = new SfxItemSet( rOutliner.GetParaAttribs( nPara ) ); + mpParaAttribsCache.reset(new SfxItemSet( rOutliner.GetParaAttribs( nPara ) )); mnParaAttribsCache = nPara; EditEngine& rEditEngine = const_cast<EditEngine&>(rOutliner.GetEditEngine()); @@ -253,17 +251,8 @@ SfxItemState SvxOutlinerForwarder::GetItemState( sal_Int32 nPara, sal_uInt16 nWh void SvxOutlinerForwarder::flushCache() { - if( mpAttribsCache ) - { - delete mpAttribsCache; - mpAttribsCache = nullptr; - } - - if( mpParaAttribsCache ) - { - delete mpParaAttribsCache; - mpParaAttribsCache = nullptr; - } + mpAttribsCache.reset(); + mpParaAttribsCache.reset(); } LanguageType SvxOutlinerForwarder::GetLanguage( sal_Int32 nPara, sal_Int32 nIndex ) const diff --git a/include/editeng/unoforou.hxx b/include/editeng/unoforou.hxx index b04fdcdb59f5..0eb490b466fd 100644 --- a/include/editeng/unoforou.hxx +++ b/include/editeng/unoforou.hxx @@ -22,8 +22,8 @@ #include <editeng/unoedsrc.hxx> #include <editeng/editengdllapi.h> - #include <editeng/editdata.hxx> +#include <memory> class Outliner; @@ -37,14 +37,14 @@ private: /** this pointer may be null or point to an item set for the attribs of the selection maAttribsSelection */ - mutable SfxItemSet* mpAttribsCache; + mutable std::unique_ptr<SfxItemSet> mpAttribsCache; /** if we have a cached attribute item set, this is the selection of it */ mutable ESelection maAttribCacheSelection; /** this pointer may be null or point to an item set for the paragraph mnParaAttribsCache */ - mutable SfxItemSet* mpParaAttribsCache; + mutable std::unique_ptr<SfxItemSet> mpParaAttribsCache; /** if we have a cached para attribute item set, this is the paragraph of it */ mutable sal_Int32 mnParaAttribsCache; |