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 /dbaccess | |
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 'dbaccess')
-rw-r--r-- | dbaccess/source/ui/dlg/DbAdminImpl.cxx | 4 | ||||
-rw-r--r-- | dbaccess/source/ui/dlg/optionalboolitem.cxx | 7 | ||||
-rw-r--r-- | dbaccess/source/ui/misc/stringlistitem.cxx | 6 |
3 files changed, 8 insertions, 9 deletions
diff --git a/dbaccess/source/ui/dlg/DbAdminImpl.cxx b/dbaccess/source/ui/dlg/DbAdminImpl.cxx index 3ceeda28c9ca..30037f1bbdf4 100644 --- a/dbaccess/source/ui/dlg/DbAdminImpl.cxx +++ b/dbaccess/source/ui/dlg/DbAdminImpl.cxx @@ -1064,8 +1064,8 @@ DbuTypeCollectionItem::DbuTypeCollectionItem(const DbuTypeCollectionItem& _rSour bool DbuTypeCollectionItem::operator==(const SfxPoolItem& _rItem) const { - const DbuTypeCollectionItem* pCompare = dynamic_cast<const DbuTypeCollectionItem*>( &_rItem ); - return pCompare && (pCompare->getCollection() == getCollection()); + return SfxPoolItem::operator==(_rItem) && + static_cast<const DbuTypeCollectionItem&>( _rItem ).getCollection() == getCollection(); } SfxPoolItem* DbuTypeCollectionItem::Clone(SfxItemPool* /*_pPool*/) const diff --git a/dbaccess/source/ui/dlg/optionalboolitem.cxx b/dbaccess/source/ui/dlg/optionalboolitem.cxx index 7fa87c72107b..b0b4aff525b1 100644 --- a/dbaccess/source/ui/dlg/optionalboolitem.cxx +++ b/dbaccess/source/ui/dlg/optionalboolitem.cxx @@ -31,11 +31,8 @@ namespace dbaui bool OptionalBoolItem::operator==( const SfxPoolItem& _rItem ) const { - const OptionalBoolItem* pCompare = dynamic_cast<const OptionalBoolItem*>( &_rItem ); - if ( !pCompare ) - return false; - - return m_aValue == pCompare->m_aValue; + return SfxPoolItem::operator==(_rItem) && + static_cast<const OptionalBoolItem&>( _rItem ).m_aValue == m_aValue; } SfxPoolItem* OptionalBoolItem::Clone( SfxItemPool* /*_pPool*/ ) const diff --git a/dbaccess/source/ui/misc/stringlistitem.cxx b/dbaccess/source/ui/misc/stringlistitem.cxx index fb865df54bb4..1d821edd2076 100644 --- a/dbaccess/source/ui/misc/stringlistitem.cxx +++ b/dbaccess/source/ui/misc/stringlistitem.cxx @@ -39,8 +39,10 @@ OStringListItem::OStringListItem(const OStringListItem& _rSource) bool OStringListItem::operator==(const SfxPoolItem& _rItem) const { - const OStringListItem* pCompare = dynamic_cast<const OStringListItem*>( &_rItem ); - if ((!pCompare) || (pCompare->m_aList.getLength() != m_aList.getLength())) + if (!SfxPoolItem::operator==(_rItem)) + return false; + const OStringListItem* pCompare = static_cast<const OStringListItem*>( &_rItem ); + if (pCompare->m_aList.getLength() != m_aList.getLength()) return false; // compare all strings individually |