[Libreoffice-commits] core.git: compilerplugins/clang editeng/source include/editeng
Noel Grandin
noel.grandin at collabora.co.uk
Wed May 16 07:04:12 UTC 2018
compilerplugins/clang/useuniqueptr.cxx | 4 ++++
editeng/source/uno/unoforou.cxx | 23 ++++++-----------------
include/editeng/unoforou.hxx | 6 +++---
3 files changed, 13 insertions(+), 20 deletions(-)
New commits:
commit 19b4520fbfa8080821021586d8fe3428a2a893af
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Wed May 9 14:00:59 2018 +0200
loplugin:useuniqueptr in SvxOutlinerForwarder
Change-Id: Ie861132b43b0a01ee8b4f3bc201bbf12f8af9f36
Reviewed-on: https://gerrit.libreoffice.org/54181
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
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;
More information about the Libreoffice-commits
mailing list