diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2019-10-05 13:32:10 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2019-10-06 11:58:50 +0200 |
commit | 6a789e617ed07bfddc516c8fc0cf94cd6dfe7250 (patch) | |
tree | 11d6097893a301ae65cf4668077134ac7510091a /svx | |
parent | 070b3a848d6824ea154ae2d68fc7571feed60a5f (diff) |
improve SfxPoolItem operator== implementations
(*) make them all call the superclass operator==
(*) make the base class check which and typeid to ensure
we are only comparing the safe subclasses together
(*) remove a couple of operator== that were not doing
anything useful
Change-Id: Ia6234aed42df04157a5d6a323dc951916a9cb316
Reviewed-on: https://gerrit.libreoffice.org/80308
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/dialog/svxgrahicitem.cxx | 2 | ||||
-rw-r--r-- | svx/source/items/clipfmtitem.cxx | 2 | ||||
-rw-r--r-- | svx/source/items/ofaitem.cxx | 3 | ||||
-rw-r--r-- | svx/source/xoutdev/xattr2.cxx | 2 |
4 files changed, 6 insertions, 3 deletions
diff --git a/svx/source/dialog/svxgrahicitem.cxx b/svx/source/dialog/svxgrahicitem.cxx index 4a036ed5dd7f..27691c1ada3f 100644 --- a/svx/source/dialog/svxgrahicitem.cxx +++ b/svx/source/dialog/svxgrahicitem.cxx @@ -28,7 +28,7 @@ SvxGraphicItem::SvxGraphicItem( const Graphic& rGraphic ) bool SvxGraphicItem::operator==( const SfxPoolItem& rItem) const { - return static_cast<const SvxGraphicItem&>(rItem).aGraphic == aGraphic; + return SfxPoolItem::operator==(rItem) && static_cast<const SvxGraphicItem&>(rItem).aGraphic == aGraphic; } SfxPoolItem* SvxGraphicItem::Clone( SfxItemPool * ) const diff --git a/svx/source/items/clipfmtitem.cxx b/svx/source/items/clipfmtitem.cxx index 0a6df479f980..a9d1a0931062 100644 --- a/svx/source/items/clipfmtitem.cxx +++ b/svx/source/items/clipfmtitem.cxx @@ -87,6 +87,8 @@ bool SvxClipboardFormatItem::PutValue( const css::uno::Any& rVal, sal_uInt8 /*nM bool SvxClipboardFormatItem::operator==( const SfxPoolItem& rComp ) const { + if (!SfxPoolItem::operator==(rComp)) + return false; const SvxClipboardFormatItem& rCmp = static_cast<const SvxClipboardFormatItem&>(rComp); if(rCmp.pImpl->aFmtNms.size() != pImpl->aFmtNms.size()) return false; diff --git a/svx/source/items/ofaitem.cxx b/svx/source/items/ofaitem.cxx index 6d487ee6b52e..4e0e6ac82209 100644 --- a/svx/source/items/ofaitem.cxx +++ b/svx/source/items/ofaitem.cxx @@ -28,7 +28,8 @@ OfaPtrItem::OfaPtrItem( sal_uInt16 _nWhich, void *_pPtr ) bool OfaPtrItem::operator==( const SfxPoolItem& rItem) const { - return static_cast<const OfaPtrItem&>(rItem).pPtr == pPtr; + return SfxPoolItem::operator==(rItem) && + static_cast<const OfaPtrItem&>(rItem).pPtr == pPtr; } SfxPoolItem* OfaPtrItem::Clone( SfxItemPool * ) const diff --git a/svx/source/xoutdev/xattr2.cxx b/svx/source/xoutdev/xattr2.cxx index 0d0d228249eb..6a59871ce1d2 100644 --- a/svx/source/xoutdev/xattr2.cxx +++ b/svx/source/xoutdev/xattr2.cxx @@ -203,7 +203,7 @@ bool AffineMatrixItem::operator==(const SfxPoolItem& rRef) const return false; } - const AffineMatrixItem* pRef = dynamic_cast< const AffineMatrixItem* >(&rRef); + const AffineMatrixItem* pRef = static_cast< const AffineMatrixItem* >(&rRef); if(!pRef) { |