connectivity/source/inc/file/fcode.hxx | 9 +++++ editeng/source/items/frmitems.cxx | 56 +++++++++++++++++++++++++++------ include/editeng/brushitem.hxx | 4 +- 3 files changed, 58 insertions(+), 11 deletions(-)
New commits: commit 8909cbeb315e257fbe06dad6caee5db18879b916 Author: Caolán McNamara <[email protected]> Date: Fri Nov 11 16:45:22 2016 +0000 coverity#1371239 Missing move assignment operator Change-Id: Ie5cddac8b4b0c8eefee82a14c845982600df0455 diff --git a/connectivity/source/inc/file/fcode.hxx b/connectivity/source/inc/file/fcode.hxx index c346569..e18bebf 100644 --- a/connectivity/source/inc/file/fcode.hxx +++ b/connectivity/source/inc/file/fcode.hxx @@ -44,7 +44,16 @@ namespace connectivity class OOO_DLLPUBLIC_FILE OCode { public: + //virtual dtor to allow this to be the root of the class hierarchy virtual ~OCode() = default; + //but that disables the default move ctor + OCode(OCode&&) = default; + //but that disables the rest of default ctors + OCode(const OCode&) = default; + OCode() = default; + //and same issue for the assignment operators + OCode& operator=(const OCode&) = default; + OCode& operator=(OCode&&) = default; inline static void * SAL_CALL operator new( size_t nSize ) { return ::rtl_allocateMemory( nSize ); } commit 5abd8d2eeeaecfcd18e2c61fe6d5a674a1826b69 Author: Caolán McNamara <[email protected]> Date: Fri Nov 11 12:34:27 2016 +0000 coverity#1371263 Missing move assignment operator Change-Id: Ifb4117afac4aa86893e674a581e1a7bb80925ee3 diff --git a/editeng/source/items/frmitems.cxx b/editeng/source/items/frmitems.cxx index ec383eb..20b8511 100644 --- a/editeng/source/items/frmitems.cxx +++ b/editeng/source/items/frmitems.cxx @@ -3439,6 +3439,19 @@ SvxBrushItem::SvxBrushItem(const SvxBrushItem& rItem) { } +SvxBrushItem::SvxBrushItem(SvxBrushItem&& rItem) + : SfxPoolItem(std::move(rItem)) + , aColor(std::move(rItem.aColor)) + , nShadingValue(std::move(rItem.nShadingValue)) + , xGraphicObject(std::move(rItem.xGraphicObject)) + , nGraphicTransparency(std::move(rItem.nGraphicTransparency)) + , maStrLink(std::move(rItem.maStrLink)) + , maStrFilter(std::move(rItem.maStrFilter)) + , eGraphicPos(std::move(rItem.eGraphicPos)) + , bLoadAgain(std::move(rItem.bLoadAgain)) +{ +} + SvxBrushItem::~SvxBrushItem() { } @@ -3688,6 +3701,19 @@ SvxBrushItem& SvxBrushItem::operator=(const SvxBrushItem& rItem) return *this; } +SvxBrushItem& SvxBrushItem::operator=(SvxBrushItem&& rItem) +{ + aColor = std::move(rItem.aColor); + nShadingValue = std::move(rItem.nShadingValue); + xGraphicObject = std::move(rItem.xGraphicObject); + nGraphicTransparency = std::move(rItem.nGraphicTransparency); + maStrLink = std::move(rItem.maStrLink); + maStrFilter = std::move(rItem.maStrFilter); + eGraphicPos = std::move(rItem.eGraphicPos); + bLoadAgain = std::move(rItem.bLoadAgain); + return *this; +} + bool SvxBrushItem::operator==( const SfxPoolItem& rAttr ) const { DBG_ASSERT( SfxPoolItem::operator==(rAttr), "unequal types" ); diff --git a/include/editeng/brushitem.hxx b/include/editeng/brushitem.hxx index 45c5a3f..83d4467 100644 --- a/include/editeng/brushitem.hxx +++ b/include/editeng/brushitem.hxx @@ -72,6 +72,7 @@ public: SvxBrushItem( const OUString& rLink, const OUString& rFilter, SvxGraphicPosition ePos, sal_uInt16 nWhich ); SvxBrushItem( const SvxBrushItem& ); + SvxBrushItem( SvxBrushItem&& ); SvxBrushItem( const CntWallpaperItem&, sal_uInt16 nWhich ); virtual ~SvxBrushItem() override; @@ -114,7 +115,8 @@ public: void SetGraphicLink( const OUString& rNew ); void SetGraphicFilter( const OUString& rNew ); - SvxBrushItem& operator=( const SvxBrushItem& rItem); + SvxBrushItem& operator=(const SvxBrushItem& rItem); + SvxBrushItem& operator=(SvxBrushItem&& rItem); static SvxGraphicPosition WallpaperStyle2GraphicPos( WallpaperStyle eStyle ); static WallpaperStyle GraphicPos2WallpaperStyle( SvxGraphicPosition ePos ); commit f731296e0ce7c4a0be77fdcba0c2578147211dfa Author: Caolán McNamara <[email protected]> Date: Fri Nov 11 12:33:35 2016 +0000 check for self-assignment Change-Id: I74eb934d19c0b511870e5a675917ca4baaf768cc diff --git a/editeng/source/items/frmitems.cxx b/editeng/source/items/frmitems.cxx index 6bfcbaa..ec383eb 100644 --- a/editeng/source/items/frmitems.cxx +++ b/editeng/source/items/frmitems.cxx @@ -3674,14 +3674,17 @@ bool SvxBrushItem::GetPresentation SvxBrushItem& SvxBrushItem::operator=(const SvxBrushItem& rItem) { - aColor = rItem.aColor; - nShadingValue = rItem.nShadingValue; - xGraphicObject.reset(rItem.xGraphicObject ? new GraphicObject(*rItem.xGraphicObject) : nullptr); - nGraphicTransparency = rItem.nGraphicTransparency; - maStrLink = rItem.maStrLink; - maStrFilter = rItem.maStrFilter; - eGraphicPos = rItem.eGraphicPos; - bLoadAgain = rItem.bLoadAgain; + if (&rItem != this) + { + aColor = rItem.aColor; + nShadingValue = rItem.nShadingValue; + xGraphicObject.reset(rItem.xGraphicObject ? new GraphicObject(*rItem.xGraphicObject) : nullptr); + nGraphicTransparency = rItem.nGraphicTransparency; + maStrLink = rItem.maStrLink; + maStrFilter = rItem.maStrFilter; + eGraphicPos = rItem.eGraphicPos; + bLoadAgain = rItem.bLoadAgain; + } return *this; } commit 4a862a6a016f5ae9f8ce466c917a8d012fe293ef Author: Caolán McNamara <[email protected]> Date: Fri Nov 11 12:19:48 2016 +0000 make it more typical copy ctor Change-Id: I0367e24b966a5bcc0d4838022ae12054e097270e diff --git a/editeng/source/items/frmitems.cxx b/editeng/source/items/frmitems.cxx index 8aa5ee4..6bfcbaa 100644 --- a/editeng/source/items/frmitems.cxx +++ b/editeng/source/items/frmitems.cxx @@ -3427,9 +3427,16 @@ SvxBrushItem::SvxBrushItem(SvStream& rStream, sal_uInt16 nVersion, sal_uInt16 _n } SvxBrushItem::SvxBrushItem(const SvxBrushItem& rItem) - : SfxPoolItem(rItem.Which()) + : SfxPoolItem(rItem) + , aColor(rItem.aColor) + , nShadingValue(rItem.nShadingValue) + , xGraphicObject(rItem.xGraphicObject ? new GraphicObject(*rItem.xGraphicObject) : nullptr) + , nGraphicTransparency(rItem.nGraphicTransparency) + , maStrLink(rItem.maStrLink) + , maStrFilter(rItem.maStrFilter) + , eGraphicPos(rItem.eGraphicPos) + , bLoadAgain(rItem.bLoadAgain) { - *this = rItem; } SvxBrushItem::~SvxBrushItem()
_______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
