[Libreoffice-commits] core.git: editeng/source include/editeng
Noel Grandin
noel.grandin at collabora.co.uk
Wed Jan 24 06:57:59 UTC 2018
editeng/source/items/frmitems.cxx | 91 ++++++++++++++------------------------
include/editeng/boxitem.hxx | 26 +++++-----
2 files changed, 49 insertions(+), 68 deletions(-)
New commits:
commit 8eab42ddce2e9a01e65d82e2e5741a7d59fdd6ba
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date: Wed Jan 17 10:18:28 2018 +0200
loplugin:useuniqueptr in SvxBoxItem
Change-Id: I0702a25c765fc8781b65320f44c0e0c3c56269a7
Reviewed-on: https://gerrit.libreoffice.org/48408
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/editeng/source/items/frmitems.cxx b/editeng/source/items/frmitems.cxx
index 96785fef5c83..5205e32b86df 100644
--- a/editeng/source/items/frmitems.cxx
+++ b/editeng/source/items/frmitems.cxx
@@ -1356,20 +1356,15 @@ SvxBoxItem::SvxBoxItem( const SvxBoxItem& rCpy ) :
bRemoveAdjCellBorder ( rCpy.bRemoveAdjCellBorder )
{
- pTop = rCpy.GetTop() ? new SvxBorderLine( *rCpy.GetTop() ) : nullptr;
- pBottom = rCpy.GetBottom() ? new SvxBorderLine( *rCpy.GetBottom() ) : nullptr;
- pLeft = rCpy.GetLeft() ? new SvxBorderLine( *rCpy.GetLeft() ) : nullptr;
- pRight = rCpy.GetRight() ? new SvxBorderLine( *rCpy.GetRight() ) : nullptr;
+ pTop.reset( rCpy.GetTop() ? new SvxBorderLine( *rCpy.GetTop() ) : nullptr );
+ pBottom.reset( rCpy.GetBottom() ? new SvxBorderLine( *rCpy.GetBottom() ) : nullptr );
+ pLeft.reset( rCpy.GetLeft() ? new SvxBorderLine( *rCpy.GetLeft() ) : nullptr );
+ pRight.reset( rCpy.GetRight() ? new SvxBorderLine( *rCpy.GetRight() ) : nullptr );
}
SvxBoxItem::SvxBoxItem( const sal_uInt16 nId ) :
SfxPoolItem( nId ),
-
- pTop ( nullptr ),
- pBottom ( nullptr ),
- pLeft ( nullptr ),
- pRight ( nullptr ),
nTopDist ( 0 ),
nBottomDist ( 0 ),
nLeftDist ( 0 ),
@@ -1381,10 +1376,6 @@ SvxBoxItem::SvxBoxItem( const sal_uInt16 nId ) :
SvxBoxItem::~SvxBoxItem()
{
- delete pTop;
- delete pBottom;
- delete pLeft;
- delete pRight;
}
@@ -1403,9 +1394,9 @@ SvxBoxItem& SvxBoxItem::operator=( const SvxBoxItem& rBox )
}
-inline bool CmpBrdLn( const SvxBorderLine* pBrd1, const SvxBorderLine* pBrd2 )
+inline bool CmpBrdLn( const std::unique_ptr<SvxBorderLine> & pBrd1, const SvxBorderLine* pBrd2 )
{
- if( pBrd1 == pBrd2 )
+ if( pBrd1.get() == pBrd2 )
return true;
if( pBrd1 == nullptr || pBrd2 == nullptr)
return false;
@@ -2075,16 +2066,16 @@ const SvxBorderLine *SvxBoxItem::GetLine( SvxBoxItemLine nLine ) const
switch ( nLine )
{
case SvxBoxItemLine::TOP:
- pRet = pTop;
+ pRet = pTop.get();
break;
case SvxBoxItemLine::BOTTOM:
- pRet = pBottom;
+ pRet = pBottom.get();
break;
case SvxBoxItemLine::LEFT:
- pRet = pLeft;
+ pRet = pLeft.get();
break;
case SvxBoxItemLine::RIGHT:
- pRet = pRight;
+ pRet = pRight.get();
break;
default:
OSL_FAIL( "wrong line" );
@@ -2097,28 +2088,23 @@ const SvxBorderLine *SvxBoxItem::GetLine( SvxBoxItemLine nLine ) const
void SvxBoxItem::SetLine( const SvxBorderLine* pNew, SvxBoxItemLine nLine )
{
- SvxBorderLine* pTmp = pNew ? new SvxBorderLine( *pNew ) : nullptr;
+ std::unique_ptr<SvxBorderLine> pTmp( pNew ? new SvxBorderLine( *pNew ) : nullptr );
switch ( nLine )
{
case SvxBoxItemLine::TOP:
- delete pTop;
- pTop = pTmp;
+ pTop = std::move( pTmp );
break;
case SvxBoxItemLine::BOTTOM:
- delete pBottom;
- pBottom = pTmp;
+ pBottom = std::move( pTmp );
break;
case SvxBoxItemLine::LEFT:
- delete pLeft;
- pLeft = pTmp;
+ pLeft = std::move( pTmp );
break;
case SvxBoxItemLine::RIGHT:
- delete pRight;
- pRight = pTmp;
+ pRight = std::move( pTmp );
break;
default:
- delete pTmp;
OSL_FAIL( "wrong line" );
}
}
@@ -2192,16 +2178,16 @@ sal_uInt16 SvxBoxItem::CalcLineWidth( SvxBoxItemLine nLine ) const
switch ( nLine )
{
case SvxBoxItemLine::TOP:
- pTmp = pTop;
+ pTmp = pTop.get();
break;
case SvxBoxItemLine::BOTTOM:
- pTmp = pBottom;
+ pTmp = pBottom.get();
break;
case SvxBoxItemLine::LEFT:
- pTmp = pLeft;
+ pTmp = pLeft.get();
break;
case SvxBoxItemLine::RIGHT:
- pTmp = pRight;
+ pTmp = pRight.get();
break;
default:
OSL_FAIL( "wrong line" );
@@ -2220,19 +2206,19 @@ sal_uInt16 SvxBoxItem::CalcLineSpace( SvxBoxItemLine nLine, bool bEvenIfNoLine )
switch ( nLine )
{
case SvxBoxItemLine::TOP:
- pTmp = pTop;
+ pTmp = pTop.get();
nDist = nTopDist;
break;
case SvxBoxItemLine::BOTTOM:
- pTmp = pBottom;
+ pTmp = pBottom.get();
nDist = nBottomDist;
break;
case SvxBoxItemLine::LEFT:
- pTmp = pLeft;
+ pTmp = pLeft.get();
nDist = nLeftDist;
break;
case SvxBoxItemLine::RIGHT:
- pTmp = pRight;
+ pTmp = pRight.get();
nDist = nRightDist;
break;
default:
@@ -2276,8 +2262,8 @@ SvxBoxInfoItem::SvxBoxInfoItem( const SvxBoxInfoItem& rCpy ) :
mbEnableHor( rCpy.mbEnableHor ),
mbEnableVer( rCpy.mbEnableVer )
{
- pHori = rCpy.GetHori() ? new SvxBorderLine( *rCpy.GetHori() ) : nullptr;
- pVert = rCpy.GetVert() ? new SvxBorderLine( *rCpy.GetVert() ) : nullptr;
+ pHori.reset( rCpy.GetHori() ? new SvxBorderLine( *rCpy.GetHori() ) : nullptr );
+ pVert.reset( rCpy.GetVert() ? new SvxBorderLine( *rCpy.GetVert() ) : nullptr );
bDist = rCpy.IsDist();
bMinDist = rCpy.IsMinDist();
nValidFlags = rCpy.nValidFlags;
@@ -2287,17 +2273,13 @@ SvxBoxInfoItem::SvxBoxInfoItem( const SvxBoxInfoItem& rCpy ) :
SvxBoxInfoItem::~SvxBoxInfoItem()
{
- delete pHori;
- delete pVert;
}
SvxBoxInfoItem &SvxBoxInfoItem::operator=( const SvxBoxInfoItem& rCpy )
{
- delete pHori;
- delete pVert;
- pHori = rCpy.GetHori() ? new SvxBorderLine( *rCpy.GetHori() ) : nullptr;
- pVert = rCpy.GetVert() ? new SvxBorderLine( *rCpy.GetVert() ) : nullptr;
+ pHori.reset( rCpy.GetHori() ? new SvxBorderLine( *rCpy.GetHori() ) : nullptr );
+ pVert.reset( rCpy.GetVert() ? new SvxBorderLine( *rCpy.GetVert() ) : nullptr );
mbEnableHor = rCpy.mbEnableHor;
mbEnableVer = rCpy.mbEnableVer;
bDist = rCpy.IsDist();
@@ -2328,21 +2310,18 @@ bool SvxBoxInfoItem::operator==( const SfxPoolItem& rAttr ) const
void SvxBoxInfoItem::SetLine( const SvxBorderLine* pNew, SvxBoxInfoItemLine nLine )
{
- SvxBorderLine* pTmp = pNew ? new SvxBorderLine( *pNew ) : nullptr;
+ std::unique_ptr<SvxBorderLine> pTmp( pNew ? new SvxBorderLine( *pNew ) : nullptr );
if ( SvxBoxInfoItemLine::HORI == nLine )
{
- delete pHori;
- pHori = pTmp;
+ pHori = std::move(pTmp);
}
else if ( SvxBoxInfoItemLine::VERT == nLine )
{
- delete pVert;
- pVert = pTmp;
+ pVert = std::move(pTmp);
}
else
{
- delete pTmp;
OSL_FAIL( "wrong line" );
}
}
@@ -2399,8 +2378,8 @@ bool SvxBoxInfoItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
{
// 2 BorderLines, flags, valid flags and distance
css::uno::Sequence< css::uno::Any > aSeq( 5 );
- aSeq[0] <<= SvxBoxItem::SvxLineToLine( pHori, bConvert);
- aSeq[1] <<= SvxBoxItem::SvxLineToLine( pVert, bConvert);
+ aSeq[0] <<= SvxBoxItem::SvxLineToLine( pHori.get(), bConvert);
+ aSeq[1] <<= SvxBoxItem::SvxLineToLine( pVert.get(), bConvert);
if ( IsTable() )
nVal |= 0x01;
if ( IsDist() )
@@ -2415,10 +2394,10 @@ bool SvxBoxInfoItem::QueryValue( uno::Any& rVal, sal_uInt8 nMemberId ) const
}
case MID_HORIZONTAL:
- aRetLine = SvxBoxItem::SvxLineToLine( pHori, bConvert);
+ aRetLine = SvxBoxItem::SvxLineToLine( pHori.get(), bConvert);
break;
case MID_VERTICAL:
- aRetLine = SvxBoxItem::SvxLineToLine( pVert, bConvert);
+ aRetLine = SvxBoxItem::SvxLineToLine( pVert.get(), bConvert);
break;
case MID_FLAGS:
bIntMember = true;
@@ -2811,7 +2790,7 @@ bool SvxLineItem::operator==( const SfxPoolItem& rAttr ) const
{
assert(SfxPoolItem::operator==(rAttr));
- return CmpBrdLn( pLine.get(), static_cast<const SvxLineItem&>(rAttr).GetLine() );
+ return CmpBrdLn( pLine, static_cast<const SvxLineItem&>(rAttr).GetLine() );
}
diff --git a/include/editeng/boxitem.hxx b/include/editeng/boxitem.hxx
index a9b70f4c288a..e6ebd6d42379 100644
--- a/include/editeng/boxitem.hxx
+++ b/include/editeng/boxitem.hxx
@@ -25,6 +25,7 @@
#include <editeng/editengdllapi.h>
#include <com/sun/star/table/BorderLine2.hpp>
#include <o3tl/typed_flags_set.hxx>
+#include <memory>
// class SvxBoxItem ------------------------------------------------------
@@ -52,10 +53,11 @@ serializing to stream.
class EDITENG_DLLPUBLIC SvxBoxItem : public SfxPoolItem
{
- editeng::SvxBorderLine *pTop,
- *pBottom,
- *pLeft,
- *pRight;
+ std::unique_ptr<editeng::SvxBorderLine>
+ pTop,
+ pBottom,
+ pLeft,
+ pRight;
sal_uInt16 nTopDist,
nBottomDist,
nLeftDist,
@@ -88,10 +90,10 @@ public:
virtual void ScaleMetrics( long nMult, long nDiv ) override;
virtual bool HasMetrics() const override;
- const editeng::SvxBorderLine* GetTop() const { return pTop; }
- const editeng::SvxBorderLine* GetBottom() const { return pBottom; }
- const editeng::SvxBorderLine* GetLeft() const { return pLeft; }
- const editeng::SvxBorderLine* GetRight() const { return pRight; }
+ const editeng::SvxBorderLine* GetTop() const { return pTop.get(); }
+ const editeng::SvxBorderLine* GetBottom() const { return pBottom.get(); }
+ const editeng::SvxBorderLine* GetLeft() const { return pLeft.get(); }
+ const editeng::SvxBorderLine* GetRight() const { return pRight.get(); }
const editeng::SvxBorderLine* GetLine( SvxBoxItemLine nLine ) const;
@@ -158,8 +160,8 @@ namespace o3tl
class EDITENG_DLLPUBLIC SvxBoxInfoItem : public SfxPoolItem
{
- editeng::SvxBorderLine* pHori; //inner horizontal Line
- editeng::SvxBorderLine* pVert; //inner vertical Line
+ std::unique_ptr<editeng::SvxBorderLine> pHori; //inner horizontal Line
+ std::unique_ptr<editeng::SvxBorderLine> pVert; //inner vertical Line
bool mbEnableHor; /// true = Enable inner horizontal line.
bool mbEnableVer; /// true = Enable inner vertical line.
@@ -201,8 +203,8 @@ public:
virtual void ScaleMetrics( long nMult, long nDiv ) override;
virtual bool HasMetrics() const override;
- const editeng::SvxBorderLine* GetHori() const { return pHori; }
- const editeng::SvxBorderLine* GetVert() const { return pVert; }
+ const editeng::SvxBorderLine* GetHori() const { return pHori.get(); }
+ const editeng::SvxBorderLine* GetVert() const { return pVert.get(); }
//The Pointers are being copied!
void SetLine( const editeng::SvxBorderLine* pNew, SvxBoxInfoItemLine nLine );
More information about the Libreoffice-commits
mailing list