summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2019-10-05 13:32:10 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2019-10-06 11:58:50 +0200
commit6a789e617ed07bfddc516c8fc0cf94cd6dfe7250 (patch)
tree11d6097893a301ae65cf4668077134ac7510091a /sfx2
parent070b3a848d6824ea154ae2d68fc7571feed60a5f (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 'sfx2')
-rw-r--r--sfx2/source/control/sorgitm.cxx3
-rw-r--r--sfx2/source/dialog/dinfdlg.cxx2
-rw-r--r--sfx2/source/doc/objitem.cxx7
-rw-r--r--sfx2/source/view/frame.cxx11
-rw-r--r--sfx2/source/view/viewfrm.cxx3
5 files changed, 15 insertions, 11 deletions
diff --git a/sfx2/source/control/sorgitm.cxx b/sfx2/source/control/sorgitm.cxx
index 1a5709f00a51..76bc397efee0 100644
--- a/sfx2/source/control/sorgitm.cxx
+++ b/sfx2/source/control/sorgitm.cxx
@@ -42,8 +42,7 @@ SfxPoolItem* SfxScriptOrganizerItem::Clone( SfxItemPool * ) const
bool SfxScriptOrganizerItem::operator==( const SfxPoolItem& rItem) const
{
- return typeid(rItem) == typeid(*this) &&
- SfxStringItem::operator==(rItem) &&
+ return SfxStringItem::operator==(rItem) &&
aLanguage == static_cast<const SfxScriptOrganizerItem &>(rItem).aLanguage;
}
diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx
index 27239b8ba1f7..184509187e2f 100644
--- a/sfx2/source/dialog/dinfdlg.cxx
+++ b/sfx2/source/dialog/dinfdlg.cxx
@@ -302,7 +302,7 @@ SfxPoolItem* SfxDocumentInfoItem::Clone( SfxItemPool * ) const
bool SfxDocumentInfoItem::operator==( const SfxPoolItem& rItem) const
{
- if (!(typeid(rItem) == typeid(*this) && SfxStringItem::operator==(rItem)))
+ if (!SfxStringItem::operator==(rItem))
return false;
const SfxDocumentInfoItem& rInfoItem(static_cast<const SfxDocumentInfoItem&>(rItem));
diff --git a/sfx2/source/doc/objitem.cxx b/sfx2/source/doc/objitem.cxx
index 8e907b7602fc..5b5483df5ce8 100644
--- a/sfx2/source/doc/objitem.cxx
+++ b/sfx2/source/doc/objitem.cxx
@@ -32,7 +32,8 @@ SfxPoolItem* SfxObjectItem::CreateDefault() { return new SfxObjectItem; }
bool SfxObjectShellItem::operator==( const SfxPoolItem &rItem ) const
{
- return dynamic_cast<const SfxObjectShellItem&>(rItem).pObjSh == pObjSh;
+ return SfxPoolItem::operator==(rItem) &&
+ static_cast<const SfxObjectShellItem&>(rItem).pObjSh == pObjSh;
}
SfxPoolItem* SfxObjectShellItem::Clone( SfxItemPool *) const
@@ -92,8 +93,8 @@ SfxObjectItem::SfxObjectItem( sal_uInt16 nWhichId, SfxShell *pSh )
bool SfxObjectItem::operator==( const SfxPoolItem &rItem ) const
{
- const SfxObjectItem& rOther = dynamic_cast<const SfxObjectItem&>(rItem);
- return rOther._pSh == _pSh;
+ return SfxPoolItem::operator==(rItem) &&
+ static_cast<const SfxObjectItem&>(rItem)._pSh == _pSh;
}
SfxPoolItem* SfxObjectItem::Clone( SfxItemPool *) const
diff --git a/sfx2/source/view/frame.cxx b/sfx2/source/view/frame.cxx
index 5d341803996c..9cee64be4ccd 100644
--- a/sfx2/source/view/frame.cxx
+++ b/sfx2/source/view/frame.cxx
@@ -415,8 +415,9 @@ SfxFrameItem::SfxFrameItem( SfxFrame *p ):
bool SfxFrameItem::operator==( const SfxPoolItem &rItem ) const
{
- return static_cast<const SfxFrameItem&>(rItem).pFrame == pFrame &&
- static_cast<const SfxFrameItem&>(rItem).wFrame == wFrame;
+ return SfxPoolItem::operator==(rItem) &&
+ static_cast<const SfxFrameItem&>(rItem).pFrame == pFrame &&
+ static_cast<const SfxFrameItem&>(rItem).wFrame == wFrame;
}
SfxPoolItem* SfxFrameItem::Clone( SfxItemPool *) const
@@ -470,8 +471,9 @@ SfxUnoAnyItem::SfxUnoAnyItem( sal_uInt16 nWhichId, const css::uno::Any& rAny )
aValue = rAny;
}
-bool SfxUnoAnyItem::operator==( const SfxPoolItem& /*rItem*/ ) const
+bool SfxUnoAnyItem::operator==( const SfxPoolItem& rItem ) const
{
+ assert(SfxPoolItem::operator==(rItem)); (void)rItem;
return false;
}
@@ -506,7 +508,8 @@ SfxUnoFrameItem::SfxUnoFrameItem( sal_uInt16 nWhichId, const css::uno::Reference
bool SfxUnoFrameItem::operator==( const SfxPoolItem& i_rItem ) const
{
- return dynamic_cast< const SfxUnoFrameItem* >(&i_rItem) != nullptr && static_cast< const SfxUnoFrameItem& >( i_rItem ).m_xFrame == m_xFrame;
+ return SfxPoolItem::operator==(i_rItem) &&
+ static_cast< const SfxUnoFrameItem& >( i_rItem ).m_xFrame == m_xFrame;
}
SfxPoolItem* SfxUnoFrameItem::Clone( SfxItemPool* ) const
diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx
index 90e79b29ff08..3540e91851de 100644
--- a/sfx2/source/view/viewfrm.cxx
+++ b/sfx2/source/view/viewfrm.cxx
@@ -1745,7 +1745,8 @@ void SfxViewFrame::DoAdjustPosSizePixel //! divide on Inner.../Outer...
bool SfxViewFrameItem::operator==( const SfxPoolItem &rItem ) const
{
- return dynamic_cast<const SfxViewFrameItem&>(rItem).pFrame == pFrame;
+ return SfxPoolItem::operator==(rItem) &&
+ static_cast<const SfxViewFrameItem&>(rItem).pFrame == pFrame;
}
SfxPoolItem* SfxViewFrameItem::Clone( SfxItemPool *) const