summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2018-07-10 14:57:15 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2018-07-11 15:50:53 +0200
commitba2a084d0e133faefadfe329fb1c28aa8c4f2a32 (patch)
treeebaf0427f62a1bb957ed994289f364e62155a2a2
parent7c6ca00e61c42bb7c43cbb7a3203d8bad5c0ed0e (diff)
loplugin:useuniqueptr in SwAttrIter
Change-Id: I204250a02ac88cc36267b79ef1d70cd361230752 Reviewed-on: https://gerrit.libreoffice.org/57245 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--sw/source/core/text/itratr.cxx31
-rw-r--r--sw/source/core/text/itratr.hxx37
-rw-r--r--sw/source/core/text/redlnitr.cxx4
3 files changed, 37 insertions, 35 deletions
diff --git a/sw/source/core/text/itratr.cxx b/sw/source/core/text/itratr.cxx
index b6e53480d6e4..6e81b4539e60 100644
--- a/sw/source/core/text/itratr.cxx
+++ b/sw/source/core/text/itratr.cxx
@@ -69,6 +69,35 @@ using namespace ::com::sun::star;
static sal_Int32 GetNextAttrImpl(SwTextNode const* pTextNode,
size_t nStartIndex, size_t nEndIndex, sal_Int32 nPosition);
+SwAttrIter::SwAttrIter(SwTextNode const * pTextNode)
+ : m_pViewShell(nullptr)
+ , m_pFont(nullptr)
+ , m_pScriptInfo(nullptr)
+ , m_pLastOut(nullptr)
+ , m_nChgCnt(0)
+ , m_nStartIndex(0)
+ , m_nEndIndex(0)
+ , m_nPosition(0)
+ , m_nPropFont(0)
+ , m_pTextNode(pTextNode)
+ , m_pMergedPara(nullptr)
+{
+ m_aMagicNo[SwFontScript::Latin] = m_aMagicNo[SwFontScript::CJK] = m_aMagicNo[SwFontScript::CTL] = nullptr;
+}
+
+SwAttrIter::SwAttrIter(SwTextNode& rTextNode, SwScriptInfo& rScrInf, SwTextFrame const*const pFrame)
+ : m_pViewShell(nullptr)
+ , m_pFont(nullptr)
+ , m_pScriptInfo(nullptr)
+ , m_pLastOut(nullptr)
+ , m_nChgCnt(0)
+ , m_nPropFont(0)
+ , m_pTextNode(&rTextNode)
+ , m_pMergedPara(nullptr)
+{
+ CtorInitAttrIter(rTextNode, rScrInf, pFrame);
+}
+
void SwAttrIter::Chg( SwTextAttr const *pHt )
{
assert(pHt && m_pFont && "No attribute of font available for change");
@@ -92,7 +121,7 @@ void SwAttrIter::Rst( SwTextAttr const *pHt )
SwAttrIter::~SwAttrIter()
{
- delete m_pRedline;
+ m_pRedline.reset();
delete m_pFont;
}
diff --git a/sw/source/core/text/itratr.hxx b/sw/source/core/text/itratr.hxx
index c47be02230d8..568a5ed53f26 100644
--- a/sw/source/core/text/itratr.hxx
+++ b/sw/source/core/text/itratr.hxx
@@ -42,14 +42,14 @@ protected:
SwAttrHandler m_aAttrHandler;
SwViewShell *m_pViewShell;
- SwFont *m_pFont;
+ SwFont* m_pFont;
SwScriptInfo* m_pScriptInfo;
private:
VclPtr<OutputDevice> m_pLastOut;
/// count currently open hints, redlines, ext-input
short m_nChgCnt;
- SwRedlineItr *m_pRedline;
+ std::unique_ptr<SwRedlineItr> m_pRedline;
/// current iteration index in HintStarts
size_t m_nStartIndex;
/// current iteration index in HintEnds
@@ -72,44 +72,17 @@ protected:
void Chg( SwTextAttr const *pHt );
void Rst( SwTextAttr const *pHt );
void CtorInitAttrIter(SwTextNode& rTextNode, SwScriptInfo& rScrInf, SwTextFrame const* pFrame = nullptr);
- explicit SwAttrIter(SwTextNode const * pTextNode)
- : m_pViewShell(nullptr)
- , m_pFont(nullptr)
- , m_pScriptInfo(nullptr)
- , m_pLastOut(nullptr)
- , m_nChgCnt(0)
- , m_pRedline(nullptr)
- , m_nStartIndex(0)
- , m_nEndIndex(0)
- , m_nPosition(0)
- , m_nPropFont(0)
- , m_pTextNode(pTextNode)
- , m_pMergedPara(nullptr)
- {
- m_aMagicNo[SwFontScript::Latin] = m_aMagicNo[SwFontScript::CJK] = m_aMagicNo[SwFontScript::CTL] = nullptr;
- }
+ explicit SwAttrIter(SwTextNode const * pTextNode);
public:
/// All subclasses of this always have a SwTextFrame passed to the
/// constructor, but SwAttrIter itself may be created without a
/// SwTextFrame in certain special cases via this ctor here
- SwAttrIter(SwTextNode& rTextNode, SwScriptInfo& rScrInf, SwTextFrame const*const pFrame = nullptr)
- : m_pViewShell(nullptr)
- , m_pFont(nullptr)
- , m_pScriptInfo(nullptr)
- , m_pLastOut(nullptr)
- , m_nChgCnt(0)
- , m_pRedline(nullptr)
- , m_nPropFont(0)
- , m_pTextNode(&rTextNode)
- , m_pMergedPara(nullptr)
- {
- CtorInitAttrIter(rTextNode, rScrInf, pFrame);
- }
+ SwAttrIter(SwTextNode& rTextNode, SwScriptInfo& rScrInf, SwTextFrame const*const pFrame = nullptr);
virtual ~SwAttrIter();
- SwRedlineItr *GetRedln() { return m_pRedline; }
+ SwRedlineItr *GetRedln() { return m_pRedline.get(); }
// The parameter returns the position of the next change before or at the
// char position.
TextFrameIndex GetNextAttr() const;
diff --git a/sw/source/core/text/redlnitr.cxx b/sw/source/core/text/redlnitr.cxx
index b7ded98a503b..fa0673bc80e5 100644
--- a/sw/source/core/text/redlnitr.cxx
+++ b/sw/source/core/text/redlnitr.cxx
@@ -272,13 +272,13 @@ void SwAttrIter::CtorInitAttrIter(SwTextNode & rTextNode,
Seek( TextFrameIndex(0) );
}
- m_pRedline = new SwRedlineItr( rTextNode, *m_pFont, m_aAttrHandler, nRedlPos,
+ m_pRedline.reset(new SwRedlineItr( rTextNode, *m_pFont, m_aAttrHandler, nRedlPos,
m_pMergedPara
? SwRedlineItr::Mode::Hide
: bShow
? SwRedlineItr::Mode::Show
: SwRedlineItr::Mode::Ignore,
- pArr, pExtInp ? pExtInp->Start() : nullptr);
+ pArr, pExtInp ? pExtInp->Start() : nullptr));
if( m_pRedline->IsOn() )
++m_nChgCnt;