tdf#94559: third step to remove rtti.hxx

replaced use of PTR_CAST, IS_TYPE, ISA in
oox, reportdesign, svl, svtools, svx, tools

Change-Id: I1f85ff92267a0668eba625fa61b4f07feb8f3d4e
Reviewed-on: https://gerrit.libreoffice.org/19002
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Oliver Specht <oliver.specht@cib.de>
diff --git a/include/tools/errinf.hxx b/include/tools/errinf.hxx
index 4a9f07a..04db67a 100644
--- a/include/tools/errinf.hxx
+++ b/include/tools/errinf.hxx
@@ -34,7 +34,7 @@ namespace vcl { class Window; }
class EDcr_Impl;
class ErrHdl_Impl;

class ErrorInfo
class TOOLS_DLLPUBLIC ErrorInfo
{
private:
    sal_uIntPtr             lUserId;
@@ -44,7 +44,7 @@ public:

                            ErrorInfo( sal_uIntPtr lArgUserId ) :
                                lUserId( lArgUserId ){}
    virtual                 ~ErrorInfo(){}
    virtual                 ~ErrorInfo();

    sal_uIntPtr             GetErrorCode() const { return lUserId; }

diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index c4021a3..a8e3f88 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -2095,7 +2095,7 @@ void DrawingML::WriteText( Reference< XInterface > rXIface, const OUString& pres

    uno::Reference<drawing::XShape> xShape(rXIface, uno::UNO_QUERY);
    SdrObject* pSdrObject = xShape.is() ? GetSdrObjectFromXShape(xShape) : 0;
    const SdrTextObj* pTxtObj = PTR_CAST(SdrTextObj, pSdrObject);
    const SdrTextObj* pTxtObj = dynamic_cast<SdrTextObj*>( pSdrObject );
    if (pTxtObj && mpTextExport)
    {
        const OutlinerParaObject* pParaObj = 0;
diff --git a/oox/source/export/shapes.cxx b/oox/source/export/shapes.cxx
index 571177d..2f73d27 100644
--- a/oox/source/export/shapes.cxx
+++ b/oox/source/export/shapes.cxx
@@ -1501,7 +1501,7 @@ ShapeExport& ShapeExport::WriteOLE2Shape( Reference< XShape > xShape )
                        SdrObject* pSdrOLE2( GetSdrObjectFromXShape( xShape ) );
                        // The spec doesn't allow <p:pic> here, but PowerPoint requires it.
                        bool bEcma = mpFB->getVersion() == oox::core::ECMA_DIALECT;
                        if ( pSdrOLE2 && pSdrOLE2->ISA( SdrOle2Obj ) && bEcma)
                        if ( pSdrOLE2 && dynamic_cast<const SdrOle2Obj*>( pSdrOLE2) != nullptr && bEcma)
                        {
                            const Graphic* pGraphic = static_cast<SdrOle2Obj*>(pSdrOLE2)->GetGraphic();
                            if ( pGraphic )
diff --git a/oox/source/export/vmlexport.cxx b/oox/source/export/vmlexport.cxx
index c71ffa7..6fad390 100644
--- a/oox/source/export/vmlexport.cxx
+++ b/oox/source/export/vmlexport.cxx
@@ -1141,7 +1141,7 @@ sal_Int32 VMLExport::StartShape()
    m_pSerializer->startElementNS( XML_v, nShapeElement, XFastAttributeListRef( m_pShapeAttrList ) );

    // now check if we have some editeng text (not associated textbox) and we have a text exporter registered
    const SdrTextObj* pTxtObj = PTR_CAST(SdrTextObj, m_pSdrObject);
    const SdrTextObj* pTxtObj = dynamic_cast<const SdrTextObj*>( m_pSdrObject );
    if (pTxtObj && m_pTextExport && msfilter::util::HasTextBoxContent(m_nShapeType) && !IsWaterMarkShape(m_pSdrObject->GetName()) && !lcl_isTextBox(m_pSdrObject))
    {
        const OutlinerParaObject* pParaObj = 0;
diff --git a/reportdesign/source/core/sdr/ReportDrawPage.cxx b/reportdesign/source/core/sdr/ReportDrawPage.cxx
index 8ce2ead..f34459c 100644
--- a/reportdesign/source/core/sdr/ReportDrawPage.cxx
+++ b/reportdesign/source/core/sdr/ReportDrawPage.cxx
@@ -74,7 +74,7 @@ uno::Reference< drawing::XShape >  OReportDrawPage::_CreateShape( SdrObject *pOb
        OUString sServiceName = pBaseObj->getServiceName();
        OSL_ENSURE(!sServiceName.isEmpty(),"No Service Name given!");

        if ( pObj->ISA(OUnoObject) )
        if ( typeid(*pObj) == typeid(OUnoObject) )
        {
            OUnoObject& rUnoObj = dynamic_cast<OUnoObject&>(*pObj);
            if (rUnoObj.GetObjIdentifier() == OBJ_DLG_FIXEDTEXT)
@@ -89,14 +89,14 @@ uno::Reference< drawing::XShape >  OReportDrawPage::_CreateShape( SdrObject *pOb
            xShape.set(static_cast<cppu::OWeakObject*>(static_cast<SvxShape_UnoImplHelper *>(pShape)),uno::UNO_QUERY);
            pShape->setShapeKind(pObj->GetObjIdentifier());
        }
        else if ( pObj->ISA(OCustomShape) )
        else if ( typeid(*pObj) == typeid(OCustomShape) )
        {
            SvxCustomShape* pShape = new SvxCustomShape( pObj );
            uno::Reference < drawing::XEnhancedCustomShapeDefaulter > xShape2 = pShape;
            xShape.set(xShape2,uno::UNO_QUERY);
            pShape->setShapeKind(pObj->GetObjIdentifier());
        }
        else if ( pObj->ISA(SdrOle2Obj) )
        else if ( typeid(*pObj) == typeid(SdrOle2Obj) )
        {
            SdrOle2Obj& rOle2Obj = dynamic_cast<SdrOle2Obj&>(*pObj);
            if (!rOle2Obj.GetObjRef().is())
diff --git a/reportdesign/source/core/sdr/RptModel.cxx b/reportdesign/source/core/sdr/RptModel.cxx
index 5c50ad7..9be8337 100644
--- a/reportdesign/source/core/sdr/RptModel.cxx
+++ b/reportdesign/source/core/sdr/RptModel.cxx
@@ -117,7 +117,7 @@ OReportPage* OReportModel::getPage(const uno::Reference< report::XSection >& _xS
    sal_uInt16 nCount = GetPageCount();
    for (sal_uInt16 i = 0; i < nCount && !pPage ; ++i)
    {
        OReportPage* pRptPage = PTR_CAST( OReportPage, GetPage(i) );
        OReportPage* pRptPage = dynamic_cast<OReportPage*>( GetPage(i)  );
        if ( pRptPage && pRptPage->getSection() == _xSection )
            pPage = pRptPage;
    }
diff --git a/reportdesign/source/core/sdr/RptPage.cxx b/reportdesign/source/core/sdr/RptPage.cxx
index c22864c..3875467 100644
--- a/reportdesign/source/core/sdr/RptPage.cxx
+++ b/reportdesign/source/core/sdr/RptPage.cxx
@@ -119,7 +119,7 @@ SdrObject* OReportPage::RemoveObject(size_t nObjNum)
    reportdesign::OSection* pSection = reportdesign::OSection::getImplementation(m_xSection);
    uno::Reference< drawing::XShape> xShape(pObj->getUnoShape(),uno::UNO_QUERY);
    pSection->notifyElementRemoved(xShape);
    if (pObj->ISA(OUnoObject))
    if (dynamic_cast< const OUnoObject *>( pObj ) !=  nullptr)
    {
        OUnoObject& rUnoObj = dynamic_cast<OUnoObject&>(*pObj);
        uno::Reference< container::XChild> xChild(rUnoObj.GetUnoControlModel(),uno::UNO_QUERY);
diff --git a/reportdesign/source/core/sdr/UndoEnv.cxx b/reportdesign/source/core/sdr/UndoEnv.cxx
index fc49b37e..3ae3b8e 100644
--- a/reportdesign/source/core/sdr/UndoEnv.cxx
+++ b/reportdesign/source/core/sdr/UndoEnv.cxx
@@ -162,14 +162,14 @@ void OXUndoEnvironment::Clear(const Accessor& /*_r*/)
    sal_uInt16 i;
    for (i = 0; i < nCount; i++)
    {
        OReportPage* pPage = PTR_CAST( OReportPage, m_pImpl->m_rModel.GetPage(i) );
        OReportPage* pPage = dynamic_cast<OReportPage*>( m_pImpl->m_rModel.GetPage(i)  );
        RemoveSection(pPage);
    }

    nCount = m_pImpl->m_rModel.GetMasterPageCount();
    for (i = 0; i < nCount; i++)
    {
        OReportPage* pPage = PTR_CAST( OReportPage, m_pImpl->m_rModel.GetMasterPage(i) );
        OReportPage* pPage = dynamic_cast<OReportPage*>( m_pImpl->m_rModel.GetMasterPage(i)  );
        RemoveSection(pPage);
    }

diff --git a/reportdesign/source/filter/xml/xmlCell.cxx b/reportdesign/source/filter/xml/xmlCell.cxx
index 185e7bb..84d7592 100644
--- a/reportdesign/source/filter/xml/xmlCell.cxx
+++ b/reportdesign/source/filter/xml/xmlCell.cxx
@@ -218,7 +218,7 @@ void OXMLCell::EndElement()
        m_xComponent = xFixedLine.get();
        m_pContainer->getSection()->add(m_xComponent.get());
        m_pContainer->addCell(m_xComponent);
        XMLPropStyleContext* pAutoStyle = const_cast<XMLPropStyleContext*>(PTR_CAST(XMLPropStyleContext,GetImport().GetAutoStyles()->FindStyleChildContext(XML_STYLE_FAMILY_TABLE_CELL,m_sStyleName)));
        XMLPropStyleContext* pAutoStyle = const_cast<XMLPropStyleContext*>(dynamic_cast< const XMLPropStyleContext* >(GetImport().GetAutoStyles()->FindStyleChildContext(XML_STYLE_FAMILY_TABLE_CELL,m_sStyleName)));
        if ( pAutoStyle )
        {
            uno::Reference<beans::XPropertySet> xBorderProp = OXMLHelper::createBorderPropertySet();
diff --git a/reportdesign/source/filter/xml/xmlColumn.cxx b/reportdesign/source/filter/xml/xmlColumn.cxx
index e9a558bb..c75a951 100644
--- a/reportdesign/source/filter/xml/xmlColumn.cxx
+++ b/reportdesign/source/filter/xml/xmlColumn.cxx
@@ -136,7 +136,7 @@ void OXMLRowColumn::fillStyle(const OUString& _sStyleName)
            };
            pInfo->add(pMap);
            Reference<XPropertySet> xProp = GenericPropertySet_CreateInstance(pInfo);
            XMLPropStyleContext* pAutoStyle = const_cast<XMLPropStyleContext*>(PTR_CAST(XMLPropStyleContext,pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_TABLE_COLUMN,_sStyleName)));
            XMLPropStyleContext* pAutoStyle = const_cast<XMLPropStyleContext*>(dynamic_cast< const XMLPropStyleContext*>(pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_TABLE_COLUMN,_sStyleName)));
            if ( pAutoStyle )
            {
                pAutoStyle->FillPropertySet(xProp);
@@ -146,7 +146,7 @@ void OXMLRowColumn::fillStyle(const OUString& _sStyleName)
            }
            else
            {
                pAutoStyle = const_cast<XMLPropStyleContext*>(PTR_CAST(XMLPropStyleContext,pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_TABLE_ROW,_sStyleName)));
                pAutoStyle = const_cast<XMLPropStyleContext*>(dynamic_cast< const XMLPropStyleContext* >(pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_TABLE_ROW,_sStyleName)));
                if ( pAutoStyle )
                {
                    pAutoStyle->FillPropertySet(xProp);
diff --git a/reportdesign/source/filter/xml/xmlHelper.cxx b/reportdesign/source/filter/xml/xmlHelper.cxx
index 47a5e99..673114f 100644
--- a/reportdesign/source/filter/xml/xmlHelper.cxx
+++ b/reportdesign/source/filter/xml/xmlHelper.cxx
@@ -252,7 +252,7 @@ void OXMLHelper::copyStyleElements(const bool _bOld,const OUString& _sStyleName,
{
    if ( !_xProp.is() || _sStyleName.isEmpty() || !_pAutoStyles )
        return;
    XMLPropStyleContext* pAutoStyle = const_cast<XMLPropStyleContext*>(PTR_CAST(XMLPropStyleContext,_pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_TABLE_CELL,_sStyleName)));
    XMLPropStyleContext* pAutoStyle = const_cast<XMLPropStyleContext*>(dynamic_cast< const XMLPropStyleContext *>(_pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_TABLE_CELL,_sStyleName)));
    if ( pAutoStyle )
    {
        ::com::sun::star::awt::FontDescriptor aFont;
diff --git a/reportdesign/source/filter/xml/xmlRow.cxx b/reportdesign/source/filter/xml/xmlRow.cxx
index 317d0d1..ab711eb 100644
--- a/reportdesign/source/filter/xml/xmlRow.cxx
+++ b/reportdesign/source/filter/xml/xmlRow.cxx
@@ -134,7 +134,7 @@ void OXMLRow::EndElement()
            };
            pInfo->add(pMap);
            Reference<XPropertySet> xProp = GenericPropertySet_CreateInstance(pInfo);
            XMLPropStyleContext* pAutoStyle = PTR_CAST(XMLPropStyleContext,pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_TABLE_COLUMN,m_sStyleName));
            XMLPropStyleContext* pAutoStyle = dynamic_cast< const XMLPropStyleContext *>(pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_TABLE_COLUMN,m_sStyleName));
            if ( pAutoStyle )
            {
                pAutoStyle->FillPropertySet(xProp);
@@ -144,7 +144,7 @@ void OXMLRow::EndElement()
            }
            else
            {
                pAutoStyle = PTR_CAST(XMLPropStyleContext,pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_TABLE_ROW,m_sStyleName));
                pAutoStyle = dynamic_cast< const XMLPropStyleContext *>(pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_TABLE_ROW,m_sStyleName));
                if ( pAutoStyle )
                {
                    pAutoStyle->FillPropertySet(xProp);
diff --git a/reportdesign/source/filter/xml/xmlStyleImport.cxx b/reportdesign/source/filter/xml/xmlStyleImport.cxx
index 563609c..1dad3e3 100644
--- a/reportdesign/source/filter/xml/xmlStyleImport.cxx
+++ b/reportdesign/source/filter/xml/xmlStyleImport.cxx
@@ -102,9 +102,9 @@ void OControlStyleContext::FillPropertySet(const Reference< XPropertySet > & rPr
                    XML_STYLE_FAMILY_DATA_STYLE, m_sDataStyleName)));
                if ( !pStyle )
                {
                    OReportStylesContext* pMyStyles = PTR_CAST(OReportStylesContext,GetOwnImport().GetAutoStyles());
                    OReportStylesContext* pMyStyles = dynamic_cast< OReportStylesContext *>(GetOwnImport().GetAutoStyles());
                    if ( pMyStyles )
                        pStyle = const_cast<SvXMLNumFormatContext*>(PTR_CAST(SvXMLNumFormatContext,pMyStyles->
                        pStyle = const_cast<SvXMLNumFormatContext*>(dynamic_cast< const SvXMLNumFormatContext *>(pMyStyles->
                            FindStyleChildContext(XML_STYLE_FAMILY_DATA_STYLE, m_sDataStyleName, true)));
                    else {
                        OSL_FAIL("not possible to get style");
diff --git a/reportdesign/source/filter/xml/xmlTable.cxx b/reportdesign/source/filter/xml/xmlTable.cxx
index 7b32c7a..2872bc3 100644
--- a/reportdesign/source/filter/xml/xmlTable.cxx
+++ b/reportdesign/source/filter/xml/xmlTable.cxx
@@ -171,7 +171,7 @@ void OXMLTable::EndElement()
                const SvXMLStylesContext* pAutoStyles = GetImport().GetAutoStyles();
                if ( pAutoStyles )
                {
                    XMLPropStyleContext* pAutoStyle = const_cast<XMLPropStyleContext*>(PTR_CAST(XMLPropStyleContext,pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_TABLE_TABLE,m_sStyleName)));
                    XMLPropStyleContext* pAutoStyle = const_cast<XMLPropStyleContext*>(dynamic_cast< const XMLPropStyleContext *>(pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_TABLE_TABLE,m_sStyleName)));
                    if ( pAutoStyle )
                    {
                        pAutoStyle->FillPropertySet(m_xSection.get());
diff --git a/reportdesign/source/filter/xml/xmlfilter.cxx b/reportdesign/source/filter/xml/xmlfilter.cxx
index f23d38b..addd716 100644
--- a/reportdesign/source/filter/xml/xmlfilter.cxx
+++ b/reportdesign/source/filter/xml/xmlfilter.cxx
@@ -641,7 +641,7 @@ SvXMLImportContext* ORptFilter::CreateContext( sal_uInt16 nPrefix,
                const SvXMLStylesContext* pAutoStyles = GetAutoStyles();
                if ( pAutoStyles )
                {
                    XMLPropStyleContext* pAutoStyle = const_cast<XMLPropStyleContext*>(PTR_CAST(XMLPropStyleContext,pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_PAGE_MASTER,OUString("pm1"))));
                    XMLPropStyleContext* pAutoStyle = const_cast<XMLPropStyleContext*>(dynamic_cast< const XMLPropStyleContext *>(pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_PAGE_MASTER,OUString("pm1"))));
                    if ( pAutoStyle )
                    {
                        pAutoStyle->FillPropertySet(getReportDefinition().get());
diff --git a/reportdesign/source/ui/misc/UITools.cxx b/reportdesign/source/ui/misc/UITools.cxx
index b6fc5c3..e2f7854 100644
--- a/reportdesign/source/ui/misc/UITools.cxx
+++ b/reportdesign/source/ui/misc/UITools.cxx
@@ -378,7 +378,7 @@ namespace
    {
        vcl::Font aNewFont( _rOriginalFont );
        const SfxPoolItem* pItem( NULL );
        if ( SfxItemState::SET == _rItemSet.GetItemState( _nFont,true,&pItem) && pItem->ISA(SvxFontItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( _nFont,true,&pItem) && dynamic_cast< const SvxFontItem *>( pItem ) !=  nullptr)
        {
            const SvxFontItem* pFontItem = static_cast<const SvxFontItem*>(pItem);
            aNewFont.SetName( pFontItem->GetFamilyName());
@@ -387,48 +387,48 @@ namespace
            aNewFont.SetPitch(pFontItem->GetPitch());
            aNewFont.SetCharSet(pFontItem->GetCharSet());
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( _nFontHeight,true,&pItem) && pItem->ISA(SvxFontHeightItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( _nFontHeight,true,&pItem) && dynamic_cast< const SvxFontHeightItem *>( pItem ) !=  nullptr)
        {
            const SvxFontHeightItem* pFontItem = static_cast<const SvxFontHeightItem*>(pItem);
            aNewFont.SetHeight(OutputDevice::LogicToLogic(Size(0, pFontItem->GetHeight()), MAP_TWIP, MAP_POINT).Height());
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( _nPosture,true,&pItem) && pItem->ISA(SvxPostureItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( _nPosture,true,&pItem) && dynamic_cast< const SvxPostureItem *>( pItem ) !=  nullptr)
        {
            const SvxPostureItem* pFontItem = static_cast<const SvxPostureItem*>(pItem);
            aNewFont.SetItalic(pFontItem->GetPosture());
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( _nWeight,true,&pItem) && pItem->ISA(SvxWeightItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( _nWeight,true,&pItem) && dynamic_cast< const SvxWeightItem *>( pItem ) !=  nullptr)
        {
            const SvxWeightItem* pFontItem = static_cast<const SvxWeightItem*>(pItem);
            aNewFont.SetWeight(pFontItem->GetWeight());
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_WORDLINEMODE,true,&pItem) && pItem->ISA(SvxWordLineModeItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_WORDLINEMODE,true,&pItem) && dynamic_cast< const SvxWordLineModeItem *>( pItem ) !=  nullptr)
        {
            const SvxWordLineModeItem* pFontItem = static_cast<const SvxWordLineModeItem*>(pItem);
            aNewFont.SetWordLineMode(pFontItem->GetValue());
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CROSSEDOUT,true,&pItem) && pItem->ISA(SvxCrossedOutItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CROSSEDOUT,true,&pItem) && dynamic_cast< const SvxCrossedOutItem *>( pItem ) !=  nullptr)
        {
            const SvxCrossedOutItem* pFontItem = static_cast<const SvxCrossedOutItem*>(pItem);
            aNewFont.SetStrikeout(pFontItem->GetStrikeout());
        }

        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CHARROTATE,true,&pItem) && pItem->ISA(SvxCharRotateItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CHARROTATE,true,&pItem) && dynamic_cast< const SvxCharRotateItem *>( pItem ) !=  nullptr)
        {
            const SvxCharRotateItem* pRotateItem = static_cast<const SvxCharRotateItem*>(pItem);
            aNewFont.SetOrientation(pRotateItem->GetValue());
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CHARSCALE_W,true,&pItem) && pItem->ISA(SvxCharScaleWidthItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CHARSCALE_W,true,&pItem) && dynamic_cast< const SvxCharScaleWidthItem *>( pItem ) !=  nullptr)
        {
            const SvxCharScaleWidthItem* pCharItem = static_cast<const SvxCharScaleWidthItem*>(pItem);
            aNewFont.SetWidthType(VCLUnoHelper::ConvertFontWidth(pCharItem->GetValue()));
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_UNDERLINE,true,&pItem) && pItem->ISA(SvxUnderlineItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_UNDERLINE,true,&pItem) && dynamic_cast< const SvxUnderlineItem *>( pItem ) !=  nullptr)
        {
            const SvxUnderlineItem* pFontItem = static_cast<const SvxUnderlineItem*>(pItem);
            aNewFont.SetUnderline(pFontItem->GetLineStyle());
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_COLOR,true,&pItem) && pItem->ISA(SvxColorItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_COLOR,true,&pItem) && dynamic_cast< const SvxColorItem *>( pItem ) !=  nullptr)
        {
            const SvxColorItem* pFontItem = static_cast<const SvxColorItem*>(pItem);
            aNewFont.SetColor(pFontItem->GetValue().GetColor());
@@ -452,83 +452,83 @@ namespace
        lcl_pushBack( _out_rProperties, OUString("FontComplex"), uno::makeAny( aAwtFont ) );

        // properties which cannot be represented in an AWT font need to be preserved directly
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_SHADOWED,true,&pItem) && pItem->ISA(SvxShadowedItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_SHADOWED,true,&pItem) && dynamic_cast< const SvxShadowedItem *>( pItem ) !=  nullptr)
        {
            const SvxShadowedItem* pFontItem = static_cast<const SvxShadowedItem*>(pItem);
            lcl_pushBack( _out_rProperties, PROPERTY_CHARSHADOWED, uno::makeAny( pFontItem->GetValue() ) );
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CONTOUR,true,&pItem) && pItem->ISA(SvxContourItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CONTOUR,true,&pItem) && dynamic_cast< const SvxContourItem *>( pItem ) !=  nullptr)
        {
            const SvxContourItem* pFontItem = static_cast<const SvxContourItem*>(pItem);
            lcl_pushBack( _out_rProperties, PROPERTY_CHARCONTOURED, uno::makeAny( pFontItem->GetValue() ) );
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_UNDERLINE,true,&pItem) && pItem->ISA(SvxUnderlineItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_UNDERLINE,true,&pItem) && dynamic_cast< const SvxUnderlineItem *>( pItem ) !=  nullptr)
        {
            const SvxUnderlineItem* pFontItem = static_cast<const SvxUnderlineItem*>(pItem);
            lcl_pushBack( _out_rProperties, PROPERTY_CHARUNDERLINECOLOR, uno::makeAny( pFontItem->GetColor().GetColor() ) );
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_HORJUSTIFY,true,&pItem) && pItem->ISA(SvxHorJustifyItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_HORJUSTIFY,true,&pItem) && dynamic_cast< const SvxHorJustifyItem *>( pItem ) !=  nullptr)
        {
            const SvxHorJustifyItem* pJustifyItem = static_cast<const SvxHorJustifyItem*>(pItem);
            uno::Any aValue;
            pJustifyItem->QueryValue(aValue,MID_HORJUST_ADJUST);
            lcl_pushBack( _out_rProperties, PROPERTY_PARAADJUST, aValue );
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_VERJUSTIFY,true,&pItem) && pItem->ISA(SvxVerJustifyItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_VERJUSTIFY,true,&pItem) && dynamic_cast< const SvxVerJustifyItem *>( pItem ) !=  nullptr)
        {
            const SvxVerJustifyItem* pJustifyItem = static_cast<const SvxVerJustifyItem*>(pItem);
            uno::Any aValue;
            pJustifyItem->QueryValue(aValue,MID_HORJUST_ADJUST);
            lcl_pushBack( _out_rProperties, PROPERTY_VERTICALALIGN, aValue );
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CHARRELIEF,true,&pItem) && pItem->ISA(SvxCharReliefItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CHARRELIEF,true,&pItem) && dynamic_cast< const SvxCharReliefItem *>( pItem ) !=  nullptr)
        {
            const SvxCharReliefItem* pFontItem = static_cast<const SvxCharReliefItem*>(pItem);
            lcl_pushBack( _out_rProperties, PROPERTY_CHARRELIEF, uno::makeAny( static_cast< sal_Int16 >( pFontItem->GetEnumValue() ) ) );
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CHARHIDDEN,true,&pItem) && pItem->ISA(SvxCharHiddenItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CHARHIDDEN,true,&pItem) && dynamic_cast< const SvxCharHiddenItem *>( pItem ) !=  nullptr)
        {
            const SvxCharHiddenItem* pFontItem = static_cast<const SvxCharHiddenItem*>(pItem);
            lcl_pushBack( _out_rProperties, PROPERTY_CHARHIDDEN, uno::makeAny( pFontItem->GetValue() ) );
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_AUTOKERN,true,&pItem) && pItem->ISA(SvxAutoKernItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_AUTOKERN,true,&pItem) && dynamic_cast< const SvxAutoKernItem *>( pItem ) !=  nullptr)
        {
            const SvxAutoKernItem* pFontItem = static_cast<const SvxAutoKernItem*>(pItem);
            lcl_pushBack( _out_rProperties, PROPERTY_CHARAUTOKERNING, uno::makeAny( pFontItem->GetValue() ) );
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_BRUSH,true,&pItem) && pItem->ISA(SvxBrushItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_BRUSH,true,&pItem) && dynamic_cast< const SvxBrushItem *>( pItem ) !=  nullptr)
        {
            const SvxBrushItem* pFontItem = static_cast<const SvxBrushItem*>(pItem);
            lcl_pushBack( _out_rProperties, PROPERTY_CONTROLBACKGROUND, uno::makeAny( pFontItem->GetColor().GetColor() ) );
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_BLINK,true,&pItem) && pItem->ISA(SvxBlinkItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_BLINK,true,&pItem) && dynamic_cast< const SvxBlinkItem *>( pItem ) !=  nullptr)
        {
            const SvxBlinkItem* pFontItem = static_cast<const SvxBlinkItem*>(pItem);
            lcl_pushBack( _out_rProperties, PROPERTY_CHARFLASH, uno::makeAny( pFontItem->GetValue() ) );
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_EMPHASISMARK,true,&pItem) && pItem->ISA(SvxEmphasisMarkItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_EMPHASISMARK,true,&pItem) && dynamic_cast< const SvxEmphasisMarkItem *>( pItem ) !=  nullptr)
        {
            const SvxEmphasisMarkItem* pFontItem = static_cast<const SvxEmphasisMarkItem*>(pItem);
            lcl_pushBack( _out_rProperties, PROPERTY_CHAREMPHASIS, uno::makeAny( static_cast< sal_Int16 >( pFontItem->GetEmphasisMark() ) ) );
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_TWOLINES,true,&pItem) && pItem->ISA(SvxTwoLinesItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_TWOLINES,true,&pItem) && dynamic_cast< const SvxTwoLinesItem *>( pItem ) !=  nullptr)
        {
            const SvxTwoLinesItem* pFontItem = static_cast<const SvxTwoLinesItem*>(pItem);
            lcl_pushBack( _out_rProperties, PROPERTY_CHARCOMBINEISON, uno::makeAny( pFontItem->GetValue() ) );
            lcl_pushBack( _out_rProperties, PROPERTY_CHARCOMBINEPREFIX, uno::makeAny( OUString( pFontItem->GetStartBracket() ) ) );
            lcl_pushBack( _out_rProperties, PROPERTY_CHARCOMBINESUFFIX, uno::makeAny( OUString( pFontItem->GetEndBracket() ) ) );
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_COLOR,true,&pItem) && pItem->ISA(SvxColorItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_COLOR,true,&pItem) && dynamic_cast< const SvxColorItem *>( pItem ) !=  nullptr)
        {
            const SvxColorItem* pFontItem = static_cast<const SvxColorItem*>(pItem);
            lcl_pushBack( _out_rProperties, PROPERTY_CHARCOLOR, uno::makeAny( pFontItem->GetValue().GetColor() ) );
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_KERNING,true,&pItem) && pItem->ISA(SvxKerningItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_KERNING,true,&pItem) && dynamic_cast< const SvxKerningItem *>( pItem ) !=  nullptr)
        {
            const SvxKerningItem* pFontItem = static_cast<const SvxKerningItem*>(pItem);
            lcl_pushBack( _out_rProperties, PROPERTY_CHARKERNING, uno::makeAny( pFontItem->GetValue() ) );
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CASEMAP,true,&pItem) && pItem->ISA(SvxCaseMapItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_CASEMAP,true,&pItem) && dynamic_cast< const SvxCaseMapItem *>( pItem ) !=  nullptr)
        {
            const SvxCaseMapItem* pFontItem = static_cast<const SvxCaseMapItem*>(pItem);
            lcl_pushBack( _out_rProperties, PROPERTY_CHARCASEMAP, uno::makeAny( pFontItem->GetValue() ) );
@@ -543,14 +543,14 @@ namespace
        };
        for(size_t k = 0; k < sizeof(pItems)/sizeof(pItems[0]);++k)
        {
            if ( SfxItemState::SET == _rItemSet.GetItemState( pItems[k].nWhich,true,&pItem) && pItem->ISA(SvxLanguageItem))
            if ( SfxItemState::SET == _rItemSet.GetItemState( pItems[k].nWhich,true,&pItem) && dynamic_cast< const SvxLanguageItem *>( pItem ) !=  nullptr)
            {
                const SvxLanguageItem* pFontItem = static_cast<const SvxLanguageItem*>(pItem);
                lang::Locale aCharLocale( LanguageTag( pFontItem->GetLanguage()).getLocale());
                lcl_pushBack( _out_rProperties, pItems[k].sPropertyName, uno::makeAny( aCharLocale ) );
            }
        }
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_ESCAPEMENT,true,&pItem) && pItem->ISA(SvxEscapementItem))
        if ( SfxItemState::SET == _rItemSet.GetItemState( ITEMID_ESCAPEMENT,true,&pItem) && dynamic_cast< const SvxEscapementItem *>( pItem ) !=  nullptr)
        {
            const SvxEscapementItem* pFontItem = static_cast<const SvxEscapementItem*>(pItem);
            lcl_pushBack( _out_rProperties, PROPERTY_CHARESCAPEMENT, uno::makeAny( pFontItem->GetEsc() ) );
diff --git a/reportdesign/source/ui/report/SectionView.cxx b/reportdesign/source/ui/report/SectionView.cxx
index 326d1d2..1694085 100644
--- a/reportdesign/source/ui/report/SectionView.cxx
+++ b/reportdesign/source/ui/report/SectionView.cxx
@@ -176,7 +176,7 @@ void OSectionView::SetMarkedToLayer( SdrLayerID _nLayerNo )
        for (size_t i = 0; i<nCount; ++i)
        {
            SdrObject* pObj = rMark.GetMark(i)->GetMarkedSdrObj();
            if ( pObj->ISA(OCustomShape) )
            if ( dynamic_cast< const OCustomShape *>( pObj ) !=  nullptr )
            {
                AddUndo( new SdrUndoObjectLayerChange( *pObj, pObj->GetLayer(), _nLayerNo) );
                pObj->SetLayer( _nLayerNo );
@@ -209,7 +209,7 @@ bool OSectionView::OnlyShapesMarked() const
    for (size_t i = 0; i<nCount; ++i)
    {
        SdrObject* pObj = rMark.GetMark(i)->GetMarkedSdrObj();
        if ( !pObj->ISA(OCustomShape) )
        if ( dynamic_cast< const OCustomShape *>( pObj ) ==  nullptr )
        {
            return false;
        }
diff --git a/svl/source/items/cenumitm.cxx b/svl/source/items/cenumitm.cxx
index d7e88a9..595c80e5 100644
--- a/svl/source/items/cenumitm.cxx
+++ b/svl/source/items/cenumitm.cxx
@@ -159,7 +159,7 @@ SfxBoolItem::SfxBoolItem(sal_uInt16 const nWhich, SvStream & rStream)
// virtual
bool SfxBoolItem::operator ==(const SfxPoolItem & rItem) const
{
    DBG_ASSERT(rItem.ISA(SfxBoolItem),
    DBG_ASSERT(dynamic_cast<const SfxBoolItem*>( &rItem ) !=  nullptr,
               "SfxBoolItem::operator ==(): Bad type");
    return m_bValue == static_cast< SfxBoolItem const * >(&rItem)->m_bValue;
}
diff --git a/svl/source/items/cintitem.cxx b/svl/source/items/cintitem.cxx
index 24fb8c7..f7a1a7a 100644
--- a/svl/source/items/cintitem.cxx
+++ b/svl/source/items/cintitem.cxx
@@ -27,7 +27,7 @@ TYPEINIT1_AUTOFACTORY(CntByteItem, SfxPoolItem);
// virtual
bool CntByteItem::operator ==(const SfxPoolItem & rItem) const
{
    DBG_ASSERT(rItem.ISA(CntByteItem),
    DBG_ASSERT(dynamic_cast<const CntByteItem*>( &rItem ) !=  nullptr,
               "CntByteItem::operator ==(): Bad type");
    return m_nValue == (static_cast< const CntByteItem * >(&rItem))->m_nValue;
}
@@ -98,7 +98,7 @@ CntUInt16Item::CntUInt16Item(sal_uInt16 which, SvStream & rStream) :
// virtual
bool CntUInt16Item::operator ==(const SfxPoolItem & rItem) const
{
    DBG_ASSERT(rItem.ISA(CntUInt16Item),
    DBG_ASSERT(dynamic_cast< const CntUInt16Item* >(&rItem) !=  nullptr,
               "CntUInt16Item::operator ==(): Bad type");
    return m_nValue == (static_cast< const CntUInt16Item * >(&rItem))->
                        m_nValue;
@@ -169,7 +169,7 @@ CntInt32Item::CntInt32Item(sal_uInt16 which, SvStream & rStream)
// virtual
bool CntInt32Item::operator ==(const SfxPoolItem & rItem) const
{
    DBG_ASSERT(rItem.ISA(CntInt32Item),
    DBG_ASSERT(dynamic_cast< const CntInt32Item*>(&rItem) !=  nullptr,
               "CntInt32Item::operator ==(): Bad type");
    return m_nValue == (static_cast< const CntInt32Item * >(&rItem))->
                        m_nValue;
@@ -239,7 +239,7 @@ CntUInt32Item::CntUInt32Item(sal_uInt16 which, SvStream & rStream) :
// virtual
bool CntUInt32Item::operator ==(const SfxPoolItem & rItem) const
{
    DBG_ASSERT(rItem.ISA(CntUInt32Item),
    DBG_ASSERT(dynamic_cast< const CntUInt32Item* >(&rItem) !=  nullptr,
               "CntUInt32Item::operator ==(): Bad type");
    return m_nValue == (static_cast< const CntUInt32Item * >(&rItem))->
                        m_nValue;
diff --git a/svl/source/items/custritm.cxx b/svl/source/items/custritm.cxx
index 1182ae5..3b97df9 100644
--- a/svl/source/items/custritm.cxx
+++ b/svl/source/items/custritm.cxx
@@ -29,7 +29,7 @@ TYPEINIT1_AUTOFACTORY(CntUnencodedStringItem, SfxPoolItem)
// virtual
bool CntUnencodedStringItem::operator ==(const SfxPoolItem & rItem) const
{
    DBG_ASSERT(rItem.ISA(CntUnencodedStringItem),
    DBG_ASSERT(dynamic_cast<const CntUnencodedStringItem*>( &rItem ) !=  nullptr,
               "CntUnencodedStringItem::operator ==(): Bad type");
    return m_aValue
            == (static_cast< const CntUnencodedStringItem * >(&rItem))->
diff --git a/svl/source/items/ilstitem.cxx b/svl/source/items/ilstitem.cxx
index 140e3b8..36680c4 100644
--- a/svl/source/items/ilstitem.cxx
+++ b/svl/source/items/ilstitem.cxx
@@ -58,7 +58,7 @@ SfxIntegerListItem::~SfxIntegerListItem()

bool SfxIntegerListItem::operator==( const SfxPoolItem& rPoolItem ) const
{
    if ( !rPoolItem.ISA( SfxIntegerListItem ) )
    if ( dynamic_cast< const SfxIntegerListItem* >( &rPoolItem) ==  nullptr )
        return false;

    const SfxIntegerListItem rItem = static_cast<const SfxIntegerListItem&>(rPoolItem);
diff --git a/svl/source/items/itempool.cxx b/svl/source/items/itempool.cxx
index 909c650..ae8c7d3 100644
--- a/svl/source/items/itempool.cxx
+++ b/svl/source/items/itempool.cxx
@@ -530,7 +530,7 @@ void SfxItemPool::Delete()
            // *ppStaticDefaultItem could've already been deleted in a class derived
            // from SfxItemPool
            // This causes chaos in Itempool!
            if ( *ppStaticDefaultItem && (*ppStaticDefaultItem)->ISA(SfxSetItem) )
            if ( *ppStaticDefaultItem && dynamic_cast< const SfxSetItem* >(*ppStaticDefaultItem) !=  nullptr )
            {
                if ( *itrItemArr )
                {
@@ -743,7 +743,7 @@ const SfxPoolItem& SfxItemPool::Put( const SfxPoolItem& rItem, sal_uInt16 nWhich
    pNewItem->SetWhich(nWhich);
#ifdef DBG_UTIL
    SFX_ASSERT( rItem.Type() == pNewItem->Type(), nWhich, "unequal types in Put(): no Clone()?" )
    if ( !rItem.ISA(SfxSetItem) )
    if ( !dynamic_cast<const SfxSetItem*>( &rItem ) !=  nullptr )
    {
        SFX_ASSERT( !IsItemFlag(nWhich, SfxItemPoolFlags::POOLABLE) ||
                    rItem == *pNewItem,
diff --git a/svl/source/items/itemset.cxx b/svl/source/items/itemset.cxx
index e6961c4..c9e2512 100644
--- a/svl/source/items/itemset.cxx
+++ b/svl/source/items/itemset.cxx
@@ -531,7 +531,7 @@ const SfxPoolItem* SfxItemSet::Put( const SfxPoolItem& rItem, sal_uInt16 nWhich 
                }
            }
            SFX_ASSERT( !m_pPool->IsItemFlag(nWhich, SfxItemPoolFlags::POOLABLE) ||
                        rItem.ISA(SfxSetItem) || **ppFnd == rItem,
                        dynamic_cast<const SfxSetItem*>( &rItem ) !=  nullptr || **ppFnd == rItem,
                        nWhich, "putted Item unequal" );
            return *ppFnd;
        }
diff --git a/svl/source/items/poolio.cxx b/svl/source/items/poolio.cxx
index 619f9ca..85e7b13 100644
--- a/svl/source/items/poolio.cxx
+++ b/svl/source/items/poolio.cxx
@@ -197,7 +197,7 @@ SvStream &SfxItemPool::Store(SvStream &rStream) const
                // ! Poolable is not even saved in the Pool
                // And itemsets/plain-items depending on the round
                if ( *itrArr && IsItemFlag(**ppDefItem, SfxItemPoolFlags::POOLABLE) &&
                     pImp->bInSetItem == (bool) (*ppDefItem)->ISA(SfxSetItem) )
                     pImp->bInSetItem == (dynamic_cast< const SfxSetItem* >(*ppDefItem) !=  nullptr) )
                {
                    // Own signature, global WhichId and ItemVersion
                    sal_uInt16 nSlotId = GetSlotId( (*ppDefItem)->Which(), false );
@@ -232,7 +232,7 @@ SvStream &SfxItemPool::Store(SvStream &rStream) const
                            else
                                break;
#ifdef DBG_UTIL_MI
                            if ( !pItem->ISA(SfxSetItem) )
                            if ( dynamic_cast<const SfxSetItem*>( pItem ) ==  nullptr )
                            {
                                sal_uLong nMark = rStream.Tell();
                                rStream.Seek( nItemStartPos + sizeof(sal_uInt16) );
@@ -646,7 +646,7 @@ SvStream &SfxItemPool::Load(SvStream &rStream)

            // SfxSetItems could contain Items from secondary Pools
            SfxPoolItem *pDefItem = *(pImp->ppStaticDefaults + nIndex);
            pImp->bInSetItem = pDefItem->ISA(SfxSetItem);
            pImp->bInSetItem = dynamic_cast<const SfxSetItem*>( pDefItem ) !=  nullptr;
            if ( !bSecondaryLoaded && pImp->mpSecondary && pImp->bInSetItem )
            {
                // Seek to end of own Pool
@@ -1162,7 +1162,7 @@ bool SfxItemPool::StoreItem( SvStream &rStream, const SfxPoolItem &rItem,
        if ( 0 == ( pPool = pPool->pImp->mpSecondary ) )
            return false;

    DBG_ASSERT( !pImp->bInSetItem || !rItem.ISA(SfxSetItem),
    DBG_ASSERT( !pImp->bInSetItem || dynamic_cast<const SfxSetItem*>( &rItem ) ==  nullptr,
                "SetItem contains ItemSet with SetItem" );

    sal_uInt16 nSlotId = pPool->GetSlotId( rItem.Which() );
@@ -1226,7 +1226,7 @@ const SfxPoolItem* SfxItemPool::LoadItem( SvStream &rStream, bool bDirect,
        nWhich = pRefPool->GetNewWhich( nWhich ); // Map WhichId to new version

    DBG_ASSERT( !nWhich || !pImp->bInSetItem ||
                !pRefPool->pImp->ppStaticDefaults[pRefPool->GetIndex_Impl(nWhich)]->ISA(SfxSetItem),
                dynamic_cast<const SfxSetItem*>( pRefPool->pImp->ppStaticDefaults[pRefPool->GetIndex_Impl(nWhich)] ) == nullptr,
                "loading SetItem in ItemSet of SetItem" );

    // Are we loading via surrogate?
diff --git a/svtools/source/misc/ehdl.cxx b/svtools/source/misc/ehdl.cxx
index 11a8672..9e058f5 100644
--- a/svtools/source/misc/ehdl.cxx
+++ b/svtools/source/misc/ehdl.cxx
@@ -176,7 +176,7 @@ bool SfxErrorHandler::CreateString(
    sal_uLong nErrCode = pErr->GetErrorCode() & ERRCODE_ERROR_MASK;
    if( nErrCode>=lEnd || nErrCode<=lStart )
        return false;
    const MessageInfo *pMsgInfo = PTR_CAST(MessageInfo,pErr);
    const MessageInfo *pMsgInfo = dynamic_cast<const MessageInfo*>( pErr );
    if(pMsgInfo)
    {
        if(GetMessageString(nErrCode, rStr, nFlags))
@@ -187,15 +187,14 @@ bool SfxErrorHandler::CreateString(
    }
    else if(GetErrorString(nErrCode, rStr, nFlags))
    {
        const StringErrorInfo *pStringInfo = PTR_CAST(StringErrorInfo,pErr);
        const StringErrorInfo *pStringInfo = dynamic_cast<const StringErrorInfo *>(pErr);
        if(pStringInfo)
        {
            rStr = rStr.replaceAll("$(ARG1)", pStringInfo->GetErrorString());
        }
        else
        {
            const TwoStringErrorInfo * pTwoStringInfo = PTR_CAST(TwoStringErrorInfo,
                                                           pErr);
            const TwoStringErrorInfo * pTwoStringInfo = dynamic_cast<const TwoStringErrorInfo* >(pErr);
            if (pTwoStringInfo)
            {
                rStr = rStr.replaceAll("$(ARG1)", pTwoStringInfo->GetArg1());
diff --git a/svx/source/accessibility/AccessibleControlShape.cxx b/svx/source/accessibility/AccessibleControlShape.cxx
index 4432e0e..2cebeaf 100644
--- a/svx/source/accessibility/AccessibleControlShape.cxx
+++ b/svx/source/accessibility/AccessibleControlShape.cxx
@@ -189,7 +189,7 @@ void AccessibleControlShape::Init()

        // get the control which belongs to our model (relative to our view)
        const vcl::Window* pViewWindow = maShapeTreeInfo.GetWindow();
        SdrUnoObj* pUnoObjectImpl = PTR_CAST( SdrUnoObj, getSdrObject() );
        SdrUnoObj* pUnoObjectImpl = dynamic_cast<SdrUnoObj*>( getSdrObject()  );
        SdrView* pView = maShapeTreeInfo.GetSdrView();
        OSL_ENSURE( pView && pViewWindow && pUnoObjectImpl, "AccessibleControlShape::Init: no view, or no view window, no SdrUnoObj!" );

diff --git a/svx/source/accessibility/AccessibleShape.cxx b/svx/source/accessibility/AccessibleShape.cxx
index eb4cdfb..8c5a9ff 100644
--- a/svx/source/accessibility/AccessibleShape.cxx
+++ b/svx/source/accessibility/AccessibleShape.cxx
@@ -157,7 +157,7 @@ void AccessibleShape::Init()
            SdrObject* pSdrObject = GetSdrObjectFromXShape(mxShape);
            if( pSdrObject )
            {
                SdrTextObj* pTextObj = PTR_CAST( SdrTextObj, pSdrObject );
                SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>( pSdrObject  );
                OutlinerParaObject* pOutlinerParaObject = NULL;

                if( pTextObj )
diff --git a/svx/source/accessibility/ShapeTypeHandler.cxx b/svx/source/accessibility/ShapeTypeHandler.cxx
index 30ce3fe..6285a99 100644
--- a/svx/source/accessibility/ShapeTypeHandler.cxx
+++ b/svx/source/accessibility/ShapeTypeHandler.cxx
@@ -305,7 +305,7 @@ OUString
                    SdrObject *pSdrObj = pShape->GetSdrObject();
                    if (pSdrObj)
                    {
                        if(pSdrObj->ISA(SdrObjCustomShape))
                        if(dynamic_cast<const SdrObjCustomShape*>( pSdrObj) !=  nullptr)
                        {
                            SdrObjCustomShape* pCustomShape = static_cast<SdrObjCustomShape*>(pSdrObj);
                            if(pCustomShape)
diff --git a/svx/source/customshapes/EnhancedCustomShape2d.cxx b/svx/source/customshapes/EnhancedCustomShape2d.cxx
index 97e75d7a..80acbd4 100644
--- a/svx/source/customshapes/EnhancedCustomShape2d.cxx
+++ b/svx/source/customshapes/EnhancedCustomShape2d.cxx
@@ -743,7 +743,7 @@ EnhancedCustomShape2d::EnhancedCustomShape2d( SdrObject* pAObj ) :
    if ( pAny )
        *pAny >>= bFlipV;

    if ( pCustomShapeObj->ISA( SdrObjCustomShape ) )    // should always be a SdrObjCustomShape, but you don't know
    if ( dynamic_cast<const SdrObjCustomShape*>( pCustomShapeObj) !=  nullptr )    // should always be a SdrObjCustomShape, but you don't know
        nRotateAngle = (sal_Int32)(static_cast<SdrObjCustomShape*>(pCustomShapeObj)->GetObjectRotation() * 100.0);
    else
         nRotateAngle = pCustomShapeObj->GetRotateAngle();
@@ -2343,7 +2343,7 @@ void EnhancedCustomShape2d::ApplyGluePoints( SdrObject* pObj )

bool EnhancedCustomShape2d::IsPostRotate() const
{
    return pCustomShapeObj->ISA( SdrObjCustomShape ) && static_cast<SdrObjCustomShape*>(pCustomShapeObj)->IsPostRotate();
    return dynamic_cast<const SdrObjCustomShape*>( pCustomShapeObj) != nullptr && static_cast<SdrObjCustomShape*>(pCustomShapeObj)->IsPostRotate();
}

SdrObject* EnhancedCustomShape2d::CreateLineGeometry()
diff --git a/svx/source/customshapes/EnhancedCustomShape3d.cxx b/svx/source/customshapes/EnhancedCustomShape3d.cxx
index df2a0be..48bd450 100644
--- a/svx/source/customshapes/EnhancedCustomShape3d.cxx
+++ b/svx/source/customshapes/EnhancedCustomShape3d.cxx
@@ -380,7 +380,7 @@ SdrObject* EnhancedCustomShape3d::Create3DObject( const SdrObject* pShape2d, con
            SfxItemSet aLocalSet(aSet);
            drawing::FillStyle aLocalFillStyle(eFillStyle);

            if ( pNext->ISA( SdrPathObj ) )
            if ( dynamic_cast<const SdrPathObj*>( pNext) !=  nullptr )
            {
                const SfxItemSet& rSet = pNext->GetMergedItemSet();
                bool bNeedToConvertToContour(false);
@@ -462,7 +462,7 @@ SdrObject* EnhancedCustomShape3d::Create3DObject( const SdrObject* pShape2d, con
            else
            {
                SdrObject* pNewObj = pNext->ConvertToPolyObj( false, false );
                SdrPathObj* pPath = PTR_CAST( SdrPathObj, pNewObj );
                SdrPathObj* pPath = dynamic_cast<SdrPathObj*>( pNewObj  );
                if ( pPath )
                    aPolyPoly = pPath->GetPathPoly();
                SdrObject::Free( pNewObj );
diff --git a/svx/source/customshapes/EnhancedCustomShapeEngine.cxx b/svx/source/customshapes/EnhancedCustomShapeEngine.cxx
index 8d766c7..803fdeb 100644
--- a/svx/source/customshapes/EnhancedCustomShapeEngine.cxx
+++ b/svx/source/customshapes/EnhancedCustomShapeEngine.cxx
@@ -176,7 +176,7 @@ SdrObject* EnhancedCustomShapeEngine::ImplForceGroupWithText( const SdrObjCustom
        {
            if ( pRenderedShape )
            {
                if ( !pRenderedShape->ISA( SdrObjGroup ) )
                if ( dynamic_cast<const SdrObjGroup*>( pRenderedShape) ==  nullptr )
                {
                    SdrObject* pTmp = pRenderedShape;
                    pRenderedShape = new SdrObjGroup();
@@ -231,7 +231,7 @@ SdrObject* EnhancedCustomShapeEngine::ImplForceGroupWithText( const SdrObjCustom

            if ( pRenderedShape )
            {
                if ( !pRenderedShape->ISA( SdrObjGroup ) )
                if ( dynamic_cast<const SdrObjGroup*>( pRenderedShape) ==  nullptr )
                {
                    SdrObject* pTmp = pRenderedShape;
                    pRenderedShape = new SdrObjGroup();
@@ -246,7 +246,7 @@ SdrObject* EnhancedCustomShapeEngine::ImplForceGroupWithText( const SdrObjCustom
        // force group
        if ( pRenderedShape )
        {
            if ( !pRenderedShape->ISA( SdrObjGroup ) )
            if ( dynamic_cast<const SdrObjGroup*>( pRenderedShape) ==  nullptr )
            {
                SdrObject* pTmp = pRenderedShape;
                pRenderedShape = new SdrObjGroup();
@@ -273,7 +273,7 @@ Reference< drawing::XShape > SAL_CALL EnhancedCustomShapeEngine::render()
    throw ( RuntimeException, std::exception )
{
    Reference< drawing::XShape > xShape;
    SdrObject* pSdrObjCustomShape( PTR_CAST( SdrObjCustomShape, GetSdrObjectFromXShape( mxShape ) ) );
    SdrObject* pSdrObjCustomShape( dynamic_cast<SdrObjCustomShape*>( GetSdrObjectFromXShape( mxShape ) )  );
    if ( pSdrObjCustomShape )
    {
        // retrieving the TextPath property to check if feature is enabled
@@ -443,14 +443,14 @@ drawing::PolyPolygonBezierCoords SAL_CALL EnhancedCustomShapeEngine::getLineGeom
                basegfx::B2DPolyPolygon aPP;
                const SdrObject* pNext = aIter.Next();

                if ( pNext->ISA( SdrPathObj ) )
                if ( dynamic_cast<const SdrPathObj*>( pNext) !=  nullptr )
                {
                    aPP = static_cast<const SdrPathObj*>(pNext)->GetPathPoly();
                }
                else
                {
                    pNewObj = pNext->ConvertToPolyObj( false, false );
                    SdrPathObj* pPath = PTR_CAST( SdrPathObj, pNewObj );
                    SdrPathObj* pPath = dynamic_cast<SdrPathObj*>( pNewObj  );
                    if ( pPath )
                        aPP = pPath->GetPathPoly();
                }
diff --git a/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx b/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
index e956768..d4bada5 100644
--- a/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
+++ b/svx/source/customshapes/EnhancedCustomShapeFontWork.cxx
@@ -514,7 +514,7 @@ basegfx::B2DPolyPolygon GetOutlinesFromShape2d( const SdrObject* pShape2d )
    while( aObjListIter.IsMore() )
    {
        SdrObject* pPartObj = aObjListIter.Next();
        if ( pPartObj->ISA( SdrPathObj ) )
        if ( dynamic_cast<const SdrPathObj*>( pPartObj) !=  nullptr )
        {
            basegfx::B2DPolyPolygon aCandidate(static_cast<SdrPathObj*>(pPartObj)->GetPathPoly());
            if(aCandidate.areControlPointsUsed())
diff --git a/svx/source/dialog/_bmpmask.cxx b/svx/source/dialog/_bmpmask.cxx
index 2b3e3f9..75e2639 100644
--- a/svx/source/dialog/_bmpmask.cxx
+++ b/svx/source/dialog/_bmpmask.cxx
@@ -334,7 +334,7 @@ void SvxBmpMaskSelectItem::StateChanged( sal_uInt16 nSID, SfxItemState /*eState*
{
    if ( ( nSID == SID_BMPMASK_EXEC ) && pItem )
    {
        const SfxBoolItem* pStateItem = PTR_CAST( SfxBoolItem, pItem );
        const SfxBoolItem* pStateItem = dynamic_cast<const SfxBoolItem*>( pItem  );
        assert(pStateItem); //SfxBoolItem erwartet
        if (pStateItem)
            rBmpMask.SetExecState( pStateItem->GetValue() );
diff --git a/svx/source/dialog/_contdlg.cxx b/svx/source/dialog/_contdlg.cxx
index a0f27d4..b29f0c8 100644
--- a/svx/source/dialog/_contdlg.cxx
+++ b/svx/source/dialog/_contdlg.cxx
@@ -56,7 +56,7 @@ void SvxContourDlgItem::StateChanged( sal_uInt16 nSID, SfxItemState /*eState*/, 
{
    if ( pItem && ( SID_CONTOUR_EXEC == nSID ) )
    {
        const SfxBoolItem* pStateItem = PTR_CAST( SfxBoolItem, pItem );
        const SfxBoolItem* pStateItem = dynamic_cast<const SfxBoolItem*>( pItem  );
        assert(pStateItem); //SfxBoolItem expected
        if (pStateItem)
            rDlg.SetExecState(!pStateItem->GetValue());
@@ -606,7 +606,7 @@ IMPL_LINK_TYPED( SvxSuperContourDlg, StateHdl, GraphCtrl*, pWnd, void )
{
    const SdrObject*    pObj = pWnd->GetSelectedSdrObject();
    const SdrView*      pView = pWnd->GetSdrView();
    const bool          bPolyEdit = ( pObj != NULL ) && pObj->ISA( SdrPathObj );
    const bool          bPolyEdit = ( pObj != NULL ) && dynamic_cast<const SdrPathObj*>( pObj) !=  nullptr;
    const bool          bDrawEnabled = !(bPolyEdit && m_pTbx1->IsItemChecked(mnPolyEditId));
    const bool          bPipette = m_pTbx1->IsItemChecked(mnPipetteId);
    const bool          bWorkplace = m_pTbx1->IsItemChecked(mnWorkSpaceId);
diff --git a/svx/source/dialog/fontwork.cxx b/svx/source/dialog/fontwork.cxx
index 4c5ab06..b01bbf7 100644
--- a/svx/source/dialog/fontwork.cxx
+++ b/svx/source/dialog/fontwork.cxx
@@ -63,7 +63,7 @@ void SvxFontWorkControllerItem::StateChanged( sal_uInt16 /*nSID*/, SfxItemState 
        case SID_FORMTEXT_STYLE:
        {
            const XFormTextStyleItem* pStateItem =
                                PTR_CAST(XFormTextStyleItem, pItem);
                                dynamic_cast<const XFormTextStyleItem*>( pItem );
            DBG_ASSERT(pStateItem || pItem == 0, "XFormTextStyleItem expected");
            rFontWorkDlg.SetStyle_Impl(pStateItem);
            break;
@@ -71,7 +71,7 @@ void SvxFontWorkControllerItem::StateChanged( sal_uInt16 /*nSID*/, SfxItemState 
        case SID_FORMTEXT_ADJUST:
        {
            const XFormTextAdjustItem* pStateItem =
                                PTR_CAST(XFormTextAdjustItem, pItem);
                                dynamic_cast<const XFormTextAdjustItem*>( pItem );
            DBG_ASSERT(pStateItem || pItem == 0, "XFormTextAdjustItem expected");
            rFontWorkDlg.SetAdjust_Impl(pStateItem);
            break;
@@ -79,7 +79,7 @@ void SvxFontWorkControllerItem::StateChanged( sal_uInt16 /*nSID*/, SfxItemState 
        case SID_FORMTEXT_DISTANCE:
        {
            const XFormTextDistanceItem* pStateItem =
                                PTR_CAST(XFormTextDistanceItem, pItem);
                                dynamic_cast<const XFormTextDistanceItem*>( pItem );
            DBG_ASSERT(pStateItem || pItem == 0, "XFormTextDistanceItem erwartet");
            rFontWorkDlg.SetDistance_Impl(pStateItem);
            break;
@@ -87,7 +87,7 @@ void SvxFontWorkControllerItem::StateChanged( sal_uInt16 /*nSID*/, SfxItemState 
        case SID_FORMTEXT_START:
        {
            const XFormTextStartItem* pStateItem =
                                PTR_CAST(XFormTextStartItem, pItem);
                                dynamic_cast<const XFormTextStartItem*>( pItem );
            DBG_ASSERT(pStateItem || pItem == 0, "XFormTextStartItem expected");
            rFontWorkDlg.SetStart_Impl(pStateItem);
            break;
@@ -95,7 +95,7 @@ void SvxFontWorkControllerItem::StateChanged( sal_uInt16 /*nSID*/, SfxItemState 
        case SID_FORMTEXT_MIRROR:
        {
            const XFormTextMirrorItem* pStateItem =
                                PTR_CAST(XFormTextMirrorItem, pItem);
                                dynamic_cast<const XFormTextMirrorItem*>( pItem );
            DBG_ASSERT(pStateItem || pItem == 0, "XFormTextMirrorItem expected");
            rFontWorkDlg.SetMirror_Impl(pStateItem);
            break;
@@ -103,7 +103,7 @@ void SvxFontWorkControllerItem::StateChanged( sal_uInt16 /*nSID*/, SfxItemState 
        case SID_FORMTEXT_HIDEFORM:
        {
            const XFormTextHideFormItem* pStateItem =
                                PTR_CAST(XFormTextHideFormItem, pItem);
                                dynamic_cast<const XFormTextHideFormItem*>( pItem );
            DBG_ASSERT(pStateItem || pItem == 0, "XFormTextHideFormItem expected");
            rFontWorkDlg.SetShowForm_Impl(pStateItem);
            break;
@@ -111,7 +111,7 @@ void SvxFontWorkControllerItem::StateChanged( sal_uInt16 /*nSID*/, SfxItemState 
        case SID_FORMTEXT_OUTLINE:
        {
            const XFormTextOutlineItem* pStateItem =
                                PTR_CAST(XFormTextOutlineItem, pItem);
                                dynamic_cast<const XFormTextOutlineItem*>( pItem );
            DBG_ASSERT(pStateItem || pItem == 0, "XFormTextOutlineItem expected");
            rFontWorkDlg.SetOutline_Impl(pStateItem);
            break;
@@ -119,7 +119,7 @@ void SvxFontWorkControllerItem::StateChanged( sal_uInt16 /*nSID*/, SfxItemState 
        case SID_FORMTEXT_SHADOW:
        {
            const XFormTextShadowItem* pStateItem =
                                PTR_CAST(XFormTextShadowItem, pItem);
                                dynamic_cast<const XFormTextShadowItem*>( pItem );
            DBG_ASSERT(pStateItem || pItem == 0, "XFormTextShadowItem expected");
            rFontWorkDlg.SetShadow_Impl(pStateItem);
            break;
@@ -127,7 +127,7 @@ void SvxFontWorkControllerItem::StateChanged( sal_uInt16 /*nSID*/, SfxItemState 
        case SID_FORMTEXT_SHDWCOLOR:
        {
            const XFormTextShadowColorItem* pStateItem =
                                PTR_CAST(XFormTextShadowColorItem, pItem);
                                dynamic_cast<const XFormTextShadowColorItem*>( pItem );
            DBG_ASSERT(pStateItem || pItem == 0, "XFormTextShadowColorItem expected");
            rFontWorkDlg.SetShadowColor_Impl(pStateItem);
            break;
@@ -135,7 +135,7 @@ void SvxFontWorkControllerItem::StateChanged( sal_uInt16 /*nSID*/, SfxItemState 
        case SID_FORMTEXT_SHDWXVAL:
        {
            const XFormTextShadowXValItem* pStateItem =
                                PTR_CAST(XFormTextShadowXValItem, pItem);
                                dynamic_cast<const XFormTextShadowXValItem*>( pItem );
            DBG_ASSERT(pStateItem || pItem == 0, "XFormTextShadowXValItem expected");
            rFontWorkDlg.SetShadowXVal_Impl(pStateItem);
            break;
@@ -143,7 +143,7 @@ void SvxFontWorkControllerItem::StateChanged( sal_uInt16 /*nSID*/, SfxItemState 
        case SID_FORMTEXT_SHDWYVAL:
        {
            const XFormTextShadowYValItem* pStateItem =
                                PTR_CAST(XFormTextShadowYValItem, pItem);
                                dynamic_cast<const XFormTextShadowYValItem*>( pItem );
            DBG_ASSERT(pStateItem || pItem == 0, "XFormTextShadowYValItem expected");
            rFontWorkDlg.SetShadowYVal_Impl(pStateItem);
            break;
diff --git a/svx/source/dialog/hdft.cxx b/svx/source/dialog/hdft.cxx
index 65326c0..4362446 100644
--- a/svx/source/dialog/hdft.cxx
+++ b/svx/source/dialog/hdft.cxx
@@ -379,7 +379,7 @@ void SvxHFPage::Reset( const SfxItemSet* rSet )
    bool bIsCalc = false;
    const SfxPoolItem* pExt1 = GetItem(*rSet, SID_ATTR_PAGE_EXT1);
    const SfxPoolItem* pExt2 = GetItem(*rSet, SID_ATTR_PAGE_EXT2);
    if (pExt1 && pExt1->ISA(SfxBoolItem) && pExt2 && pExt2->ISA(SfxBoolItem))
    if (pExt1 && dynamic_cast<const SfxBoolItem*>(pExt1) != nullptr && pExt2 && dynamic_cast<const SfxBoolItem*>(pExt2) != nullptr )
        bIsCalc = true;
    m_pCntSharedFirstBox->Show(!bIsCalc);

@@ -1036,7 +1036,7 @@ void SvxHFPage::ActivatePage( const SfxItemSet& rSet )

    pItem = GetItem( rSet, SID_ATTR_PAGE_EXT1 );

    if ( pItem && pItem->ISA(SfxBoolItem) )
    if ( pItem && dynamic_cast<const SfxBoolItem*>( pItem) !=  nullptr )
    {
        m_pBspWin->SetTable( true );
        m_pBspWin->SetHorz( static_cast<const SfxBoolItem*>(pItem)->GetValue() );
@@ -1044,7 +1044,7 @@ void SvxHFPage::ActivatePage( const SfxItemSet& rSet )

    pItem = GetItem( rSet, SID_ATTR_PAGE_EXT2 );

    if ( pItem && pItem->ISA(SfxBoolItem) )
    if ( pItem && dynamic_cast<const SfxBoolItem*>( pItem) !=  nullptr )
    {
        m_pBspWin->SetTable( true );
        m_pBspWin->SetVert( static_cast<const SfxBoolItem*>(pItem)->GetValue() );
diff --git a/svx/source/dialog/imapdlg.cxx b/svx/source/dialog/imapdlg.cxx
index 751e40a..baa8dc2 100644
--- a/svx/source/dialog/imapdlg.cxx
+++ b/svx/source/dialog/imapdlg.cxx
@@ -81,7 +81,7 @@ void SvxIMapDlgItem::StateChanged( sal_uInt16 nSID, SfxItemState /*eState*/,
{
    if ( ( nSID == SID_IMAP_EXEC ) && pItem )
    {
        const SfxBoolItem* pStateItem = PTR_CAST( SfxBoolItem, pItem );
        const SfxBoolItem* pStateItem = dynamic_cast<const SfxBoolItem*>( pItem  );
        assert(pStateItem); //SfxBoolItem expected
        if (pStateItem)
        {
@@ -755,7 +755,7 @@ IMPL_LINK_TYPED( SvxIMapDlg, StateHdl, GraphCtrl*, pWnd, void )
    const SdrObject*    pObj = pWnd->GetSelectedSdrObject();
    const SdrModel*     pModel = pWnd->GetSdrModel();
    const SdrView*      pView = pWnd->GetSdrView();
    const bool          bPolyEdit = ( pObj != NULL ) && pObj->ISA( SdrPathObj );
    const bool          bPolyEdit = ( pObj != NULL ) && dynamic_cast<const SdrPathObj*>( pObj) !=  nullptr;
    const bool          bDrawEnabled = !( bPolyEdit && m_pTbxIMapDlg1->IsItemChecked( mnPolyEditId ) );

    m_pTbxIMapDlg1->EnableItem( mnApplyId, pOwnData->bExecState && pWnd->IsChanged() );
diff --git a/svx/source/dialog/rlrcitem.cxx b/svx/source/dialog/rlrcitem.cxx
index 4822c1b..9eeb0e5 100644
--- a/svx/source/dialog/rlrcitem.cxx
+++ b/svx/source/dialog/rlrcitem.cxx
@@ -55,20 +55,20 @@ void SvxRulerItem::StateChanged( sal_uInt16 nSID, SfxItemState eState,
        // Left / right margin
        case SID_RULER_LR_MIN_MAX:
        {
            const SfxRectangleItem *pItem = PTR_CAST(SfxRectangleItem, pState);
            const SfxRectangleItem *pItem = dynamic_cast<const SfxRectangleItem*>( pState );
            rRuler.UpdateFrameMinMax(pItem);
            break;
        }
        case SID_ATTR_LONG_LRSPACE:
        {
            const SvxLongLRSpaceItem *pItem = PTR_CAST(SvxLongLRSpaceItem, pState);
            const SvxLongLRSpaceItem *pItem = dynamic_cast<const SvxLongLRSpaceItem*>( pState );
            DBG_ASSERT(pState == nullptr || pItem != nullptr, "SvxLRSpaceItem expected");
            rRuler.UpdateFrame(pItem);
            break;
        }
        case SID_ATTR_LONG_ULSPACE:
        {
            const SvxLongULSpaceItem *pItem = PTR_CAST(SvxLongULSpaceItem, pState);
            const SvxLongULSpaceItem *pItem = dynamic_cast<const SvxLongULSpaceItem*>( pState );
            DBG_ASSERT(pState == nullptr || pItem != nullptr, "SvxULSpaceItem expected");
            rRuler.UpdateFrame(pItem);
            break;
@@ -76,7 +76,7 @@ void SvxRulerItem::StateChanged( sal_uInt16 nSID, SfxItemState eState,
        case SID_ATTR_TABSTOP_VERTICAL:
        case SID_ATTR_TABSTOP:
        {
            const SvxTabStopItem *pItem = PTR_CAST(SvxTabStopItem, pState);
            const SvxTabStopItem *pItem = dynamic_cast<const SvxTabStopItem*>( pState );
            DBG_ASSERT(pState == nullptr || pItem != nullptr, "SvxTabStopItem expected");
            rRuler.Update(pItem);
            break;
@@ -84,7 +84,7 @@ void SvxRulerItem::StateChanged( sal_uInt16 nSID, SfxItemState eState,
        case SID_ATTR_PARA_LRSPACE_VERTICAL:
        case SID_ATTR_PARA_LRSPACE:
        {
            const SvxLRSpaceItem *pItem = PTR_CAST(SvxLRSpaceItem, pState);
            const SvxLRSpaceItem *pItem = dynamic_cast<const SvxLRSpaceItem*>( pState );
            DBG_ASSERT(pState == nullptr || pItem != nullptr, "SvxLRSpaceItem expected");
            rRuler.UpdatePara(pItem);
            break;
@@ -94,7 +94,7 @@ void SvxRulerItem::StateChanged( sal_uInt16 nSID, SfxItemState eState,
        case SID_RULER_ROWS:
        case SID_RULER_ROWS_VERTICAL:
        {
            const SvxColumnItem *pItem = PTR_CAST(SvxColumnItem, pState);
            const SvxColumnItem *pItem = dynamic_cast<const SvxColumnItem*>( pState );
            DBG_ASSERT(pState == nullptr || pItem != nullptr, "SvxColumnItem expected");
#ifdef DBG_UTIL
            if(pItem)
@@ -113,35 +113,35 @@ void SvxRulerItem::StateChanged( sal_uInt16 nSID, SfxItemState eState,
        }
        case SID_RULER_PAGE_POS:
        {   // Position page, page width
            const SvxPagePosSizeItem *pItem = PTR_CAST(SvxPagePosSizeItem, pState);
            const SvxPagePosSizeItem *pItem = dynamic_cast<const SvxPagePosSizeItem*>( pState );
            DBG_ASSERT(pState == nullptr || pItem != nullptr, "SvxPagePosSizeItem expected");
            rRuler.Update(pItem);
            break;
        }
        case SID_RULER_OBJECT:
        {   // Object selection
            const SvxObjectItem *pItem = PTR_CAST(SvxObjectItem, pState);
            const SvxObjectItem *pItem = dynamic_cast<const SvxObjectItem*>( pState );
            DBG_ASSERT(pState == nullptr || pItem != nullptr, "SvxObjectItem expected");
            rRuler.Update(pItem);
            break;
        }
        case SID_RULER_PROTECT:
        {
            const SvxProtectItem *pItem = PTR_CAST(SvxProtectItem, pState);
            const SvxProtectItem *pItem = dynamic_cast<const SvxProtectItem*>( pState );
            DBG_ASSERT(pState == nullptr || pItem != nullptr, "SvxProtectItem expected");
            rRuler.Update(pItem);
            break;
        }
        case SID_RULER_BORDER_DISTANCE:
        {
            const SvxLRSpaceItem *pItem = PTR_CAST(SvxLRSpaceItem, pState);
            const SvxLRSpaceItem *pItem = dynamic_cast<const SvxLRSpaceItem*>( pState );
            DBG_ASSERT(pState == nullptr || pItem != nullptr, "SvxLRSpaceItem expected");
            rRuler.UpdateParaBorder(pItem);
        }
        break;
        case SID_RULER_TEXT_RIGHT_TO_LEFT :
        {
            const SfxBoolItem *pItem = PTR_CAST(SfxBoolItem, pState);
            const SfxBoolItem *pItem = dynamic_cast<const SfxBoolItem*>( pState );
            DBG_ASSERT(pState == nullptr || pItem != nullptr, "SfxBoolItem expected");
            rRuler.UpdateTextRTL(pItem);
        }
diff --git a/svx/source/dialog/srchctrl.cxx b/svx/source/dialog/srchctrl.cxx
index 460ebad..3bc463b 100644
--- a/svx/source/dialog/srchctrl.cxx
+++ b/svx/source/dialog/srchctrl.cxx
@@ -54,13 +54,13 @@ void SvxSearchController::StateChanged( sal_uInt16 nSID, SfxItemState eState,
        }
        else if ( SID_SEARCH_OPTIONS == nSID )
        {
            DBG_ASSERT( pState->ISA(SfxUInt16Item), "wrong item type" );
            DBG_ASSERT( dynamic_cast<const SfxUInt16Item* >(pState) !=  nullptr, "wrong item type" );
            SearchOptionFlags nFlags = (SearchOptionFlags) static_cast<const SfxUInt16Item*>(pState)->GetValue();
            rSrchDlg.EnableControls_Impl( nFlags );
        }
        else if ( SID_SEARCH_ITEM == nSID )
        {
            DBG_ASSERT( pState->ISA(SvxSearchItem), "wrong item type" );
            DBG_ASSERT( dynamic_cast<const SvxSearchItem*>( pState) !=  nullptr, "wrong item type" );
            rSrchDlg.SetItem_Impl( static_cast<const SvxSearchItem*>(pState) );
        }
    }
diff --git a/svx/source/engine3d/dragmt3d.cxx b/svx/source/engine3d/dragmt3d.cxx
index 53028b3..add71f2 100644
--- a/svx/source/engine3d/dragmt3d.cxx
+++ b/svx/source/engine3d/dragmt3d.cxx
@@ -321,7 +321,7 @@ void E3dDragRotate::MoveSdrDrag(const Point& rPnt)
    {
        // Get modifier
        sal_uInt16 nModifier = 0;
        if(getSdrDragView().ISA(E3dView))
        if(dynamic_cast<const E3dView*>(&getSdrDragView()))
        {
            const MouseEvent& rLastMouse = static_cast<E3dView&>(getSdrDragView()).GetMouseEvent();
            nModifier = rLastMouse.GetModifier();
@@ -499,7 +499,7 @@ void E3dDragMove::MoveSdrDrag(const Point& rPnt)
            // Get modifier
            sal_uInt16 nModifier(0);

            if(getSdrDragView().ISA(E3dView))
            if(dynamic_cast<const E3dView*>(&getSdrDragView()))
            {
                const MouseEvent& rLastMouse = static_cast<E3dView&>(getSdrDragView()).GetMouseEvent();
                nModifier = rLastMouse.GetModifier();
diff --git a/svx/source/engine3d/obj3d.cxx b/svx/source/engine3d/obj3d.cxx
index 91d2d3d..5181ac2 100644
--- a/svx/source/engine3d/obj3d.cxx
+++ b/svx/source/engine3d/obj3d.cxx
@@ -110,10 +110,10 @@ E3dObjList::~E3dObjList()
void E3dObjList::NbcInsertObject(SdrObject* pObj, size_t nPos, const SdrInsertReason* pReason)
{
    // Get owner
    DBG_ASSERT(GetOwnerObj()->ISA(E3dObject), "Insert 3D object in parent != 3DObject");
    DBG_ASSERT(dynamic_cast<const E3dObject*>(GetOwnerObj()), "Insert 3D object in parent != 3DObject");

    // Is it even a 3D object?
    if(pObj && pObj->ISA(E3dObject))
    if(pObj && dynamic_cast<const E3dObject*>(pObj))
    {
        // Normal 3D object, insert means
        // call parent
@@ -128,7 +128,7 @@ void E3dObjList::NbcInsertObject(SdrObject* pObj, size_t nPos, const SdrInsertRe

void E3dObjList::InsertObject(SdrObject* pObj, size_t nPos, const SdrInsertReason* pReason)
{
    OSL_ENSURE(GetOwnerObj()->ISA(E3dObject), "Insert 3D object in non-3D Parent");
    OSL_ENSURE(dynamic_cast<const E3dObject*>(GetOwnerObj()), "Insert 3D object in non-3D Parent");

    // call parent
    SdrObjList::InsertObject(pObj, nPos, pReason);
@@ -142,7 +142,7 @@ void E3dObjList::InsertObject(SdrObject* pObj, size_t nPos, const SdrInsertReaso

SdrObject* E3dObjList::NbcRemoveObject(size_t nObjNum)
{
    DBG_ASSERT(GetOwnerObj()->ISA(E3dObject), "Remove 3D object from Parent != 3DObject");
    DBG_ASSERT(dynamic_cast<const E3dObject*>(GetOwnerObj()), "Remove 3D object from Parent != 3DObject");

    // call parent
    SdrObject* pRetval = SdrObjList::NbcRemoveObject(nObjNum);
@@ -158,7 +158,7 @@ SdrObject* E3dObjList::NbcRemoveObject(size_t nObjNum)

SdrObject* E3dObjList::RemoveObject(size_t nObjNum)
{
    OSL_ENSURE(GetOwnerObj()->ISA(E3dObject), "3D object is removed from non-3D Parent");
    OSL_ENSURE(dynamic_cast<const E3dObject*>(GetOwnerObj()), "3D object is removed from non-3D Parent");

    // call parent
    SdrObject* pRetval = SdrObjList::RemoveObject(nObjNum);
@@ -507,7 +507,7 @@ E3dObject* E3dObject::GetParentObj() const

    if(GetObjList()
        && GetObjList()->GetOwnerObj()
        && GetObjList()->GetOwnerObj()->ISA(E3dObject))
        && dynamic_cast<const E3dObject*>(GetObjList()->GetOwnerObj()))
        pRetval = static_cast<E3dObject*>(GetObjList()->GetOwnerObj());
    return pRetval;
}
@@ -968,7 +968,7 @@ bool E3dCompoundObject::IsAOrdNumRemapCandidate(E3dScene*& prScene) const
{
    if(GetObjList()
        && GetObjList()->GetOwnerObj()
        && GetObjList()->GetOwnerObj()->ISA(E3dScene))
        && dynamic_cast<const E3dObject*>(GetObjList()->GetOwnerObj()))
    {
        prScene = static_cast<E3dScene*>(GetObjList()->GetOwnerObj());
        return true;
diff --git a/svx/source/engine3d/scene3d.cxx b/svx/source/engine3d/scene3d.cxx
index ab36ed2..38bba54 100644
--- a/svx/source/engine3d/scene3d.cxx
+++ b/svx/source/engine3d/scene3d.cxx
@@ -129,7 +129,7 @@ Imp3DDepthRemapper::Imp3DDepthRemapper(E3dScene& rScene)

        if(pCandidate)
        {
            if(pCandidate->ISA(E3dCompoundObject))
            if(dynamic_cast< const E3dCompoundObject*>(pCandidate))
            {
                // single 3d object, calc depth
                const double fMinimalDepth(getMinimalDepthInViewCoordinates(static_cast< const E3dCompoundObject& >(*pCandidate)));
@@ -402,7 +402,7 @@ void E3dScene::removeAllNonSelectedObjects()
        {
            bool bRemoveObject(false);

            if(pObj->ISA(E3dScene))
            if(dynamic_cast< const E3dScene*>(pObj))
            {
                E3dScene* pScene = static_cast<E3dScene*>(pObj);

@@ -418,7 +418,7 @@ void E3dScene::removeAllNonSelectedObjects()
                    bRemoveObject = true;
                }
            }
            else if(pObj->ISA(E3dCompoundObject))
            else if(dynamic_cast< const E3dCompoundObject*>(pObj))
            {
                E3dCompoundObject* pCompound = static_cast<E3dCompoundObject*>(pObj);

@@ -666,7 +666,7 @@ bool E3dScene::IsBreakObjPossible()
    while ( a3DIterator.IsMore() )
    {
        E3dObject* pObj = static_cast<E3dObject*>(a3DIterator.Next());
        DBG_ASSERT(pObj->ISA(E3dObject), "only 3D objects are allowed in scenes!");
        DBG_ASSERT(dynamic_cast< const E3dObject*>(pObj), "only 3D objects are allowed in scenes!");
        if(!pObj->IsBreakObjPossible())
            return false;
    }
diff --git a/svx/source/engine3d/view3d.cxx b/svx/source/engine3d/view3d.cxx
index 7e498f7..ec20456 100644
--- a/svx/source/engine3d/view3d.cxx
+++ b/svx/source/engine3d/view3d.cxx
@@ -247,7 +247,7 @@ void E3dView::DrawMarkedObj(OutputDevice& rOut) const
    for(size_t nObjs = 0; nObjs < nCnt; ++nObjs)
    {
        SdrObject *pObj = GetMarkedObjectByIndex(nObjs);
        if(pObj && pObj->ISA(E3dCompoundObject))
        if(pObj && dynamic_cast< const E3dCompoundObject*>(pObj) !=  nullptr)
        {
            // related scene
            pScene = static_cast<E3dCompoundObject*>(pObj)->GetScene();
@@ -255,7 +255,7 @@ void E3dView::DrawMarkedObj(OutputDevice& rOut) const
                bSpecialHandling = true;
        }
        // Reset all selection flags
        if(pObj && pObj->ISA(E3dObject))
        if(pObj && dynamic_cast< const E3dObject*>(pObj) !=  nullptr)
        {
            pScene = static_cast<E3dObject*>(pObj)->GetScene();
            if(pScene)
@@ -270,7 +270,7 @@ void E3dView::DrawMarkedObj(OutputDevice& rOut) const
        for(size_t nObjs = 0; nObjs < nCnt; ++nObjs)
        {
            SdrObject *pObj = GetMarkedObjectByIndex(nObjs);
            if(pObj && pObj->ISA(E3dCompoundObject))
            if(pObj && dynamic_cast< const E3dCompoundObject*>(pObj) !=  nullptr)
            {
                // relatated scene
                pScene = static_cast<E3dCompoundObject*>(pObj)->GetScene();
@@ -282,7 +282,7 @@ void E3dView::DrawMarkedObj(OutputDevice& rOut) const
        for(size_t nObjs = 0; nObjs < nCnt; ++nObjs)
        {
            SdrObject *pObj = GetMarkedObjectByIndex(nObjs);
            if(pObj && pObj->ISA(E3dObject))
            if(pObj && dynamic_cast< const E3dObject*>(pObj) !=  nullptr)
            {
                // Select object
                E3dObject* p3DObj = static_cast<E3dObject*>(pObj);
@@ -305,7 +305,7 @@ void E3dView::DrawMarkedObj(OutputDevice& rOut) const
        for(size_t nObjs = 0; nObjs < nCnt; ++nObjs)
        {
            SdrObject *pObj = GetMarkedObjectByIndex(nObjs);
            if(pObj && pObj->ISA(E3dCompoundObject))
            if(pObj && dynamic_cast< const E3dCompoundObject*>(pObj) !=  nullptr)
            {
                // related scene
                pScene = static_cast<E3dCompoundObject*>(pObj)->GetScene();
@@ -335,7 +335,7 @@ SdrModel* E3dView::GetMarkedObjModel() const
    {
        const SdrObject* pObj = GetMarkedObjectByIndex(nObjs);

        if(!bSpecialHandling && pObj && pObj->ISA(E3dCompoundObject))
        if(!bSpecialHandling && pObj && dynamic_cast< const E3dCompoundObject*>(pObj) !=  nullptr)
        {
            // if the object is selected, but it's scene not,
            // we need special handling
@@ -347,7 +347,7 @@ SdrModel* E3dView::GetMarkedObjModel() const
            }
        }

        if(pObj && pObj->ISA(E3dObject))
        if(pObj && dynamic_cast< const E3dObject*>(pObj) !=  nullptr)
        {
            // reset all selection flags at 3D objects
            pScene = static_cast<const E3dObject*>(pObj)->GetScene();
@@ -374,7 +374,7 @@ SdrModel* E3dView::GetMarkedObjModel() const
    {
        SdrObject *pObj = GetMarkedObjectByIndex(nObjs);

        if(pObj && pObj->ISA(E3dCompoundObject))
        if(pObj && dynamic_cast< const E3dCompoundObject*>(pObj) !=  nullptr)
        {
            // mark object, but not scenes
            E3dCompoundObject* p3DObj = static_cast<E3dCompoundObject*>(pObj);
@@ -394,7 +394,7 @@ SdrModel* E3dView::GetMarkedObjModel() const
    {
        SdrObject *pObj = aOldML.GetMark(nObjs)->GetMarkedSdrObj();

        if(pObj && pObj->ISA(E3dObject))
        if(pObj && dynamic_cast< const E3dObject* >(pObj) !=  nullptr)
        {
            pScene = static_cast<E3dObject*>(pObj)->GetScene();

@@ -420,7 +420,7 @@ SdrModel* E3dView::GetMarkedObjModel() const
            {
                const SdrObject* pSrcOb=pSrcPg->GetObj(nOb);

                if(pSrcOb->ISA(E3dScene))
                if(dynamic_cast< const E3dScene* >( pSrcOb) !=  nullptr)
                {
                    pScene = const_cast<E3dScene*>(static_cast<const E3dScene*>(pSrcOb));

@@ -460,7 +460,7 @@ bool E3dView::Paste(

    // Get owner of the list
    SdrObject* pOwner = pDstList->GetOwnerObj();
    if(pOwner && pOwner->ISA(E3dScene))
    if(pOwner && dynamic_cast< const E3dScene* >(pOwner) !=  nullptr)
    {
        E3dScene* pDstScene = static_cast<E3dScene*>(pOwner);
        BegUndo(SVX_RESSTR(RID_SVX_3D_UNDO_EXCHANGE_PASTE));
@@ -479,7 +479,7 @@ bool E3dView::Paste(
            for(size_t nOb = 0; nOb < nObjCount; ++nOb)
            {
                const SdrObject* pSrcOb = pSrcPg->GetObj(nOb);
                if(pSrcOb->ISA(E3dScene))
                if(dynamic_cast< const E3dScene* >(pSrcOb) !=  nullptr)
                {
                    E3dScene* pSrcScene = const_cast<E3dScene*>(static_cast<const E3dScene*>(pSrcOb));
                    ImpCloneAll3DObjectsToDestScene(pSrcScene, pDstScene, aDist);
@@ -635,7 +635,7 @@ void E3dView::ImpIsConvertTo3DPossible(SdrObject* pObj, bool& rAny3D,
{
    if(pObj)
    {
        if(pObj->ISA(E3dObject))
        if(dynamic_cast< const E3dObject* >(pObj) !=  nullptr)
        {
            rAny3D = true;
        }
@@ -659,7 +659,7 @@ void E3dView::ImpIsConvertTo3DPossible(SdrObject* pObj, bool& rAny3D,

void E3dView::ImpChangeSomeAttributesFor3DConversion(SdrObject* pObj)
{
    if(pObj->ISA(SdrTextObj))
    if(dynamic_cast<const SdrTextObj*>( pObj) !=  nullptr)
    {
        const SfxItemSet& rSet = pObj->GetMergedItemSet();
        const SvxColorItem& rTextColorItem = static_cast<const SvxColorItem&>(rSet.Get(EE_CHAR_COLOR));
@@ -684,7 +684,7 @@ void E3dView::ImpChangeSomeAttributesFor3DConversion(SdrObject* pObj)

void E3dView::ImpChangeSomeAttributesFor3DConversion2(SdrObject* pObj)
{
    if(pObj->ISA(SdrPathObj))
    if(dynamic_cast<const SdrPathObj*>( pObj) !=  nullptr)
    {
        const SfxItemSet& rSet = pObj->GetMergedItemSet();
        sal_Int32 nLineWidth = static_cast<const XLineWidthItem&>(rSet.Get(XATTR_LINEWIDTH)).GetValue();
@@ -707,7 +707,7 @@ void E3dView::ImpChangeSomeAttributesFor3DConversion2(SdrObject* pObj)
void E3dView::ImpCreateSingle3DObjectFlat(E3dScene* pScene, SdrObject* pObj, bool bExtrude, double fDepth, basegfx::B2DHomMatrix& rLatheMat)
{
    // Single PathObject, transform this
    SdrPathObj* pPath = PTR_CAST(SdrPathObj, pObj);
    SdrPathObj* pPath = dynamic_cast<SdrPathObj*>( pObj );

    if(pPath)
    {
@@ -1225,9 +1225,9 @@ bool E3dView::BegDragObj(const Point& rPnt, OutputDevice* pOut,
                SdrObject *pObj = GetMarkedObjectByIndex(nObjs);
                if(pObj)
                {
                    if(pObj->ISA(E3dScene) && static_cast<E3dScene*>(pObj)->GetScene() == pObj)
                    if(dynamic_cast< const E3dScene*>(pObj) != nullptr && static_cast<E3dScene*>(pObj)->GetScene() == pObj)
                        bThereAreRootScenes = true;
                    if(pObj->ISA(E3dObject))
                    if(dynamic_cast< const E3dObject* >(pObj) !=  nullptr)
                        bThereAre3DObjects = true;
                }
            }
@@ -1553,7 +1553,7 @@ bool E3dView::IsBreak3DObjPossible() const
        {
            SdrObject* pObj = GetMarkedObjectByIndex(i);

            if (pObj && pObj->ISA(E3dObject))
            if (pObj && dynamic_cast< const E3dObject* >(pObj) !=  nullptr)
            {
                if(!(static_cast<E3dObject*>(pObj)->IsBreakObjPossible()))
                    return false;
@@ -1592,7 +1592,7 @@ void E3dView::Break3DObj()

void E3dView::BreakSingle3DObj(E3dObject* pObj)
{
    if(pObj->ISA(E3dScene))
    if(dynamic_cast< const E3dScene* >(pObj) !=  nullptr)
    {
        SdrObjList* pSubList = pObj->GetSubList();
        SdrObjListIter aIter(*pSubList, IM_FLAT);
@@ -1629,9 +1629,9 @@ void E3dView::CheckPossibilities()
        for(size_t nObjs = 0; (nObjs < nMarkCnt) && !bCoumpound; ++nObjs)
        {
            SdrObject *pObj = GetMarkedObjectByIndex(nObjs);
            if(pObj && pObj->ISA(E3dCompoundObject))
            if(pObj && dynamic_cast< const E3dCompoundObject* >(pObj) !=  nullptr)
                bCoumpound = true;
            if(pObj && pObj->ISA(E3dObject))
            if(pObj && dynamic_cast< const E3dObject* >(pObj) !=  nullptr)
                b3DObject = true;
        }

diff --git a/svx/source/engine3d/view3d1.cxx b/svx/source/engine3d/view3d1.cxx
index 62ce42a..6cd62af 100644
--- a/svx/source/engine3d/view3d1.cxx
+++ b/svx/source/engine3d/view3d1.cxx
@@ -50,7 +50,7 @@ void E3dView::ConvertMarkedToPolyObj(bool bLineToArea)
    {
        SdrObject* pObj = GetMarkedObjectByIndex(0);

        if (pObj && pObj->ISA(E3dPolyScene))
        if (pObj && dynamic_cast< const E3dPolyScene* >(pObj) !=  nullptr)
        {
            bool bBezier = false;
            pNewObj = static_cast<E3dPolyScene*>(pObj)->ConvertToPolyObj(bBezier, bLineToArea);
@@ -72,19 +72,19 @@ void E3dView::ConvertMarkedToPolyObj(bool bLineToArea)

void Imp_E3dView_InorderRun3DObjects(const SdrObject* pObj, sal_uInt32& rMask)
{
    if(pObj->ISA(E3dLatheObj))
    if(dynamic_cast< const E3dLatheObj* >(pObj) !=  nullptr)
    {
        rMask |= 0x0001;
    }
    else if(pObj->ISA(E3dExtrudeObj))
    else if(dynamic_cast< const E3dExtrudeObj* >(pObj) !=  nullptr)
    {
        rMask |= 0x0002;
    }
    else if(pObj->ISA(E3dSphereObj))
    else if(dynamic_cast< const E3dSphereObj* >(pObj) !=  nullptr)
    {
        rMask |= 0x0004;
    }
    else if(pObj->ISA(E3dCubeObj))
    else if(dynamic_cast< const E3dCubeObj* >(pObj) !=  nullptr)
    {
        rMask |= 0x0008;
    }
diff --git a/svx/source/fmcomp/fmgridcl.cxx b/svx/source/fmcomp/fmgridcl.cxx
index 2230813..03fc375 100644
--- a/svx/source/fmcomp/fmgridcl.cxx
+++ b/svx/source/fmcomp/fmgridcl.cxx
@@ -768,7 +768,7 @@ void FmGridHeader::PreExecuteColumnContextMenu(sal_uInt16 nColId, PopupMenu& rMe

            if (eState >= SfxItemState::DEFAULT && pItem )
            {
                bool bChecked = pItem->ISA(SfxBoolItem) && static_cast<SfxBoolItem*>(pItem)->GetValue();
                bool bChecked = dynamic_cast<const SfxBoolItem*>( pItem) != nullptr && static_cast<SfxBoolItem*>(pItem)->GetValue();
                rMenu.CheckItem(SID_FM_SHOW_PROPERTY_BROWSER,bChecked);
            }
            delete pItem;
diff --git a/svx/source/fmcomp/gridcell.cxx b/svx/source/fmcomp/gridcell.cxx
index b73b821..ede090d 100644
--- a/svx/source/fmcomp/gridcell.cxx
+++ b/svx/source/fmcomp/gridcell.cxx
@@ -263,11 +263,11 @@ void DbGridColumn::impl_toggleScriptManager_nothrow( bool _bAttach )

void DbGridColumn::UpdateFromField(const DbGridRow* pRow, const Reference< XNumberFormatter >& xFormatter)
{
    if (m_pCell && m_pCell->ISA(FmXFilterCell))
        PTR_CAST(FmXFilterCell, m_pCell)->Update();
    if (m_pCell && dynamic_cast<const FmXFilterCell*>( m_pCell) !=  nullptr)
        dynamic_cast<FmXFilterCell*>( m_pCell)->Update( );
    else if (pRow && pRow->IsValid() && m_nFieldPos >= 0 && m_pCell && pRow->HasField(m_nFieldPos))
    {
        PTR_CAST(FmXDataCell, m_pCell)->UpdateFromField( pRow->GetField( m_nFieldPos ).getColumn(), xFormatter );
        dynamic_cast<FmXDataCell*>( m_pCell)->UpdateFromField( pRow->GetField( m_nFieldPos ).getColumn(), xFormatter  );
    }
}

@@ -281,7 +281,7 @@ bool DbGridColumn::Commit()
        bResult = m_pCell->Commit();

        // store the data into the model
        FmXDataCell* pDataCell = PTR_CAST(FmXDataCell, m_pCell);
        FmXDataCell* pDataCell = dynamic_cast<FmXDataCell*>( m_pCell );
        if (bResult && pDataCell)
        {
            Reference< ::com::sun::star::form::XBoundComponent >  xComp(m_xModel, UNO_QUERY);
@@ -413,7 +413,7 @@ void DbGridColumn::setLock(bool _bLock)
OUString DbGridColumn::GetCellText(const DbGridRow* pRow, const Reference< XNumberFormatter >& xFormatter) const
{
    OUString aText;
    if (m_pCell && m_pCell->ISA(FmXFilterCell))
    if (m_pCell && dynamic_cast<const FmXFilterCell*>( m_pCell) !=  nullptr)
        return aText;

    if (!pRow || !pRow->IsValid())
@@ -431,7 +431,7 @@ OUString DbGridColumn::GetCellText(const Reference< ::com::sun::star::sdb::XColu
    OUString aText;
    if (xField.is())
    {
        FmXTextCell* pTextCell = PTR_CAST(FmXTextCell, m_pCell);
        FmXTextCell* pTextCell = dynamic_cast<FmXTextCell*>( m_pCell );
        if (pTextCell)
            aText = pTextCell->GetText(xField, xFormatter);
        else if (m_bObject)
@@ -461,7 +461,7 @@ void DbGridColumn::Paint(OutputDevice& rDev,
    bool bEnabled = ( rDev.GetOutDevType() != OUTDEV_WINDOW )
                ||  ( static_cast< vcl::Window& >( rDev ).IsEnabled() );

    FmXDataCell* pDataCell = PTR_CAST(FmXDataCell, m_pCell);
    FmXDataCell* pDataCell = dynamic_cast<FmXDataCell*>( m_pCell );
    if (pDataCell)
    {
        if (!pRow || !pRow->IsValid())
@@ -515,7 +515,7 @@ void DbGridColumn::Paint(OutputDevice& rDev,
            rDev.DrawText(rRect, OUString(OBJECTTEXT), nStyle);
        }
    }
    else if ( m_pCell->ISA( FmXFilterCell ) )
    else if ( dynamic_cast<const FmXFilterCell*>( m_pCell) !=  nullptr )
        static_cast< FmXFilterCell* >( m_pCell )->PaintCell( rDev, rRect );
}

@@ -3588,7 +3588,7 @@ FmXEditCell::FmXEditCell( DbGridColumn* pColumn, DbCellControl& _rControl )
            ,m_bOwnEditImplementation( false )
{

    DbTextField* pTextField = PTR_CAST( DbTextField, &_rControl );
    DbTextField* pTextField = dynamic_cast<DbTextField*>( &_rControl  );
    if ( pTextField )
    {

@@ -4546,7 +4546,7 @@ FmXFilterCell::FmXFilterCell(DbGridColumn* pColumn, DbCellControl* pControl )
              ,m_aTextListeners(m_aMutex)
{

    DBG_ASSERT( m_pCellControl->ISA( DbFilterField ), "FmXFilterCell::FmXFilterCell: invalid cell control!" );
    DBG_ASSERT( dynamic_cast<const DbFilterField*>( m_pCellControl) !=  nullptr, "FmXFilterCell::FmXFilterCell: invalid cell control!" );
    static_cast< DbFilterField* >( m_pCellControl )->SetCommitHdl( LINK( this, FmXFilterCell, OnCommit ) );
}

diff --git a/svx/source/fmcomp/gridctrl.cxx b/svx/source/fmcomp/gridctrl.cxx
index fdd2bdd..d1ff468 100644
--- a/svx/source/fmcomp/gridctrl.cxx
+++ b/svx/source/fmcomp/gridctrl.cxx
@@ -2893,7 +2893,7 @@ CellController* DbGridControl::GetController(long /*nRow*/, sal_uInt16 nColumnId
            if (pReturn)
            {
                // if it is an edit row, it is possible to give it a forced read-only property
                if (!pReturn->ISA(EditCellController) && !pReturn->ISA(SpinCellController))
                if ( dynamic_cast<const EditCellController*>( pReturn) == nullptr && dynamic_cast<const SpinCellController*>( pReturn) == nullptr )
                    // controller could not be set to read-only in forceROController
                    if (!bInsert && !bUpdate)
                        // better use no controller than one without read-only
diff --git a/svx/source/form/filtnav.cxx b/svx/source/form/filtnav.cxx
index 05519e2..9f57e69b 100644
--- a/svx/source/form/filtnav.cxx
+++ b/svx/source/form/filtnav.cxx
@@ -176,7 +176,7 @@ FmFilterItem* FmFilterItems::Find( const ::sal_Int32 _nFilterComponentIndex ) co
            ++i
        )
    {
        FmFilterItem* pCondition = PTR_CAST( FmFilterItem, *i );
        FmFilterItem* pCondition = dynamic_cast<FmFilterItem*>( *i  );
        DBG_ASSERT( pCondition, "FmFilterItems::Find: Wrong element in container!" );
        if ( _nFilterComponentIndex == pCondition->GetComponentIndex() )
            return pCondition;
@@ -349,7 +349,7 @@ void FmFilterAdapter::setText(sal_Int32 nRowPos,
                              const FmFilterItem* pFilterItem,
                              const OUString& rText)
{
    FmFormItem* pFormItem = PTR_CAST( FmFormItem, pFilterItem->GetParent()->GetParent() );
    FmFormItem* pFormItem = dynamic_cast<FmFormItem*>( pFilterItem->GetParent()->GetParent()  );

    try
    {
@@ -424,7 +424,7 @@ void FmFilterAdapter::predicateExpressionChanged( const FilterEvent& _Event ) th

    const sal_Int32 nActiveTerm( xFilterController->getActiveTerm() );

    FmFilterItems* pFilter = PTR_CAST( FmFilterItems, pFormItem->GetChildren()[ nActiveTerm ] );
    FmFilterItems* pFilter = dynamic_cast<FmFilterItems*>( pFormItem->GetChildren()[ nActiveTerm ]  );
    FmFilterItem* pFilterItem = pFilter->Find( _Event.FilterComponent );
    if ( pFilterItem )
    {
@@ -666,7 +666,7 @@ FmFormItem* FmFilterModel::Find(const ::std::vector<FmFilterData*>& rItems, cons
    for (::std::vector<FmFilterData*>::const_iterator i = rItems.begin();
         i != rItems.end(); ++i)
    {
        FmFormItem* pForm = PTR_CAST(FmFormItem,*i);
        FmFormItem* pForm = dynamic_cast<FmFormItem*>( *i );
        if (pForm)
        {
            if ( xController == pForm->GetController() )
@@ -688,7 +688,7 @@ FmFormItem* FmFilterModel::Find(const ::std::vector<FmFilterData*>& rItems, cons
    for (::std::vector<FmFilterData*>::const_iterator i = rItems.begin();
         i != rItems.end(); ++i)
    {
        FmFormItem* pForm = PTR_CAST(FmFormItem,*i);
        FmFormItem* pForm = dynamic_cast<FmFormItem*>( *i );
        if (pForm)
        {
            if (xForm == pForm->GetController()->getModel())
@@ -741,7 +741,7 @@ void FmFilterModel::AppendFilterItems( FmFormItem& _rFormItem )
            ++iter
        )
    {
        if ((*iter)->ISA(FmFilterItems))
        if (dynamic_cast<const FmFilterItems*>(*iter) !=  nullptr)
            break;
    }

@@ -790,7 +790,7 @@ void FmFilterModel::Remove(FmFilterData* pData)
    DBG_ASSERT(i != rItems.end(), "FmFilterModel::Remove(): unknown Item");
    // position within the parent
    sal_Int32 nPos = i - rItems.begin();
    if (pData->ISA(FmFilterItems))
    if (dynamic_cast<const FmFilterItems*>( pData) !=  nullptr)
    {
        FmFormItem* pFormItem = static_cast<FmFormItem*>(pParent);

@@ -806,7 +806,7 @@ void FmFilterModel::Remove(FmFilterData* pData)
                while ( !rChildren.empty() )
                {
                    ::std::vector< FmFilterData* >::iterator removePos = rChildren.end() - 1;
                    FmFilterItem* pFilterItem = PTR_CAST( FmFilterItem, *removePos );
                    FmFilterItem* pFilterItem = dynamic_cast<FmFilterItem*>( *removePos  );
                    FmFilterAdapter::setText( nPos, pFilterItem, OUString() );
                    Remove( removePos );
                }
@@ -823,7 +823,7 @@ void FmFilterModel::Remove(FmFilterData* pData)
    }
    else // FormItems can not be deleted
    {
        FmFilterItem* pFilterItem = PTR_CAST(FmFilterItem, pData);
        FmFilterItem* pFilterItem = dynamic_cast<FmFilterItem*>( pData );

        // if its the last condition remove the parent
        if (rItems.size() == 1)
@@ -860,7 +860,7 @@ void FmFilterModel::Remove( const ::std::vector<FmFilterData*>::iterator& rPos )

bool FmFilterModel::ValidateText(FmFilterItem* pItem, OUString& rText, OUString& rErrorMsg) const
{
    FmFormItem* pFormItem = PTR_CAST( FmFormItem, pItem->GetParent()->GetParent() );
    FmFormItem* pFormItem = dynamic_cast<FmFormItem*>( pItem->GetParent()->GetParent()  );
    try
    {
        Reference< XFormController > xFormController( pFormItem->GetController() );
@@ -977,21 +977,21 @@ void FmFilterModel::EnsureEmptyFilterRows( FmParentData& _rItem )
{
    // checks whether for each form there's one free level for input
    ::std::vector< FmFilterData* >& rChildren = _rItem.GetChildren();
    bool bAppendLevel = _rItem.ISA( FmFormItem );
    bool bAppendLevel = dynamic_cast<const FmFormItem*>(&_rItem) !=  nullptr;

    for (   ::std::vector<FmFilterData*>::iterator i = rChildren.begin();
            i != rChildren.end();
            ++i
        )
    {
        FmFilterItems* pItems = PTR_CAST(FmFilterItems, *i);
        FmFilterItems* pItems = dynamic_cast<FmFilterItems*>( *i );
        if ( pItems && pItems->GetChildren().empty() )
        {
            bAppendLevel = false;
            break;
        }

        FmFormItem* pFormItem = PTR_CAST(FmFormItem, *i);
        FmFormItem* pFormItem = dynamic_cast<FmFormItem*>( *i );
        if (pFormItem)
        {
            EnsureEmptyFilterRows( *pFormItem );
@@ -1001,7 +1001,7 @@ void FmFilterModel::EnsureEmptyFilterRows( FmParentData& _rItem )

    if ( bAppendLevel )
    {
        FmFormItem* pFormItem = PTR_CAST( FmFormItem, &_rItem );
        FmFormItem* pFormItem = dynamic_cast<FmFormItem*>( &_rItem  );
        OSL_ENSURE( pFormItem, "FmFilterModel::EnsureEmptyFilterRows: no FmFormItem, but a FmFilterItems child?" );
        if ( pFormItem )
            AppendFilterItems( *pFormItem );
@@ -1193,7 +1193,7 @@ bool FmFilterNavigator::EditingEntry( SvTreeListEntry* pEntry, Selection& rSelec
    if (!SvTreeListBox::EditingEntry( pEntry, rSelection ))
        return false;

    return pEntry && static_cast<FmFilterData*>(pEntry->GetUserData())->ISA(FmFilterItem);
    return pEntry && dynamic_cast<const FmFilterItem*>(static_cast<FmFilterData*>(pEntry->GetUserData())) == nullptr;
}


@@ -1205,7 +1205,7 @@ bool FmFilterNavigator::EditedEntry( SvTreeListEntry* pEntry, const OUString& rN
    if (EditingCanceled())
        return true;

    DBG_ASSERT(static_cast<FmFilterData*>(pEntry->GetUserData())->ISA(FmFilterItem),
    DBG_ASSERT(dynamic_cast<const FmFilterItem*>(static_cast<FmFilterData*>(pEntry->GetUserData())) != nullptr,
                    "FmFilterNavigator::EditedEntry() wrong entry");

    OUString aText(comphelper::string::strip(rNewText, ' '));
@@ -1347,15 +1347,15 @@ sal_Int8 FmFilterNavigator::AcceptDrop( const AcceptDropEvent& rEvt )

    FmFilterData* pData = static_cast<FmFilterData*>(pDropTarget->GetUserData());
    FmFormItem* pForm = NULL;
    if (pData->ISA(FmFilterItem))
    if (dynamic_cast<const FmFilterItem*>(pData) !=  nullptr)
    {
        pForm = PTR_CAST(FmFormItem,pData->GetParent()->GetParent());
        pForm = dynamic_cast<FmFormItem*>( pData->GetParent()->GetParent() );
        if (pForm != m_aControlExchange->getFormItem())
            return DND_ACTION_NONE;
    }
    else if (pData->ISA(FmFilterItems))
    else if (dynamic_cast<const FmFilterItems*>( pData) !=  nullptr)
    {
        pForm = PTR_CAST(FmFormItem,pData->GetParent());
        pForm = dynamic_cast<FmFormItem*>( pData->GetParent() );
        if (pForm != m_aControlExchange->getFormItem())
            return DND_ACTION_NONE;
    }
@@ -1413,10 +1413,10 @@ void FmFilterNavigator::InitEntry(SvTreeListEntry* pEntry,
    SvTreeListBox::InitEntry( pEntry, rStr, rImg1, rImg2, eButtonKind );
    std::unique_ptr<SvLBoxString> pString;

    if (static_cast<FmFilterData*>(pEntry->GetUserData())->ISA(FmFilterItem))
    if (dynamic_cast<const FmFilterItem*>(static_cast<FmFilterData*>(pEntry->GetUserData())) != nullptr)
        pString.reset(new FmFilterString(pEntry, 0, rStr,
            static_cast<FmFilterItem*>(pEntry->GetUserData())->GetFieldName()));
    else if (static_cast<FmFilterData*>(pEntry->GetUserData())->ISA(FmFilterItems))
    else if (dynamic_cast<const FmFilterItems*>(static_cast<FmFilterData*>(pEntry->GetUserData())) != nullptr)
        pString.reset(new FmFilterItemsString(pEntry, 0, rStr));

    if (pString)
@@ -1434,21 +1434,21 @@ bool FmFilterNavigator::Select( SvTreeListEntry* pEntry, bool bSelect )
        if (bSelect)
        {
            FmFormItem* pFormItem = NULL;
            if (static_cast<FmFilterData*>(pEntry->GetUserData())->ISA(FmFilterItem))
            if ( dynamic_cast<const FmFilterItem*>(static_cast<FmFilterData*>(pEntry->GetUserData())) != nullptr)
                pFormItem = static_cast<FmFormItem*>(static_cast<FmFilterItem*>(pEntry->GetUserData())->GetParent()->GetParent());
            else if (static_cast<FmFilterData*>(pEntry->GetUserData())->ISA(FmFilterItems))
            else if (dynamic_cast<const FmFilterItems*>(static_cast<FmFilterData*>(pEntry->GetUserData())) != nullptr)
                pFormItem = static_cast<FmFormItem*>(static_cast<FmFilterItem*>(pEntry->GetUserData())->GetParent()->GetParent());
            else if (static_cast<FmFilterData*>(pEntry->GetUserData())->ISA(FmFormItem))
            else if (dynamic_cast<const FmFormItem*>(static_cast<FmFilterData*>(pEntry->GetUserData())) != nullptr)
                pFormItem = static_cast<FmFormItem*>(pEntry->GetUserData());

            if (pFormItem)
            {
                // will the controller be exchanged?
                if (static_cast<FmFilterData*>(pEntry->GetUserData())->ISA(FmFilterItem))
                if (dynamic_cast<const FmFilterItem*>(static_cast<FmFilterData*>(pEntry->GetUserData())) != nullptr)
                    m_pModel->SetCurrentItems(static_cast<FmFilterItems*>(static_cast<FmFilterItem*>(pEntry->GetUserData())->GetParent()));
                else if (static_cast<FmFilterData*>(pEntry->GetUserData())->ISA(FmFilterItems))
                else if (dynamic_cast<const FmFilterItems*>(static_cast<FmFilterData*>(pEntry->GetUserData())) != nullptr)
                    m_pModel->SetCurrentItems(static_cast<FmFilterItems*>(pEntry->GetUserData()));
                else if (static_cast<FmFilterData*>(pEntry->GetUserData())->ISA(FmFormItem))
                else if (dynamic_cast<const FmFormItem*>(static_cast<FmFilterData*>(pEntry->GetUserData())) != nullptr)
                    m_pModel->SetCurrentController(static_cast<FmFormItem*>(pEntry->GetUserData())->GetController());
            }
        }
@@ -1539,10 +1539,10 @@ FmFormItem* FmFilterNavigator::getSelectedFilterItems(::std::vector<FmFilterItem
         bHandled && pEntry != NULL;
         pEntry = NextSelected(pEntry))
    {
        FmFilterItem* pFilter = PTR_CAST(FmFilterItem, static_cast<FmFilterData*>(pEntry->GetUserData()));
        FmFilterItem* pFilter = dynamic_cast<FmFilterItem*>( static_cast<FmFilterData*>(pEntry->GetUserData()) );
        if (pFilter)
        {
            FmFormItem* pForm = PTR_CAST(FmFormItem,pFilter->GetParent()->GetParent());
            FmFormItem* pForm = dynamic_cast<FmFormItem*>( pFilter->GetParent()->GetParent() );
            if (!pForm)
                bHandled = false;
            else if (!pFirstItem)
@@ -1648,14 +1648,14 @@ void FmFilterNavigator::Command( const CommandEvent& rEvt )
                 pEntry = NextSelected(pEntry))
            {
                // don't delete forms
                FmFormItem* pForm = PTR_CAST(FmFormItem, static_cast<FmFilterData*>(pEntry->GetUserData()));
                FmFormItem* pForm = dynamic_cast<FmFormItem*>( static_cast<FmFilterData*>(pEntry->GetUserData()) );
                if (!pForm)
                    aSelectList.push_back(static_cast<FmFilterData*>(pEntry->GetUserData()));
            }
            if (aSelectList.size() == 1)
            {
                // don't delete the only empty row of a form
                FmFilterItems* pFilterItems = PTR_CAST(FmFilterItems, aSelectList[0]);
                FmFilterItems* pFilterItems = dynamic_cast<FmFilterItems*>( aSelectList[0] );
                if (pFilterItems && pFilterItems->GetChildren().empty()
                    && pFilterItems->GetParent()->GetChildren().size() == 1)
                    aSelectList.clear();
@@ -1667,7 +1667,7 @@ void FmFilterNavigator::Command( const CommandEvent& rEvt )
            aContextMenu.EnableItem( SID_FM_DELETE, !aSelectList.empty() );


            bool bEdit = PTR_CAST(FmFilterItem, static_cast<FmFilterData*>(pClicked->GetUserData())) != NULL &&
            bool bEdit = dynamic_cast<FmFilterItem*>( static_cast<FmFilterData*>(pClicked->GetUserData()) ) != NULL &&
                IsSelected(pClicked) && GetSelectionCount() == 1;

            aContextMenu.EnableItem( SID_FM_FILTER_EDIT,
@@ -1832,11 +1832,11 @@ void FmFilterNavigator::DeleteSelection()
         pEntry != NULL;
         pEntry = NextSelected(pEntry))
    {
        FmFilterItem* pFilterItem = PTR_CAST(FmFilterItem, static_cast<FmFilterData*>(pEntry->GetUserData()));
        FmFilterItem* pFilterItem = dynamic_cast<FmFilterItem*>( static_cast<FmFilterData*>(pEntry->GetUserData()) );
        if (pFilterItem && IsSelected(GetParent(pEntry)))
            continue;

        FmFormItem* pForm = PTR_CAST(FmFormItem, static_cast<FmFilterData*>(pEntry->GetUserData()));
        FmFormItem* pForm = dynamic_cast<FmFormItem*>( static_cast<FmFilterData*>(pEntry->GetUserData()) );
        if (!pForm)
            aEntryList.push_back(pEntry);
    }
@@ -1913,7 +1913,7 @@ void FmFilterNavigatorWin::StateChanged( sal_uInt16 nSID, SfxItemState eState, c

    if( eState >= SfxItemState::DEFAULT )
    {
        FmFormShell* pShell = PTR_CAST( FmFormShell, static_cast<const SfxObjectItem*>(pState)->GetShell() );
        FmFormShell* pShell = dynamic_cast<FmFormShell*>( static_cast<const SfxObjectItem*>(pState)->GetShell()  );
        UpdateContent( pShell );
    }
    else
diff --git a/svx/source/form/fmPropBrw.cxx b/svx/source/form/fmPropBrw.cxx
index 8f2c2a0..fda30fd 100644
--- a/svx/source/form/fmPropBrw.cxx
+++ b/svx/source/form/fmPropBrw.cxx
@@ -632,7 +632,7 @@ void FmPropBrw::StateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPool
    {
        if (eState >= SfxItemState::DEFAULT)
        {
            FmFormShell* pShell = PTR_CAST(FmFormShell, static_cast<const SfxObjectItem*>(pState)->GetShell());
            FmFormShell* pShell = dynamic_cast<FmFormShell*>( static_cast<const SfxObjectItem*>(pState)->GetShell() );
            InterfaceBag aSelection;
            if ( pShell )
                pShell->GetImpl()->getCurrentSelection( aSelection );
diff --git a/svx/source/form/fmdpage.cxx b/svx/source/form/fmdpage.cxx
index 8331124..56668da 100644
--- a/svx/source/form/fmdpage.cxx
+++ b/svx/source/form/fmdpage.cxx
@@ -96,7 +96,7 @@ SdrObject *SvxFmDrawPage::_CreateSdrObject( const ::com::sun::star::uno::Referen
{
    ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >  xForms;

    FmFormPage *pFmPage = PTR_CAST( FmFormPage, GetSdrPage() );
    FmFormPage *pFmPage = dynamic_cast<FmFormPage*>( GetSdrPage()  );
    if( pFmPage )
        xForms.set( pFmPage->GetForms(), css::uno::UNO_QUERY_THROW );

@@ -107,7 +107,7 @@ SdrObject *SvxFmDrawPage::_CreateSdrObject( const ::com::sun::star::uno::Referen
sal_Bool SAL_CALL SvxFmDrawPage::hasForms() throw( ::com::sun::star::uno::RuntimeException, std::exception )
{
    bool bHas = false;
    FmFormPage* pFormPage = PTR_CAST( FmFormPage, GetSdrPage() );
    FmFormPage* pFormPage = dynamic_cast<FmFormPage*>( GetSdrPage()  );
    if ( pFormPage )
        bHas = pFormPage->GetForms( false ).is();
    return bHas;
diff --git a/svx/source/form/fmexpl.cxx b/svx/source/form/fmexpl.cxx
index e237963..d84890f 100644
--- a/svx/source/form/fmexpl.cxx
+++ b/svx/source/form/fmexpl.cxx
@@ -307,7 +307,7 @@ bool FmFormData::IsEqualWithoutChildren( FmEntryData* pEntryData )
{
    if(this == pEntryData)
        return true;
    if( !pEntryData->ISA(FmFormData) )
    if( dynamic_cast<const FmFormData*>( pEntryData) ==  nullptr )
        return false;
    FmFormData* pFormData = static_cast<FmFormData*>(pEntryData);
    if( m_xForm.get() != pFormData->GetFormIface().get() )
@@ -471,7 +471,7 @@ bool FmControlData::IsEqualWithoutChildren( FmEntryData* pEntryData )
    if(this == pEntryData)
        return true;

    if( !pEntryData->ISA(FmControlData) )
    if( dynamic_cast<const FmControlData*>( pEntryData) ==  nullptr )
        return false;
    FmControlData* pControlData = static_cast<FmControlData*>(pEntryData);

@@ -538,7 +538,7 @@ namespace svxform

        if( eState >= SfxItemState::DEFAULT )
        {
            FmFormShell* pShell = PTR_CAST( FmFormShell, static_cast<const SfxObjectItem*>(pState)->GetShell() );
            FmFormShell* pShell = dynamic_cast<FmFormShell*>( static_cast<const SfxObjectItem*>(pState)->GetShell()  );
            UpdateContent( pShell );
        }
        else
diff --git a/svx/source/form/fmobj.cxx b/svx/source/form/fmobj.cxx
index 4246ca4..cd977a4 100644
--- a/svx/source/form/fmobj.cxx
+++ b/svx/source/form/fmobj.cxx
@@ -107,7 +107,7 @@ void FmFormObj::ClearObjEnv()

void FmFormObj::impl_checkRefDevice_nothrow( bool _force )
{
    const FmFormModel* pFormModel = PTR_CAST( FmFormModel, GetModel() );
    const FmFormModel* pFormModel = dynamic_cast<FmFormModel*>( GetModel()  );
    if ( !pFormModel || !pFormModel->ControlsUseRefDevice() )
        return;

@@ -174,11 +174,11 @@ void FmFormObj::SetPage(SdrPage* _pNewPage)
        return;
    }

    FmFormPage* pOldFormPage = PTR_CAST( FmFormPage, GetPage() );
    FmFormPage* pOldFormPage = dynamic_cast<FmFormPage*>( GetPage()  );
    if ( pOldFormPage )
        pOldFormPage->GetImpl().formObjectRemoved( *this );

    FmFormPage* pNewFormPage = PTR_CAST( FmFormPage, _pNewPage );
    FmFormPage* pNewFormPage = dynamic_cast<FmFormPage*>( _pNewPage  );
    if ( !pNewFormPage )
    {   // Maybe it makes sense to create an environment history here : if somebody set's our page to NULL, and we have a valid page before,
        // me may want to remember our place within the old page. For this we could create a new m_xEnvironmentHistory to store it.
@@ -623,7 +623,7 @@ void FmFormObj::SetUnoControlModel( const Reference< com::sun::star::awt::XContr
{
    SdrUnoObj::SetUnoControlModel( _rxModel );

    FmFormPage* pFormPage = PTR_CAST( FmFormPage, GetPage() );
    FmFormPage* pFormPage = dynamic_cast<FmFormPage*>( GetPage()  );
    if ( pFormPage )
        pFormPage->GetImpl().formModelAssigned( *this );

diff --git a/svx/source/form/fmpgeimp.cxx b/svx/source/form/fmpgeimp.cxx
index c0ca473..2a2aa6b 100644
--- a/svx/source/form/fmpgeimp.cxx
+++ b/svx/source/form/fmpgeimp.cxx
@@ -319,7 +319,7 @@ const Reference< css::form::XForms >& FmFormPageImpl::getForms( bool _bForceCrea
            m_aFormsCreationHdl.Call( *this );
        }

        FmFormModel* pFormsModel = PTR_CAST( FmFormModel, m_rPage.GetModel() );
        FmFormModel* pFormsModel = dynamic_cast<FmFormModel*>( m_rPage.GetModel()  );

        // give the newly created collection a place in the universe
        SfxObjectShell* pObjShell = pFormsModel ? pFormsModel->GetObjectShell() : NULL;
diff --git a/svx/source/form/fmshell.cxx b/svx/source/form/fmshell.cxx
index 05437f8..7ff0123 100644
--- a/svx/source/form/fmshell.cxx
+++ b/svx/source/form/fmshell.cxx
@@ -742,7 +742,7 @@ void FmFormShell::Execute(SfxRequest &rReq)
                const SfxPoolItem* pItem;
                if ( ( pArgs->GetItemState( FN_PARAM_1, true, &pItem ) ) == SfxItemState::SET )
                {
                    const SfxInt32Item* pTypedItem = PTR_CAST( SfxInt32Item, pItem );
                    const SfxInt32Item* pTypedItem = dynamic_cast<const SfxInt32Item* >( pItem );
                    if ( pTypedItem )
                        nRecord = std::max( pTypedItem->GetValue(), sal_Int32(0) );
                }
@@ -1185,7 +1185,7 @@ FmFormPage* FmFormShell::GetCurPage() const
{
    FmFormPage* pP = NULL;
    if (m_pFormView && m_pFormView->GetSdrPageView())
        pP = PTR_CAST(FmFormPage,m_pFormView->GetSdrPageView()->GetPage());
        pP = dynamic_cast<FmFormPage*>( m_pFormView->GetSdrPageView()->GetPage() );
    return pP;
}

@@ -1301,7 +1301,7 @@ namespace
        while ( aIter.IsMore() )
        {
            SdrObject* pObject = aIter.Next();
            SdrUnoObj* pUnoObject = pObject ? PTR_CAST( SdrUnoObj, pObject ) : NULL;
            SdrUnoObj* pUnoObject = pObject ? dynamic_cast<SdrUnoObj*>( pObject  ) : NULL;
            if ( !pUnoObject )
                continue;

diff --git a/svx/source/form/fmshimp.cxx b/svx/source/form/fmshimp.cxx
index 80b90a1..554bcf0 100644
--- a/svx/source/form/fmshimp.cxx
+++ b/svx/source/form/fmshimp.cxx
@@ -564,7 +564,7 @@ bool isControlList(const SdrMarkList& rMarkList)
    for (size_t i = 0; i < nMarkCount && bControlList; ++i)
    {
        SdrObject *pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
        E3dObject* pAs3DObject = PTR_CAST(E3dObject, pObj);
        E3dObject* pAs3DObject = dynamic_cast< E3dObject* >( pObj);
        // E3dObject's do not contain any 2D-objects (by definition)
        // we need this extra check here : an E3dObject->IsGroupObject says "YES", but an SdrObjListIter working
        // with an E3dObject doesn't give me any Nodes (E3dObject has a sub list, but no members in that list,
@@ -3658,7 +3658,7 @@ void FmXFormShell::viewActivated( FmFormView& _rCurrentView, bool _bSyncAction /
        // first-time initializations for the views
        if ( !_rCurrentView.GetImpl()->hasEverBeenActivated( ) )
        {
            _rCurrentView.GetImpl()->onFirstViewActivation( PTR_CAST( FmFormModel, _rCurrentView.GetModel() ) );
            _rCurrentView.GetImpl()->onFirstViewActivation( dynamic_cast<FmFormModel*>( _rCurrentView.GetModel() )  );
            _rCurrentView.GetImpl()->setHasBeenActivated( );
        }

@@ -3842,7 +3842,7 @@ void FmXFormShell::loadForms( FmFormPage* _pPage, const sal_uInt16 _nBehaviour /
    {
        // lock the undo env so the forms can change non-transient properties while loading
        // (without this my doc's modified flag would be set)
        FmFormModel* pModel = PTR_CAST( FmFormModel, _pPage->GetModel() );
        FmFormModel* pModel = dynamic_cast<FmFormModel*>( _pPage->GetModel()  );
        DBG_ASSERT( pModel, "FmXFormShell::loadForms: invalid model!" );
        if ( pModel )
            pModel->GetUndoEnv().Lock();
diff --git a/svx/source/form/fmtextcontrolshell.cxx b/svx/source/form/fmtextcontrolshell.cxx
index f3f24a5..b236e9ca 100644
--- a/svx/source/form/fmtextcontrolshell.cxx
+++ b/svx/source/form/fmtextcontrolshell.cxx
@@ -637,7 +637,7 @@ namespace svx

    void FmTextControlShell::executeAttributeDialog( AttributeSet _eSet, SfxRequest& _rReq )
    {
        const SvxFontListItem* pFontList = PTR_CAST( SvxFontListItem, m_pViewFrame->GetObjectShell()->GetItem( SID_ATTR_CHAR_FONTLIST ) );
        const SvxFontListItem* pFontList = dynamic_cast<const SvxFontListItem*>( m_pViewFrame->GetObjectShell()->GetItem( SID_ATTR_CHAR_FONTLIST )  );
        DBG_ASSERT( pFontList, "FmTextControlShell::executeAttributeDialog: no font list item!" );
        if ( !pFontList )
            return;
@@ -710,7 +710,7 @@ namespace svx
                            // handle them
                            DBG_ASSERT( aArgs.getLength() == 0, "FmTextControlShell::executeAttributeDialog: these are no UNO slots - are they?" );

                            const SfxBoolItem* pBoolItem = PTR_CAST( SfxBoolItem, pModifiedItem );
                            const SfxBoolItem* pBoolItem = dynamic_cast<const SfxBoolItem*>( pModifiedItem  );
                            DBG_ASSERT( pBoolItem, "FmTextControlShell::executeAttributeDialog: no bool item?!" );
                            if ( pBoolItem )
                            {
@@ -862,7 +862,7 @@ namespace svx
                const SfxPoolItem* pItem = aToggled.GetItem( nWhich );
                if ( ( SID_ATTR_CHAR_UNDERLINE == nSlot ) || ( SID_ATTR_CHAR_OVERLINE == nSlot ) )
                {
                    const SvxOverlineItem* pTextLine = PTR_CAST( SvxOverlineItem, pItem );
                    const SvxOverlineItem* pTextLine = dynamic_cast<const SvxOverlineItem*>( pItem  );
                    DBG_ASSERT( pTextLine, "FmTextControlShell::ExecuteTextAttribute: ooops - no underline/overline item!" );
                    if ( pTextLine )
                    {
@@ -876,7 +876,7 @@ namespace svx
                }
                else
                {
                    const SvxCrossedOutItem* pCrossedOut = PTR_CAST( SvxCrossedOutItem, pItem );
                    const SvxCrossedOutItem* pCrossedOut = dynamic_cast<const SvxCrossedOutItem*>( pItem  );
                    DBG_ASSERT( pCrossedOut, "FmTextControlShell::ExecuteTextAttribute: ooops - no CrossedOut item!" );
                    if ( pCrossedOut )
                    {
diff --git a/svx/source/form/fmundo.cxx b/svx/source/form/fmundo.cxx
index ae9d251..1281a81 100644
--- a/svx/source/form/fmundo.cxx
+++ b/svx/source/form/fmundo.cxx
@@ -208,7 +208,7 @@ void FmXUndoEnvironment::dispose()
    sal_uInt16 i;
    for (i = 0; i < nCount; i++)
    {
        FmFormPage* pPage = PTR_CAST( FmFormPage, rModel.GetPage(i) );
        FmFormPage* pPage = dynamic_cast<FmFormPage*>( rModel.GetPage(i)  );
        if ( pPage )
        {
            Reference< css::form::XForms > xForms = pPage->GetForms( false ).get();
@@ -220,7 +220,7 @@ void FmXUndoEnvironment::dispose()
    nCount = rModel.GetMasterPageCount();
    for (i = 0; i < nCount; i++)
    {
        FmFormPage* pPage = PTR_CAST( FmFormPage, rModel.GetMasterPage(i) );
        FmFormPage* pPage = dynamic_cast<FmFormPage*>( rModel.GetMasterPage(i)  );
        if ( pPage )
        {
            Reference< css::form::XForms > xForms = pPage->GetForms( false ).get();
@@ -258,7 +258,7 @@ void FmXUndoEnvironment::ModeChanged()
        sal_uInt16 i;
        for (i = 0; i < nCount; i++)
        {
            FmFormPage* pPage = PTR_CAST( FmFormPage, rModel.GetPage(i) );
            FmFormPage* pPage = dynamic_cast<FmFormPage*>( rModel.GetPage(i)  );
            if ( pPage )
            {
                Reference< css::form::XForms > xForms = pPage->GetForms( false ).get();
@@ -270,7 +270,7 @@ void FmXUndoEnvironment::ModeChanged()
        nCount = rModel.GetMasterPageCount();
        for (i = 0; i < nCount; i++)
        {
            FmFormPage* pPage = PTR_CAST( FmFormPage, rModel.GetMasterPage(i) );
            FmFormPage* pPage = dynamic_cast<FmFormPage*>( rModel.GetMasterPage(i)  );
            if ( pPage )
            {
                Reference< css::form::XForms > xForms = pPage->GetForms( false ).get();
@@ -340,7 +340,7 @@ void FmXUndoEnvironment::Inserted(SdrObject* pObj)
{
    if (pObj->GetObjInventor() == FmFormInventor)
    {
        FmFormObj* pFormObj = PTR_CAST(FmFormObj, pObj);
        FmFormObj* pFormObj = dynamic_cast<FmFormObj*>( pObj );
        Inserted( pFormObj );
    }
    else if (pObj->IsGroupObject())
@@ -454,7 +454,7 @@ void FmXUndoEnvironment::Removed(SdrObject* pObj)

    if (pObj->GetObjInventor() == FmFormInventor)
    {
        FmFormObj* pFormObj = PTR_CAST(FmFormObj, pObj);
        FmFormObj* pFormObj = dynamic_cast<FmFormObj*>( pObj );
        Removed(pFormObj);
    }
    else if (pObj->IsGroupObject())
diff --git a/svx/source/form/fmview.cxx b/svx/source/form/fmview.cxx
index a175699..62a6d77 100644
--- a/svx/source/form/fmview.cxx
+++ b/svx/source/form/fmview.cxx
@@ -100,8 +100,8 @@ void FmFormView::Init()
    // Model setzen
    SdrModel* pModel = GetModel();

    DBG_ASSERT( pModel->ISA(FmFormModel), "Falsches Model" );
    if( !pModel->ISA(FmFormModel) ) return;
    DBG_ASSERT( dynamic_cast<const FmFormModel*>( pModel) !=  nullptr, "Falsches Model" );
    if( dynamic_cast<const FmFormModel*>( pModel) ==  nullptr ) return;
    FmFormModel* pFormModel = static_cast<FmFormModel*>(pModel);


@@ -150,7 +150,7 @@ FmFormView::~FmFormView()
FmFormPage* FmFormView::GetCurPage()
{
    SdrPageView* pPageView = GetSdrPageView();
    FmFormPage*  pCurPage = pPageView ? PTR_CAST( FmFormPage, pPageView->GetPage() ) : NULL;
    FmFormPage*  pCurPage = pPageView ? dynamic_cast<FmFormPage*>( pPageView->GetPage()  ) : NULL;
    return pCurPage;
}

@@ -229,7 +229,7 @@ void FmFormView::ChangeDesignMode(bool bDesign)
    if (bDesign == IsDesignMode())
        return;

    FmFormModel* pModel = PTR_CAST(FmFormModel, GetModel());
    FmFormModel* pModel = dynamic_cast<FmFormModel*>( GetModel() );
    if (pModel)
    {   // fuer die Zeit des Uebergangs das Undo-Environment ausschalten, das sichert, dass man dort auch nicht-transiente
        // Properties mal eben aendern kann (sollte allerdings mit Vorsicht genossen und beim Rueckschalten des Modes
diff --git a/svx/source/form/fmvwimp.cxx b/svx/source/form/fmvwimp.cxx
index eba86b2..97d2ed0 100644
--- a/svx/source/form/fmvwimp.cxx
+++ b/svx/source/form/fmvwimp.cxx
@@ -549,7 +549,7 @@ PFormViewPageWindowAdapter FmXFormView::findWindow( const Reference< XControlCon

void FmXFormView::addWindow(const SdrPageWindow& rWindow)
{
    FmFormPage* pFormPage = PTR_CAST( FmFormPage, rWindow.GetPageView().GetPage() );
    FmFormPage* pFormPage = dynamic_cast<FmFormPage*>( rWindow.GetPageView().GetPage()  );
    if ( !pFormPage )
        return;

@@ -963,7 +963,7 @@ IMPL_LINK_NOARG_TYPED(FmXFormView, OnAutoFocus, void*, void)
    SdrPageView *pPageView = m_pView ? m_pView->GetSdrPageView() : NULL;
    SdrPage *pSdrPage = pPageView ? pPageView->GetPage() : NULL;
    // get the forms collection of the page we belong to
    FmFormPage* pPage = PTR_CAST( FmFormPage, pSdrPage );
    FmFormPage* pPage = dynamic_cast<FmFormPage*>( pSdrPage  );
    Reference< XIndexAccess > xForms( pPage ? Reference< XIndexAccess >( pPage->GetForms(), UNO_QUERY ) : Reference< XIndexAccess >() );

    const PFormViewPageWindowAdapter pAdapter = m_aPageWindowAdapters.empty() ? NULL : m_aPageWindowAdapters[0];
diff --git a/svx/source/form/navigatortree.cxx b/svx/source/form/navigatortree.cxx
index 88b1850..835beff 100644
--- a/svx/source/form/navigatortree.cxx
+++ b/svx/source/form/navigatortree.cxx
@@ -687,14 +687,14 @@ namespace svxform
    bool NavigatorTree::IsFormEntry( SvTreeListEntry* pEntry )
    {
        FmEntryData* pEntryData = static_cast<FmEntryData*>(pEntry->GetUserData());
        return !pEntryData || pEntryData->ISA(FmFormData);
        return !pEntryData || dynamic_cast<const FmFormData*>( pEntryData) !=  nullptr;
    }


    bool NavigatorTree::IsFormComponentEntry( SvTreeListEntry* pEntry )
    {
        FmEntryData* pEntryData = static_cast<FmEntryData*>(pEntry->GetUserData());
        return pEntryData && pEntryData->ISA(FmControlData);
        return pEntryData && dynamic_cast<const FmControlData*>( pEntryData) !=  nullptr;
    }


@@ -1071,7 +1071,7 @@ namespace svxform
            Reference< XIndexContainer >  xContainer(xCurrentChild->getParent(), UNO_QUERY);

            FmFormData* pCurrentParentUserData = static_cast<FmFormData*>(pCurrentUserData->GetParent());
            DBG_ASSERT(pCurrentParentUserData == NULL || pCurrentParentUserData->ISA(FmFormData), "NavigatorTree::implExecuteDataTransfer: invalid parent");
            DBG_ASSERT(pCurrentParentUserData == NULL || dynamic_cast<const FmFormData*>( pCurrentParentUserData) !=  nullptr, "NavigatorTree::implExecuteDataTransfer: invalid parent");

            // remove from parent
            if (pCurrentParentUserData)
@@ -1438,9 +1438,9 @@ namespace svxform

        // create base name
        OUString aBaseName;
        if( pEntryData->ISA(FmFormData) )
        if( dynamic_cast<const FmFormData*>( pEntryData) !=  nullptr )
            aBaseName = SVX_RESSTR( RID_STR_STDFORMNAME );
        else if( pEntryData->ISA(FmControlData) )
        else if( dynamic_cast<const FmControlData*>( pEntryData) !=  nullptr )
            aBaseName = SVX_RESSTR( RID_STR_CONTROL );


@@ -1714,7 +1714,7 @@ namespace svxform
            FmEntryData* pCurrent = static_cast<FmEntryData*>((*it)->GetUserData());

            // a form ?
            bool bIsForm = pCurrent->ISA(FmFormData);
            bool bIsForm = dynamic_cast<const FmFormData*>( pCurrent) !=  nullptr;

            // because deletion is done by the view, and i build on its MarkList,
            // but normally only direct controls, no indirect ones, are marked in a marked form,
@@ -1791,7 +1791,7 @@ namespace svxform

            // one remaining subtile problem, before deleting it : if it's a form and the shell
            // knows it as CurrentObject, i have to tell it something else
            if (pCurrent->ISA(FmFormData))
            if (dynamic_cast<const FmFormData*>( pCurrent) !=  nullptr)
            {
                Reference< XForm >  xCurrentForm( static_cast< FmFormData* >( pCurrent )->GetFormIface() );
                if ( pFormShell->GetImpl()->getCurrentForm() == xCurrentForm )  // shell knows form to be deleted ?
@@ -2009,7 +2009,7 @@ namespace svxform
        // but mechanism doesn't work, if form is empty for example
        if ((m_arrCurrentSelection.size() == 1) && (m_nFormsSelected == 1))
        {
            FmFormData* pSingleSelectionData = PTR_CAST( FmFormData, static_cast< FmEntryData* >( FirstSelected()->GetUserData() ) );
            FmFormData* pSingleSelectionData = dynamic_cast<FmFormData*>( static_cast< FmEntryData* >( FirstSelected()->GetUserData() )  );
            DBG_ASSERT( pSingleSelectionData, "NavigatorTree::SynchronizeMarkList: invalid selected form!" );
            if ( pSingleSelectionData )
            {
@@ -2108,12 +2108,12 @@ namespace svxform
        for( size_t i = 0; i < pChildList->size(); ++i )
        {
            FmEntryData* pEntryData = pChildList->at( i );
            if( pEntryData->ISA(FmControlData) )
            if( dynamic_cast<const FmControlData*>( pEntryData) !=  nullptr )
            {
                pControlData = static_cast<FmControlData*>(pEntryData);
                _rObjects.insert(pControlData->GetFormComponent());
            } // if( pEntryData->ISA(FmControlData) )
            else if (bDeep && (pEntryData->ISA(FmFormData)))
            } // if( dynamic_cast<const FmControlData*>( pEntryData) !=  nullptr )
            else if (bDeep && (dynamic_cast<const FmFormData*>( pEntryData) !=  nullptr))
                CollectObjects(static_cast<FmFormData*>(pEntryData), bDeep, _rObjects);
        } // for( sal_uInt32 i=0; i<pChildList->Count(); i++ )
    }
diff --git a/svx/source/form/navigatortreemodel.cxx b/svx/source/form/navigatortreemodel.cxx
index b0c2071..87d0670 100644
--- a/svx/source/form/navigatortreemodel.cxx
+++ b/svx/source/form/navigatortreemodel.cxx
@@ -144,7 +144,7 @@ namespace svxform
        FmEntryData* pEntryData = m_pNavModel->FindData(xReplaced, m_pNavModel->GetRootList());
        if (pEntryData)
        {
            if (pEntryData->ISA(FmControlData))
            if (dynamic_cast<const FmControlData*>( pEntryData) !=  nullptr)
            {
                Reference< XFormComponent >  xComp;
                evt.Element >>= xComp;
@@ -152,7 +152,7 @@ namespace svxform
                    // FmControlData should be coupled with XFormComponent
                m_pNavModel->ReplaceFormComponent(xReplaced, xComp);
            }
            else if (pEntryData->ISA(FmFormData))
            else if (dynamic_cast<const FmFormData*>( pEntryData) !=  nullptr)
            {
                OSL_FAIL("replacing forms not implemented yet !");
            }
@@ -266,7 +266,7 @@ namespace svxform
        if (bAlterModel)
        {
            OUString aStr;
            if (pEntry->ISA(FmFormData))
            if (dynamic_cast<const FmFormData*>( pEntry) !=  nullptr)
                aStr = SVX_RESSTR(RID_STR_FORM);
            else
                aStr = SVX_RESSTR(RID_STR_CONTROL);
@@ -330,7 +330,7 @@ namespace svxform


        // Remove data from model
        if (pEntry->ISA(FmFormData))
        if (dynamic_cast<const FmFormData*>( pEntry) !=  nullptr)
        {
            Reference< XContainer >  xContainer(xElement, UNO_QUERY);
            if (xContainer.is())
@@ -371,7 +371,7 @@ namespace svxform
        if (bAlterModel)
        {
            OUString        aStr;
            if (pEntry->ISA(FmFormData))
            if (dynamic_cast<const FmFormData*>( pEntry) !=  nullptr)
                aStr = SVX_RESSTR(RID_STR_FORM);
            else
                aStr = SVX_RESSTR(RID_STR_CONTROL);
@@ -385,7 +385,7 @@ namespace svxform
        }

        // now real deletion of data form model
        if (pEntry->ISA(FmFormData))
        if (dynamic_cast<const FmFormData*>( pEntry) !=  nullptr)
            RemoveForm(static_cast<FmFormData*>(pEntry));
        else
            RemoveFormComponent(static_cast<FmControlData*>(pEntry));
@@ -457,9 +457,9 @@ namespace svxform


            // Child is form -> recursive call
            if( pEntryData->ISA(FmFormData) )
            if( dynamic_cast<const FmFormData*>( pEntryData) !=  nullptr )
                RemoveForm( static_cast<FmFormData*>(pEntryData));
            else if( pEntryData->ISA(FmControlData) )
            else if( dynamic_cast<const FmControlData*>( pEntryData) !=  nullptr )
                RemoveFormComponent(static_cast<FmControlData*>(pEntryData));
        }

@@ -499,7 +499,7 @@ namespace svxform
        for( size_t i = pChildList->size(); i > 0; )
        {
            FmEntryData* pChildData = pChildList->at( --i );
            if( pChildData->ISA(FmFormData) )
            if( dynamic_cast<const FmFormData*>( pChildData) !=  nullptr )
                ClearBranch( static_cast<FmFormData*>(pChildData) );

            pChildList->remove( pChildData );
@@ -624,8 +624,8 @@ namespace svxform
    )
    {
        FmEntryData* pData = FindData(xOld, GetRootList());
        assert(pData && pData->ISA(FmControlData)); //NavigatorTreeModel::ReplaceFormComponent : invalid argument
        if (!pData || !pData->ISA(FmControlData))
        assert(pData && dynamic_cast<const FmControlData*>( pData) !=  nullptr); //NavigatorTreeModel::ReplaceFormComponent : invalid argument
        if (!pData || dynamic_cast<const FmControlData*>( pData) ==  nullptr)
            return;
        static_cast<FmControlData*>(pData)->ModelReplaced( xNew, m_aNormalImages );

@@ -675,7 +675,7 @@ namespace svxform
            if (rText == aEntryText)
                return pEntryData;

            if( bRecurs && pEntryData->ISA(FmFormData) )
            if( bRecurs && dynamic_cast<const FmFormData*>( pEntryData) !=  nullptr )
            {
                pChildData = FindData( rText, static_cast<FmFormData*>(pEntryData) );
                if( pChildData )
@@ -771,7 +771,7 @@ namespace svxform

    bool NavigatorTreeModel::InsertFormComponent(FmNavRequestSelectHint& rHint, SdrObject* pObject)
    {
        if ( pObject->ISA(SdrObjGroup) )
        if ( dynamic_cast<const SdrObjGroup*>( pObject) !=  nullptr )
        {   // descend recursively
            const SdrObjList *pChildren = static_cast<SdrObjGroup*>(pObject)->GetSubList();
            for ( size_t i=0; i<pChildren->GetObjCount(); ++i )
@@ -913,14 +913,14 @@ namespace svxform
        // get PropertySet
        Reference< XFormComponent >  xFormComponent;

        if( pEntryData->ISA(FmFormData) )
        if( dynamic_cast<const FmFormData*>( pEntryData) !=  nullptr )
        {
            FmFormData* pFormData = static_cast<FmFormData*>(pEntryData);
            Reference< XForm >  xForm( pFormData->GetFormIface());
            xFormComponent = xForm;
        }

        if( pEntryData->ISA(FmControlData) )
        if( dynamic_cast<const FmControlData*>( pEntryData) !=  nullptr )
        {
            FmControlData* pControlData = static_cast<FmControlData*>(pEntryData);
            xFormComponent = pControlData->GetFormComponent();
diff --git a/svx/source/form/tabwin.cxx b/svx/source/form/tabwin.cxx
index 778cfe4..cc3f76b 100644
--- a/svx/source/form/tabwin.cxx
+++ b/svx/source/form/tabwin.cxx
@@ -292,7 +292,7 @@ void FmFieldWin::StateChanged(sal_uInt16 nSID, SfxItemState eState, const SfxPoo

    if (eState >= SfxItemState::DEFAULT)
    {
        FmFormShell* pShell = PTR_CAST(FmFormShell, static_cast<const SfxObjectItem*>(pState)->GetShell());
        FmFormShell* pShell = dynamic_cast<FmFormShell*>( static_cast<const SfxObjectItem*>(pState)->GetShell() );
        UpdateContent(pShell);
    }
    else
diff --git a/svx/source/form/tbxform.cxx b/svx/source/form/tbxform.cxx
index a8ea0b9..dd8f6ac 100644
--- a/svx/source/form/tbxform.cxx
+++ b/svx/source/form/tbxform.cxx
@@ -123,7 +123,7 @@ void SvxFmTbxCtlAbsRec::StateChanged( sal_uInt16 nSID, SfxItemState eState, cons

    if (pState)
    {
        const SfxInt32Item* pItem = PTR_CAST( SfxInt32Item, pState );
        const SfxInt32Item* pItem = dynamic_cast< const SfxInt32Item* >( pState );
        DBG_ASSERT( pItem, "SvxFmTbxCtlAbsRec::StateChanged: invalid item!" );
        pWin->SetValue( pItem ? pItem->GetValue() : -1 );
    }
diff --git a/svx/source/gallery2/galmisc.cxx b/svx/source/gallery2/galmisc.cxx
index 37f23a0..9271154 100644
--- a/svx/source/gallery2/galmisc.cxx
+++ b/svx/source/gallery2/galmisc.cxx
@@ -162,7 +162,7 @@ bool CreateIMapGraphic( const FmFormModel& rModel, Graphic& rGraphic, ImageMap& 
        const SdrPage*      pPage = rModel.GetPage( 0 );
        const SdrObject*    pObj = pPage->GetObj( 0 );

        if ( pPage->GetObjCount() == 1 && pObj->ISA( SdrGrafObj ) )
        if ( pPage->GetObjCount() == 1 && dynamic_cast<const SdrGrafObj*>( pObj) !=  nullptr )
        {
            const sal_uInt16 nCount = pObj->GetUserDataCount();

diff --git a/svx/source/mnuctrls/SmartTagCtl.cxx b/svx/source/mnuctrls/SmartTagCtl.cxx
index 3dbfc6d..4dd8125 100644
--- a/svx/source/mnuctrls/SmartTagCtl.cxx
+++ b/svx/source/mnuctrls/SmartTagCtl.cxx
@@ -142,7 +142,7 @@ void SvxSmartTagsControl::StateChanged( sal_uInt16, SfxItemState eState, const S

    if ( SfxItemState::DEFAULT == eState )
    {
        const SvxSmartTagItem* pSmartTagItem = PTR_CAST( SvxSmartTagItem, pState );
        const SvxSmartTagItem* pSmartTagItem = dynamic_cast<const SvxSmartTagItem*>( pState  );
        if ( 0 != pSmartTagItem )
        {
            delete mpSmartTagItem;
diff --git a/svx/source/mnuctrls/clipboardctl.cxx b/svx/source/mnuctrls/clipboardctl.cxx
index e085c20..721e0ce 100644
--- a/svx/source/mnuctrls/clipboardctl.cxx
+++ b/svx/source/mnuctrls/clipboardctl.cxx
@@ -63,7 +63,7 @@ SvxClipBoardControl::~SvxClipBoardControl()

VclPtr<SfxPopupWindow> SvxClipBoardControl::CreatePopupWindow()
{
    const SvxClipboardFormatItem* pFmtItem = PTR_CAST( SvxClipboardFormatItem, pClipboardFmtItem );
    const SvxClipboardFormatItem* pFmtItem = dynamic_cast<SvxClipboardFormatItem*>( pClipboardFmtItem  );
    if ( pFmtItem )
    {
        if (pPopup)
diff --git a/svx/source/mnuctrls/fntctl.cxx b/svx/source/mnuctrls/fntctl.cxx
index 6c2f18d..7f6060b 100644
--- a/svx/source/mnuctrls/fntctl.cxx
+++ b/svx/source/mnuctrls/fntctl.cxx
@@ -99,7 +99,7 @@ void SvxFontMenuControl::StateChanged(
    {
        if ( !pMenu->GetItemCount() )
            FillMenu();
        const SvxFontItem* pFontItem = PTR_CAST( SvxFontItem, pState );
        const SvxFontItem* pFontItem = dynamic_cast<const SvxFontItem*>( pState  );
        OUString aFont;

        if ( pFontItem )
diff --git a/svx/source/mnuctrls/fntszctl.cxx b/svx/source/mnuctrls/fntszctl.cxx
index 34f9d6f..215cd44 100644
--- a/svx/source/mnuctrls/fntszctl.cxx
+++ b/svx/source/mnuctrls/fntszctl.cxx
@@ -83,10 +83,10 @@ void SvxFontSizeMenuControl::StateChanged(

    if ( SfxItemState::DEFAULT == eState )
    {
        if ( pState->ISA(SvxFontHeightItem) )
        if ( dynamic_cast<const SvxFontHeightItem*>( pState) !=  nullptr )
        {
            const SvxFontHeightItem* pItem =
                PTR_CAST( SvxFontHeightItem, pState );
                dynamic_cast<const SvxFontHeightItem*>( pState  );
            long nVal = 0;

            if ( pItem )
@@ -106,9 +106,9 @@ void SvxFontSizeMenuControl::StateChanged(
            }
            pMenu->SetCurHeight( nVal );
        }
        else if ( pState->ISA(SvxFontItem) )
        else if ( dynamic_cast<const SvxFontItem*>( pState) !=  nullptr )
        {
            const SvxFontItem* pItem = PTR_CAST( SvxFontItem, pState );
            const SvxFontItem* pItem = dynamic_cast<const SvxFontItem*>( pState  );

            if ( pItem )
            {
diff --git a/svx/source/sdr/contact/objectcontactofpageview.cxx b/svx/source/sdr/contact/objectcontactofpageview.cxx
index 05c6ab4..f27bfdd 100644
--- a/svx/source/sdr/contact/objectcontactofpageview.cxx
+++ b/svx/source/sdr/contact/objectcontactofpageview.cxx
@@ -329,7 +329,7 @@ namespace sdr

            if(pActiveGroupList)
            {
                if(pActiveGroupList->ISA(SdrPage))
                if(dynamic_cast<const SdrPage*>( pActiveGroupList) !=  nullptr)
                {
                    // It's a Page itself
                    return &(static_cast<SdrPage*>(pActiveGroupList)->GetViewContact());
diff --git a/svx/source/sdr/contact/viewcontactofsdrobj.cxx b/svx/source/sdr/contact/viewcontactofsdrobj.cxx
index 5e457dc..6ff5375 100644
--- a/svx/source/sdr/contact/viewcontactofsdrobj.cxx
+++ b/svx/source/sdr/contact/viewcontactofsdrobj.cxx
@@ -52,7 +52,7 @@ ViewContactOfSdrObj::ViewContactOfSdrObj(SdrObject& rObj)
    meRememberedAnimationKind(SDRTEXTANI_NONE)
{
    // init AnimationKind
    if(GetSdrObject().ISA(SdrTextObj))
    if(dynamic_cast<const SdrTextObj*>( &GetSdrObject() ) != nullptr)
    {
        SdrTextObj& rTextObj = static_cast<SdrTextObj&>(GetSdrObject());
        meRememberedAnimationKind = rTextObj.GetTextAniKind();
@@ -90,7 +90,7 @@ ViewContact* ViewContactOfSdrObj::GetParentContact() const

    if(pObjList)
    {
        if(pObjList->ISA(SdrPage))
        if(dynamic_cast<const SdrPage*>( pObjList) !=  nullptr)
        {
            // Is a page
            pRetval = &(static_cast<SdrPage*>(pObjList)->GetViewContact());
@@ -112,7 +112,7 @@ ViewContact* ViewContactOfSdrObj::GetParentContact() const
void ViewContactOfSdrObj::ActionChanged()
{
    // look for own changes
    if(GetSdrObject().ISA(SdrTextObj))
    if(dynamic_cast<const SdrTextObj*>( &GetSdrObject() ) != nullptr)
    {
        SdrTextObj& rTextObj = static_cast<SdrTextObj&>(GetSdrObject());

diff --git a/svx/source/sdr/properties/e3dsceneproperties.cxx b/svx/source/sdr/properties/e3dsceneproperties.cxx
index 25c9ff6..3494219 100644
--- a/svx/source/sdr/properties/e3dsceneproperties.cxx
+++ b/svx/source/sdr/properties/e3dsceneproperties.cxx
@@ -80,7 +80,7 @@ namespace sdr
            {
                SdrObject* pObj = pSub->GetObj(a);

                if(pObj && pObj->ISA(E3dCompoundObject))
                if(pObj && dynamic_cast<const E3dCompoundObject* >(pObj) !=  nullptr)
                {
                    const SfxItemSet& rSet = pObj->GetMergedItemSet();
                    SfxWhichIter aIter(rSet);
@@ -135,7 +135,7 @@ namespace sdr
                    {
                        SdrObject* pObj = pSub->GetObj(a);

                        if(pObj && pObj->ISA(E3dCompoundObject))
                        if(pObj && dynamic_cast<const E3dCompoundObject* >(pObj) !=  nullptr)
                        {
                            // set merged ItemSet at contained 3d object.
                            pObj->SetMergedItemSet(*pNewSet, bClearAllItems);
@@ -291,7 +291,7 @@ namespace sdr
                    while(a3DIterator.IsMore())
                    {
                        E3dObject* pObj = static_cast<E3dObject*>(a3DIterator.Next());
                        DBG_ASSERT(pObj->ISA(E3dObject), "In scenes there are only 3D objects allowed (!)");
                        DBG_ASSERT(dynamic_cast<const E3dObject* >(pObj) !=  nullptr, "In scenes there are only 3D objects allowed (!)");
                        pObj->GetProperties().MoveToItemPool(pSrcPool, pDestPool, pNewModel);
                    }
                }
diff --git a/svx/source/sdr/properties/itemsettools.cxx b/svx/source/sdr/properties/itemsettools.cxx
index 77ca0bd..e97c447 100644
--- a/svx/source/sdr/properties/itemsettools.cxx
+++ b/svx/source/sdr/properties/itemsettools.cxx
@@ -36,7 +36,7 @@ namespace sdr
    {
        ItemChangeBroadcaster::ItemChangeBroadcaster(const SdrObject& rObj)
        {
            if(rObj.ISA(SdrObjGroup))
            if(dynamic_cast<const SdrObjGroup*>( &rObj ) !=  nullptr)
            {
                SdrObjListIter aIter(static_cast<const SdrObjGroup&>(rObj), IM_DEEPNOGROUPS);
                mpData = new RectangleVector;
diff --git a/svx/source/sdr/properties/properties.cxx b/svx/source/sdr/properties/properties.cxx
index 9ab5f2a..5c2029f 100644
--- a/svx/source/sdr/properties/properties.cxx
+++ b/svx/source/sdr/properties/properties.cxx
@@ -140,7 +140,7 @@ namespace sdr
            //}

            // invalidate all new rectangles
            if(GetSdrObject().ISA(SdrObjGroup))
            if(dynamic_cast<const SdrObjGroup*>( &GetSdrObject() ) != nullptr)
            {
                SdrObjListIter aIter(static_cast<SdrObjGroup&>(GetSdrObject()), IM_DEEPNOGROUPS);

diff --git a/svx/source/sdr/properties/textproperties.cxx b/svx/source/sdr/properties/textproperties.cxx
index 7bb4e4a..02a6dbf 100644
--- a/svx/source/sdr/properties/textproperties.cxx
+++ b/svx/source/sdr/properties/textproperties.cxx
@@ -473,7 +473,7 @@ namespace sdr
                                                {
                                                    const SvxFieldData* pData = pFieldItem->GetField();

                                                    if(pData && pData->ISA(SvxURLField))
                                                    if(pData && dynamic_cast<const SvxURLField*>( pData) !=  nullptr)
                                                    {
                                                        bHasURL = true;
                                                        break;
diff --git a/svx/source/sidebar/SelectionAnalyzer.cxx b/svx/source/sidebar/SelectionAnalyzer.cxx
index e21eea0..2e05c37 100644
--- a/svx/source/sidebar/SelectionAnalyzer.cxx
+++ b/svx/source/sidebar/SelectionAnalyzer.cxx
@@ -44,7 +44,7 @@ EnumContext::Context SelectionAnalyzer::GetContextForSelection_SC (const SdrMark
        case 1:
        {
            SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
            if ( pObj->ISA(SdrTextObj) && static_cast<SdrTextObj*>(pObj)->IsInEditMode() )
            if ( dynamic_cast<const SdrTextObj*>( pObj) != nullptr && static_cast<SdrTextObj*>(pObj)->IsInEditMode() )
            {
                eContext = EnumContext::Context_DrawText;
            }
@@ -126,7 +126,7 @@ EnumContext::Context SelectionAnalyzer::GetContextForSelection_SD (
        case 1:
        {
            SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
            if (pObj->ISA(SdrTextObj) && static_cast<SdrTextObj*>(pObj)->IsInEditMode())
            if (dynamic_cast<const SdrTextObj*>( pObj) != nullptr && static_cast<SdrTextObj*>(pObj)->IsInEditMode())
            {
                if (pObj->GetObjIdentifier() == OBJ_TABLE)
                {
diff --git a/svx/source/sidebar/text/TextPropertyPanel.cxx b/svx/source/sidebar/text/TextPropertyPanel.cxx
index 3ba3dd7..4d7cee4 100644
--- a/svx/source/sidebar/text/TextPropertyPanel.cxx
+++ b/svx/source/sidebar/text/TextPropertyPanel.cxx
@@ -261,7 +261,7 @@ void TextPropertyPanel::NotifyItemUpdate (
    {
    case SID_ATTR_CHAR_FONTHEIGHT:
        {
            if (  eState >= SfxItemState::DEFAULT && pState->ISA(SvxFontHeightItem) )
            if (  eState >= SfxItemState::DEFAULT && dynamic_cast<const SvxFontHeightItem*>( pState) !=  nullptr )
                mpHeightItem = const_cast<SvxFontHeightItem*>(static_cast<const SvxFontHeightItem*>(pState));
            else
                mpHeightItem = NULL;
@@ -269,7 +269,7 @@ void TextPropertyPanel::NotifyItemUpdate (
        break;
    case SID_ATTR_CHAR_UNDERLINE:
        {
            if( eState >= SfxItemState::DEFAULT && pState->ISA(SvxUnderlineItem) )
            if( eState >= SfxItemState::DEFAULT && dynamic_cast<const SvxUnderlineItem*>( pState) !=  nullptr )
            {
                const SvxUnderlineItem* pItem = static_cast<const SvxUnderlineItem*>(pState);
                meUnderline = (FontUnderline)pItem->GetValue();
@@ -285,7 +285,7 @@ void TextPropertyPanel::NotifyItemUpdate (
            {
                mbKernLBAvailable = true;

                if(pState->ISA(SvxKerningItem))
                if(dynamic_cast<const SvxKerningItem*>( pState) !=  nullptr)
                {
                    const SvxKerningItem* pKerningItem = static_cast<const SvxKerningItem*>(pState);
                    mlKerning = (long)pKerningItem->GetValue();
diff --git a/svx/source/stbctrls/insctrl.cxx b/svx/source/stbctrls/insctrl.cxx
index 422c12b..128f8c9 100644
--- a/svx/source/stbctrls/insctrl.cxx
+++ b/svx/source/stbctrls/insctrl.cxx
@@ -49,7 +49,7 @@ void SvxInsertStatusBarControl::StateChanged( sal_uInt16 , SfxItemState eState,
        GetStatusBar().SetItemText( GetId(), "" );
    else
    {
        DBG_ASSERT( pState->ISA( SfxBoolItem ), "invalid item type" );
        DBG_ASSERT( dynamic_cast<const SfxBoolItem*>( pState) !=  nullptr, "invalid item type" );
        const SfxBoolItem* pItem = static_cast<const SfxBoolItem*>(pState);
        bInsert = pItem->GetValue();

diff --git a/svx/source/stbctrls/modctrl.cxx b/svx/source/stbctrls/modctrl.cxx
index d22b3a5..4783507 100644
--- a/svx/source/stbctrls/modctrl.cxx
+++ b/svx/source/stbctrls/modctrl.cxx
@@ -88,7 +88,7 @@ void SvxModifyControl::StateChanged( sal_uInt16, SfxItemState eState,
    if ( SfxItemState::DEFAULT != eState )
        return;

    DBG_ASSERT( pState->ISA( SfxBoolItem ), "invalid item type" );
    DBG_ASSERT( dynamic_cast<const SfxBoolItem*>( pState) !=  nullptr, "invalid item type" );
    const SfxBoolItem* pItem = static_cast<const SfxBoolItem*>(pState);
    mxImpl->maIdle.Stop();

diff --git a/svx/source/stbctrls/pszctrl.cxx b/svx/source/stbctrls/pszctrl.cxx
index 4dd90d9..0d15829 100644
--- a/svx/source/stbctrls/pszctrl.cxx
+++ b/svx/source/stbctrls/pszctrl.cxx
@@ -238,7 +238,7 @@ void SvxPosSizeStatusBarControl::StateChanged( sal_uInt16 nSID, SfxItemState eSt
        if ( eState == SfxItemState::DEFAULT )
        {
            pImp->bHasMenu = true;
            if ( pState && pState->ISA(SfxUInt16Item) )
            if ( pState && dynamic_cast< const SfxUInt16Item* >(pState) !=  nullptr )
                pImp->nFunction = static_cast<const SfxUInt16Item*>(pState)->GetValue();
        }
        else
@@ -260,21 +260,21 @@ void SvxPosSizeStatusBarControl::StateChanged( sal_uInt16 nSID, SfxItemState eSt
            SAL_WARN( "svx.stbcrtls","unknown slot id");
        }
    }
    else if ( pState->ISA( SfxPointItem ) )
    else if ( dynamic_cast<const SfxPointItem*>( pState) !=  nullptr )
    {
        // show position
        pImp->aPos = static_cast<const SfxPointItem*>(pState)->GetValue();
        pImp->bPos = true;
        pImp->bTable = false;
    }
    else if ( pState->ISA( SvxSizeItem ) )
    else if ( dynamic_cast<const SvxSizeItem*>( pState) !=  nullptr )
    {
        // show size
        pImp->aSize = static_cast<const SvxSizeItem*>(pState)->GetSize();
        pImp->bSize = true;
        pImp->bTable = false;
    }
    else if ( pState->ISA( SfxStringItem ) )
    else if ( dynamic_cast<const SfxStringItem*>( pState) !=  nullptr )
    {
        // show string (table cel or different)
        pImp->aStr = static_cast<const SfxStringItem*>(pState)->GetValue();
diff --git a/svx/source/stbctrls/selctrl.cxx b/svx/source/stbctrls/selctrl.cxx
index 49bc531..773d0f6 100644
--- a/svx/source/stbctrls/selctrl.cxx
+++ b/svx/source/stbctrls/selctrl.cxx
@@ -95,7 +95,7 @@ void SvxSelectionModeControl::StateChanged( sal_uInt16, SfxItemState eState,
{
    if ( SfxItemState::DEFAULT == eState )
    {
        DBG_ASSERT( pState->ISA( SfxUInt16Item ), "invalid item type" );
        DBG_ASSERT( dynamic_cast< const SfxUInt16Item* >(pState) !=  nullptr, "invalid item type" );
        const SfxUInt16Item* pItem = static_cast<const SfxUInt16Item*>(pState);
        mnState = pItem->GetValue();

diff --git a/svx/source/stbctrls/xmlsecctrl.cxx b/svx/source/stbctrls/xmlsecctrl.cxx
index 0c530b6..152a961 100644
--- a/svx/source/stbctrls/xmlsecctrl.cxx
+++ b/svx/source/stbctrls/xmlsecctrl.cxx
@@ -89,7 +89,7 @@ void XmlSecStatusBarControl::StateChanged( sal_uInt16, SfxItemState eState, cons
    {
        mpImpl->mnState = SignatureState::UNKNOWN;
    }
    else if( pState->ISA( SfxUInt16Item ) )
    else if( dynamic_cast< const SfxUInt16Item* >(pState) !=  nullptr )
    {
        mpImpl->mnState = static_cast<SignatureState>(static_cast<const SfxUInt16Item*>(pState)->GetValue());
    }
diff --git a/svx/source/stbctrls/zoomctrl.cxx b/svx/source/stbctrls/zoomctrl.cxx
index 024ee30..59dda7c 100644
--- a/svx/source/stbctrls/zoomctrl.cxx
+++ b/svx/source/stbctrls/zoomctrl.cxx
@@ -114,7 +114,7 @@ void SvxZoomStatusBarControl::StateChanged( sal_uInt16, SfxItemState eState,
        GetStatusBar().SetItemText( GetId(), "" );
        nValueSet = SvxZoomEnableFlags::NONE;
    }
    else if ( pState->ISA( SfxUInt16Item) )
    else if ( dynamic_cast< const SfxUInt16Item* >(pState) !=  nullptr )
    {
        const SfxUInt16Item* pItem = static_cast<const SfxUInt16Item*>(pState);
        nZoom = pItem->GetValue();
@@ -122,7 +122,7 @@ void SvxZoomStatusBarControl::StateChanged( sal_uInt16, SfxItemState eState,
        OUString aStr(unicode::formatPercent(nZoom, Application::GetSettings().GetUILanguageTag()));
        GetStatusBar().SetItemText( GetId(), aStr );

        if ( pState->ISA(SvxZoomItem) )
        if ( dynamic_cast<const SvxZoomItem*>( pState) !=  nullptr )
        {
            nValueSet = static_cast<const SvxZoomItem*>(pState)->GetValueSet();
        }
diff --git a/svx/source/stbctrls/zoomsliderctrl.cxx b/svx/source/stbctrls/zoomsliderctrl.cxx
index e5f05af..e1555b6 100644
--- a/svx/source/stbctrls/zoomsliderctrl.cxx
+++ b/svx/source/stbctrls/zoomsliderctrl.cxx
@@ -186,14 +186,14 @@ SvxZoomSliderControl::~SvxZoomSliderControl()

void SvxZoomSliderControl::StateChanged( sal_uInt16 /*nSID*/, SfxItemState eState, const SfxPoolItem* pState )
{
    if ( (SfxItemState::DEFAULT != eState) || pState->ISA( SfxVoidItem ) )
    if ( (SfxItemState::DEFAULT != eState) || dynamic_cast<const SfxVoidItem*>( pState) !=  nullptr )
    {
        GetStatusBar().SetItemText( GetId(), "" );
        mxImpl->mbValuesSet   = false;
    }
    else
    {
        OSL_ENSURE( pState->ISA( SvxZoomSliderItem ), "invalid item type: should be a SvxZoomSliderItem" );
        OSL_ENSURE( dynamic_cast<const SvxZoomSliderItem*>( pState) !=  nullptr, "invalid item type: should be a SvxZoomSliderItem" );
        mxImpl->mnCurrentZoom = static_cast<const SvxZoomSliderItem*>( pState )->GetValue();
        mxImpl->mnMinZoom     = static_cast<const SvxZoomSliderItem*>( pState )->GetMinZoom();
        mxImpl->mnMaxZoom     = static_cast<const SvxZoomSliderItem*>( pState )->GetMaxZoom();
diff --git a/svx/source/svdraw/clonelist.cxx b/svx/source/svdraw/clonelist.cxx
index f26e3a7..4d37a48 100644
--- a/svx/source/svdraw/clonelist.cxx
+++ b/svx/source/svdraw/clonelist.cxx
@@ -34,10 +34,10 @@ void CloneList::AddPair(const SdrObject* pOriginal, SdrObject* pClone)
    bool bOriginalIsGroup(pOriginal->IsGroupObject());
    bool bCloneIsGroup(pClone->IsGroupObject());

    if(bOriginalIsGroup && pOriginal->ISA(E3dObject) && !pOriginal->ISA(E3dScene))
    if(bOriginalIsGroup && dynamic_cast<const E3dObject* >(pOriginal) != nullptr && dynamic_cast<const E3dScene* >(pOriginal) == nullptr )
        bOriginalIsGroup = false;

    if(bCloneIsGroup && pClone->ISA(E3dObject) && !pClone->ISA(E3dScene))
    if(bCloneIsGroup && dynamic_cast<const E3dObject* >(pClone) != nullptr && dynamic_cast<const E3dScene* >(pClone) == nullptr)
        bCloneIsGroup = false;

    if(bOriginalIsGroup && bCloneIsGroup)
@@ -73,8 +73,8 @@ void CloneList::CopyConnections() const

    for(size_t a = 0; a < maOriginalList.size(); a++)
    {
        const SdrEdgeObj* pOriginalEdge = PTR_CAST(SdrEdgeObj, GetOriginal(a));
        SdrEdgeObj* pCloneEdge = PTR_CAST(SdrEdgeObj, GetClone(a));
        const SdrEdgeObj* pOriginalEdge = dynamic_cast<const SdrEdgeObj*>( GetOriginal(a) );
        SdrEdgeObj* pCloneEdge = dynamic_cast<SdrEdgeObj*>( GetClone(a) );

        if(pOriginalEdge && pCloneEdge)
        {
diff --git a/svx/source/svdraw/sdrpagewindow.cxx b/svx/source/svdraw/sdrpagewindow.cxx
index ecab032..6bfca26 100644
--- a/svx/source/svdraw/sdrpagewindow.cxx
+++ b/svx/source/svdraw/sdrpagewindow.cxx
@@ -262,7 +262,7 @@ namespace
            SdrPage* pPage = rPageView.GetPage();
            SdrObject* pObjA = pPage->GetObj(0L);

            if(pObjA && pObjA->ISA(SdrPathObj))
            if(pObjA && dynamic_cast<const SdrPathObj*>( pObjA) !=  nullptr)
            {
                basegfx::B2DPolyPolygon aPolyA(pObjA->GetPathPoly());
                aPolyA = basegfx::tools::correctOrientations(aPolyA);
@@ -273,7 +273,7 @@ namespace
                {
                    SdrObject* pObjB = pPage->GetObj(a);

                    if(pObjB && pObjB->ISA(SdrPathObj))
                    if(pObjB && dynamic_cast<const SdrPathObj*>( pObjB) !=  nullptr)
                    {
                        basegfx::B2DPolyPolygon aCandidate(pObjB->GetPathPoly());
                        aCandidate = basegfx::tools::correctOrientations(aCandidate);
diff --git a/svx/source/svdraw/svdcrtv.cxx b/svx/source/svdraw/svdcrtv.cxx
index 71881a1..57a735a 100644
--- a/svx/source/svdraw/svdcrtv.cxx
+++ b/svx/source/svdraw/svdcrtv.cxx
@@ -628,7 +628,7 @@ bool SdrCreateView::EndCreateObj(SdrCreateCmd eCmd)
                SdrLayerID nLayer(0);

                // #i72535#
                if(pObj->ISA(FmFormObj))
                if(dynamic_cast<const FmFormObj*>( pObj) !=  nullptr)
                {
                    // for FormControls, force to form layer
                    nLayer = rAd.GetLayerID(rAd.GetControlLayerName(), true);
@@ -649,10 +649,10 @@ bool SdrCreateView::EndCreateObj(SdrCreateCmd eCmd)
                bool bSceneIntoScene(false);

                if(pObjMerk
                    && pObjMerk->ISA(E3dScene)
                    && dynamic_cast<const E3dScene* >(pObjMerk) !=  nullptr
                    && pCreatePV
                    && pCreatePV->GetAktGroup()
                    && pCreatePV->GetAktGroup()->ISA(E3dScene))
                    && dynamic_cast<const E3dScene* >(pCreatePV->GetAktGroup()) != nullptr)
                {
                    bool bDidInsert = static_cast<E3dView*>(this)->ImpCloneAll3DObjectsToDestScene(
                        static_cast<E3dScene*>(pObjMerk), static_cast<E3dScene*>(pCreatePV->GetAktGroup()), Point(0, 0));
@@ -698,7 +698,7 @@ bool SdrCreateView::EndCreateObj(SdrCreateCmd eCmd)
        }
        if (bRet && pObjMerk!=NULL && IsTextEditAfterCreate())
        {
            SdrTextObj* pText=PTR_CAST(SdrTextObj,pObjMerk);
            SdrTextObj* pText=dynamic_cast<SdrTextObj*>( pObjMerk );
            if (pText!=NULL && pText->IsTextFrame())
            {
                SdrBeginTextEdit(pText, pPVMerk, nullptr, true, nullptr, nullptr);
@@ -779,7 +779,7 @@ void SdrCreateView::ShowCreateObj(/*OutputDevice* pOut, sal_Bool bFull*/)
            // check for form controls
            if(bUseSolidDragging)
            {
                if(pAktCreate->ISA(SdrUnoObj))
                if(dynamic_cast<const SdrUnoObj*>( pAktCreate) !=  nullptr)
                {
                    bUseSolidDragging = false;
                }
@@ -804,7 +804,7 @@ void SdrCreateView::ShowCreateObj(/*OutputDevice* pOut, sal_Bool bFull*/)
            {
                basegfx::B2DPolyPolygon aDragPolyPolygon;

                if(pAktCreate->ISA(SdrRectObj))
                if(dynamic_cast<const SdrRectObj*>( pAktCreate) !=  nullptr)
                {
                    // ensure object has some size, necessary for SdrTextObj because
                    // there are still untested divisions by that sizes
@@ -817,7 +817,7 @@ void SdrCreateView::ShowCreateObj(/*OutputDevice* pOut, sal_Bool bFull*/)
                    }
                }

                if(pAktCreate->ISA(SdrPathObj))
                if(dynamic_cast<const SdrPathObj*>( pAktCreate) !=  nullptr)
                {
                    // The up-to-now created path needs to be set at the object to have something
                    // that can be visualized
diff --git a/svx/source/svdraw/svddrgmt.cxx b/svx/source/svdraw/svddrgmt.cxx
index 9274c3e..6045443 100644
--- a/svx/source/svdraw/svddrgmt.cxx
+++ b/svx/source/svdraw/svddrgmt.cxx
@@ -861,8 +861,8 @@ bool SdrDragMethod::DoAddConnectorOverlays()
    }

    if(!getMoveOnly() && !(
        IS_TYPE(SdrDragMove, this) || IS_TYPE(SdrDragResize, this) ||
        IS_TYPE(SdrDragRotate,this) || IS_TYPE(SdrDragMirror,this)))
        dynamic_cast<const SdrDragMove*>(this) != nullptr || dynamic_cast<const SdrDragResize*>(this) != nullptr ||
        dynamic_cast<const SdrDragRotate*>(this) != nullptr || dynamic_cast<const SdrDragMirror*>(this) != nullptr ))
    {
        return false;
    }
@@ -875,7 +875,7 @@ bool SdrDragMethod::DoAddConnectorOverlays()
    }

    // one more migrated from SdrEdgeObj::NspToggleEdgeXor
    if(IS_TYPE(SdrDragObjOwn, this) || IS_TYPE(SdrDragMovHdl, this))
    if( dynamic_cast< const SdrDragObjOwn* >(this) != nullptr || dynamic_cast< const SdrDragMovHdl* >(this) != nullptr )
    {
        return false;
    }
@@ -3668,7 +3668,7 @@ bool SdrDragCrop::EndSdrDrag(bool /*bCopy*/)
    // based on virtual methods added to SdrObject, on MM100/Twip coordinates and so on.
    // If marked object is SdrGrafObj, we do all the work here with matrix based
    // coordinates.
    if (!pSdrObject->ISA(SdrGrafObj)) {
    if (dynamic_cast<const SdrGrafObj*>( pSdrObject) ==  nullptr) {
        const bool bUndo = getSdrDragView().IsUndoEnabled();
        if( bUndo )
        {
diff --git a/svx/source/svdraw/svddrgv.cxx b/svx/source/svdraw/svddrgv.cxx
index 6850354..da66603 100644
--- a/svx/source/svdraw/svddrgv.cxx
+++ b/svx/source/svdraw/svddrgv.cxx
@@ -171,14 +171,14 @@ bool SdrDragView::TakeDragObjAnchorPos(Point& rPos, bool bTR ) const
    rPos = bTR ? aR.TopRight() : aR.TopLeft();
    if (GetMarkedObjectCount()==1 && IsDragObj() && // only on single selection
        !IsDraggingPoints() && !IsDraggingGluePoints() && // not when moving points
        !mpCurrentSdrDragMethod->ISA(SdrDragMovHdl)) // not when moving handles
        dynamic_cast<const SdrDragMovHdl*>( mpCurrentSdrDragMethod) ==  nullptr) // not when moving handles
    {
        SdrObject* pObj=GetMarkedObjectByIndex(0);
        if (pObj->ISA(SdrCaptionObj))
        if (dynamic_cast<const SdrCaptionObj*>( pObj) !=  nullptr)
        {
            Point aPt(static_cast<SdrCaptionObj*>(pObj)->GetTailPos());
            bool bTail=meDragHdl==HDL_POLY; // drag tail
            bool bOwn=mpCurrentSdrDragMethod->ISA(SdrDragObjOwn); // specific to object
            bool bOwn=dynamic_cast<const SdrDragObjOwn*>( mpCurrentSdrDragMethod) !=  nullptr; // specific to object
            if (!bTail)
            { // for bTail, TakeActionRect already does the right thing
                if (bOwn)
@@ -280,7 +280,7 @@ bool SdrDragView::BegDragObj(const Point& rPnt, OutputDevice* pOut, SdrHdl* pHdl
                            for(size_t a=0; !b3DObjSelected && a<GetMarkedObjectCount(); ++a)
                            {
                                SdrObject* pObj = GetMarkedObjectByIndex(a);
                                if(pObj && pObj->ISA(E3dObject))
                                if(pObj && dynamic_cast< const E3dObject* >(pObj) !=  nullptr)
                                    b3DObjSelected = true;
                            }
                            // If yes, allow shear even when !IsShearAllowed,
@@ -429,7 +429,7 @@ bool SdrDragView::BegDragObj(const Point& rPnt, OutputDevice* pOut, SdrHdl* pHdl
                                {
                                    mpMarkedObj=GetMarkedObjectByIndex(0);
                                    if ( mpMarkedObj &&
                                        mpMarkedObj->ISA( SdrTextObj ) &&
                                        dynamic_cast<const SdrTextObj*>( mpMarkedObj) !=  nullptr &&
                                        static_cast<SdrTextObj*>(mpMarkedObj)->IsTextFrame() )
                                        bSingleTextObjMark = true;
                                }
@@ -443,7 +443,7 @@ bool SdrDragView::BegDragObj(const Point& rPnt, OutputDevice* pOut, SdrHdl* pHdl
                        {
                            if(HDL_MOVE == meDragHdl)
                            {
                                const bool bCustomShapeSelected(1 == GetMarkedObjectCount() && GetMarkedObjectByIndex(0)->ISA(SdrObjCustomShape));
                                const bool bCustomShapeSelected(1 == GetMarkedObjectCount() && dynamic_cast<const SdrObjCustomShape*>(GetMarkedObjectByIndex(0)) != nullptr);

                                if(bCustomShapeSelected)
                                {
@@ -452,7 +452,7 @@ bool SdrDragView::BegDragObj(const Point& rPnt, OutputDevice* pOut, SdrHdl* pHdl
                            }
                            else if(HDL_POLY == meDragHdl)
                            {
                                const bool bConnectorSelected(1 == GetMarkedObjectCount() && GetMarkedObjectByIndex(0)->ISA(SdrEdgeObj));
                                const bool bConnectorSelected(1 == GetMarkedObjectCount() && dynamic_cast<const SdrEdgeObj*>(GetMarkedObjectByIndex(0)) != nullptr);

                                if(bConnectorSelected)
                                {
@@ -490,7 +490,7 @@ bool SdrDragView::BegDragObj(const Point& rPnt, OutputDevice* pOut, SdrHdl* pHdl
            bRet = mpCurrentSdrDragMethod->BeginSdrDrag();
            if (!bRet)
            {
                if (pHdl==NULL && IS_TYPE(SdrDragObjOwn,mpCurrentSdrDragMethod))
                if (pHdl==NULL && dynamic_cast< const SdrDragObjOwn* >(mpCurrentSdrDragMethod) !=  nullptr)
                {
                    // Obj may not Move SpecialDrag, so try with MoveFrameDrag
                    delete mpCurrentSdrDragMethod;
@@ -640,7 +640,7 @@ bool SdrDragView::ImpBegInsObjPoint(bool bIdxZwang, sal_uInt32 nIdx, const Point
{
    bool bRet(false);

    if(mpMarkedObj && mpMarkedObj->ISA(SdrPathObj))
    if(mpMarkedObj && dynamic_cast<const SdrPathObj*>( mpMarkedObj) !=  nullptr)
    {
        SdrPathObj* pMarkedPath = static_cast<SdrPathObj*>(mpMarkedObj);
        BrkAction();
@@ -875,7 +875,8 @@ void SdrDragView::SetDragStripes(bool bOn)

bool SdrDragView::IsOrthoDesired() const
{
    if(mpCurrentSdrDragMethod && (IS_TYPE(SdrDragObjOwn, mpCurrentSdrDragMethod) || IS_TYPE(SdrDragResize, mpCurrentSdrDragMethod)))
    if(mpCurrentSdrDragMethod && (dynamic_cast< const SdrDragObjOwn* >( mpCurrentSdrDragMethod) !=  nullptr
                                                || dynamic_cast< const SdrDragResize* >(mpCurrentSdrDragMethod) !=  nullptr))
    {
        return bOrthoDesiredOnMarked;
    }
diff --git a/svx/source/svdraw/svdedtv.cxx b/svx/source/svdraw/svdedtv.cxx
index b3ec685..7bf5c5cb 100644
--- a/svx/source/svdraw/svdedtv.cxx
+++ b/svx/source/svdraw/svdedtv.cxx
@@ -132,7 +132,7 @@ bool SdrEditView::ImpDelLayerCheck(SdrObjList* pOL, SdrLayerID nDelID) const
        SdrObjList* pSubOL = pObj->GetSubList();

        // explicitly test for group objects and 3d scenes
        if(pSubOL && (pObj->ISA(SdrObjGroup) || pObj->ISA(E3dScene)))
        if(pSubOL && (dynamic_cast<const SdrObjGroup*>(pObj) != nullptr || dynamic_cast< const E3dScene* >(pObj) !=  nullptr))
        {
            if(!ImpDelLayerCheck(pSubOL, nDelID))
            {
@@ -167,7 +167,7 @@ void SdrEditView::ImpDelLayerDelObjs(SdrObjList* pOL, SdrLayerID nDelID)


        // explicitly test for group objects and 3d scenes
        if(pSubOL && (pObj->ISA(SdrObjGroup) || pObj->ISA(E3dScene)))
        if(pSubOL && (dynamic_cast<const SdrObjGroup*>( pObj) != nullptr || dynamic_cast<const E3dScene* >(pObj) !=  nullptr))
        {
            if(ImpDelLayerCheck(pSubOL, nDelID))
            {
@@ -236,7 +236,7 @@ void SdrEditView::DeleteLayer(const OUString& rName)
                    SdrObjList* pSubOL = pObj->GetSubList();

                    // explicitly test for group objects and 3d scenes
                    if(pSubOL && (pObj->ISA(SdrObjGroup) || pObj->ISA(E3dScene)))
                    if(pSubOL && (dynamic_cast<const SdrObjGroup*>(pObj) != nullptr || dynamic_cast<const E3dScene* >(pObj) !=  nullptr))
                    {
                        if(ImpDelLayerCheck(pSubOL, nDelID))
                        {
@@ -311,7 +311,7 @@ void SdrEditView::ImpBroadcastEdgesOfMarkedNodes()
    // the beginning of UNDO selected objects
    for(size_t a(0); a < rAllMarkedObjects.size(); a++)
    {
        SdrEdgeObj* pEdge = PTR_CAST(SdrEdgeObj, rAllMarkedObjects[a]);
        SdrEdgeObj* pEdge = dynamic_cast<SdrEdgeObj*>( rAllMarkedObjects[a] );

        if(pEdge)
        {
@@ -349,7 +349,7 @@ void SdrEditView::ImpBroadcastEdgesOfMarkedNodes()
    for (size_t i=0; i<nMarkedEdgeAnz; ++i) {
        SdrMark* pEM = GetMarkedEdgesOfMarkedNodes().GetMark(i);
        SdrObject* pEdgeTmp=pEM->GetMarkedSdrObj();
        SdrEdgeObj* pEdge=PTR_CAST(SdrEdgeObj,pEdgeTmp);
        SdrEdgeObj* pEdge=dynamic_cast<SdrEdgeObj*>( pEdgeTmp );
        if (pEdge!=NULL) {
            pEdge->SetEdgeTrackDirty();
        }
@@ -490,7 +490,7 @@ void SdrEditView::CheckPossibilities()
                // check bCombinePossible more thoroughly
                // still missing ...
                const SdrObject* pObj=GetMarkedObjectByIndex(0);
                //const SdrPathObj* pPath=PTR_CAST(SdrPathObj,pObj);
                //const SdrPathObj* pPath=dynamic_cast<SdrPathObj*>( pObj );
                bool bGroup=pObj->GetSubList()!=NULL;
                bool bHasText=pObj->GetOutlinerParaObject()!=NULL;
                if (bGroup || bHasText) {
@@ -649,7 +649,7 @@ void SdrEditView::CheckPossibilities()
            // Currently only implemented for single selection.
            if (nMarkCount==1) {
                SdrObject* pObj=GetMarkedObjectByIndex(0);
                SdrEdgeObj* pEdge=PTR_CAST(SdrEdgeObj,pObj);
                SdrEdgeObj* pEdge=dynamic_cast<SdrEdgeObj*>( pObj );
                if (pEdge!=NULL) {
                    SdrObject* pNode1=pEdge->GetConnectedNode(true);
                    SdrObject* pNode2=pEdge->GetConnectedNode(false);
diff --git a/svx/source/svdraw/svdedtv1.cxx b/svx/source/svdraw/svdedtv1.cxx
index fde1694..f933e23 100644
--- a/svx/source/svdraw/svdedtv1.cxx
+++ b/svx/source/svdraw/svdedtv1.cxx
@@ -158,7 +158,7 @@ std::vector< SdrUndoAction* > SdrEditView::CreateConnectorUndo( SdrObject& rO )
            while( aIter.IsMore() )
            {
                SdrObject* pPartObj = aIter.Next();
                if ( pPartObj->ISA( SdrEdgeObj ) )
                if ( dynamic_cast<const SdrEdgeObj*>( pPartObj) !=  nullptr )
                {
                    if ( ( pPartObj->GetConnectedNode( false ) == &rO ) ||
                         ( pPartObj->GetConnectedNode( true  ) == &rO ) )
@@ -509,7 +509,7 @@ void SdrEditView::ShearMarkedObj(const Point& rRef, long nAngle, bool bVShear, b
void SdrEditView::ImpCrookObj(SdrObject* pO, const Point& rRef, const Point& rRad,
    SdrCrookMode eMode, bool bVertical, bool bNoContortion, bool bRotate, const Rectangle& rMarkRect)
{
    SdrPathObj* pPath=PTR_CAST(SdrPathObj,pO);
    SdrPathObj* pPath=dynamic_cast<SdrPathObj*>( pO );
    bool bDone = false;

    if(pPath!=NULL && !bNoContortion)
@@ -630,7 +630,7 @@ void SdrEditView::CrookMarkedObj(const Point& rRef, const Point& rRad, SdrCrookM

void SdrEditView::ImpDistortObj(SdrObject* pO, const Rectangle& rRef, const XPolygon& rDistortedRect, bool bNoContortion)
{
    SdrPathObj* pPath = PTR_CAST(SdrPathObj, pO);
    SdrPathObj* pPath = dynamic_cast<SdrPathObj*>( pO );

    if(!bNoContortion && pPath)
    {
@@ -1136,7 +1136,7 @@ void SdrEditView::SetAttrToMarked(const SfxItemSet& rAttr, bool bReplaceAll)
                }
            }

            if(pObj->ISA(SdrTextObj))
            if(dynamic_cast<const SdrTextObj*>( pObj) !=  nullptr)
            {
                SdrTextObj* pTextObj = static_cast<SdrTextObj*>(pObj);

diff --git a/svx/source/svdraw/svdedtv2.cxx b/svx/source/svdraw/svdedtv2.cxx
index 3f327a0..851d109 100644
--- a/svx/source/svdraw/svdedtv2.cxx
+++ b/svx/source/svdraw/svdedtv2.cxx
@@ -568,7 +568,7 @@ bool SdrEditView::ImpCanConvertForCombine1(const SdrObject* pObj)
    // new condition IsLine() to be able to combine simple Lines
    bool bIsLine(false);

    const SdrPathObj* pPath = PTR_CAST(SdrPathObj,pObj);
    const SdrPathObj* pPath = dynamic_cast< const SdrPathObj*>( pObj );

    if(pPath)
    {
@@ -614,7 +614,7 @@ bool SdrEditView::ImpCanConvertForCombine(const SdrObject* pObj)
basegfx::B2DPolyPolygon SdrEditView::ImpGetPolyPolygon1(const SdrObject* pObj, bool bCombine)
{
    basegfx::B2DPolyPolygon aRetval;
    const SdrPathObj* pPath = PTR_CAST(SdrPathObj, pObj);
    const SdrPathObj* pPath = dynamic_cast<const SdrPathObj*>( pObj );

    if(bCombine && pPath && !pObj->GetOutlinerParaObject())
    {
@@ -635,7 +635,7 @@ basegfx::B2DPolyPolygon SdrEditView::ImpGetPolyPolygon1(const SdrObject* pObj, b
                while(aIter.IsMore())
                {
                    SdrObject* pObj1 = aIter.Next();
                    pPath = PTR_CAST(SdrPathObj, pObj1);
                    pPath = dynamic_cast<SdrPathObj*>( pObj1 );

                    if(pPath)
                    {
@@ -645,7 +645,7 @@ basegfx::B2DPolyPolygon SdrEditView::ImpGetPolyPolygon1(const SdrObject* pObj, b
            }
            else
            {
                pPath = PTR_CAST(SdrPathObj, pConvObj);
                pPath = dynamic_cast<SdrPathObj*>( pConvObj );

                if(pPath)
                {
@@ -1038,7 +1038,7 @@ void SdrEditView::MergeMarkedObjects(SdrMergeMode eMode)
                while(aIter.IsMore())
                {
                    SdrObject* pCandidate = aIter.Next();
                    SdrPathObj* pPathObj = PTR_CAST(SdrPathObj, pCandidate);
                    SdrPathObj* pPathObj = dynamic_cast<SdrPathObj*>( pCandidate );
                    if(pPathObj)
                    {
                        basegfx::B2DPolyPolygon aTmpPoly(pPathObj->GetPathPoly());
@@ -1367,7 +1367,7 @@ void SdrEditView::CombineMarkedObjects(bool bNoPolyPoly)
        const drawing::FillStyle eFillStyle = static_cast<const XFillStyleItem&>(pAttrObj->GetMergedItem(XATTR_FILLSTYLE)).GetValue();

        // Take fill style/closed state of pAttrObj in account when deciding to change the line style
        bool bIsClosedPathObj(pAttrObj->ISA(SdrPathObj) && static_cast<const SdrPathObj*>(pAttrObj)->IsClosed());
        bool bIsClosedPathObj(dynamic_cast<const SdrPathObj*>( pAttrObj) != nullptr && static_cast<const SdrPathObj*>(pAttrObj)->IsClosed());

        if(drawing::LineStyle_NONE == eLineStyle && (drawing::FillStyle_NONE == eFillStyle || !bIsClosedPathObj))
        {
@@ -1441,7 +1441,7 @@ bool SdrEditView::ImpCanDismantle(const SdrObject* pObj, bool bMakeLines)
        while(aIter.IsMore() && !bOtherObjs)
        {
            const SdrObject* pObj1 = aIter.Next();
            const SdrPathObj* pPath = PTR_CAST(SdrPathObj, pObj1);
            const SdrPathObj* pPath = dynamic_cast<const SdrPathObj*>( pObj1 );

            if(pPath)
            {
@@ -1506,8 +1506,8 @@ bool SdrEditView::ImpCanDismantle(const SdrObject* pObj, bool bMakeLines)

void SdrEditView::ImpDismantleOneObject(const SdrObject* pObj, SdrObjList& rOL, size_t& rPos, SdrPageView* pPV, bool bMakeLines)
{
    const SdrPathObj* pSrcPath = PTR_CAST(SdrPathObj, pObj);
    const SdrObjCustomShape* pCustomShape = PTR_CAST(SdrObjCustomShape, pObj);
    const SdrPathObj* pSrcPath = dynamic_cast<const SdrPathObj*>( pObj );
    const SdrObjCustomShape* pCustomShape = dynamic_cast<const SdrObjCustomShape*>( pObj );

    const bool bUndo = IsUndoEnabled();

@@ -1593,7 +1593,7 @@ void SdrEditView::ImpDismantleOneObject(const SdrObject* pObj, SdrObjList& rOL, 

                if(static_cast<const SdrOnOffItem&>(pCustomShape->GetMergedItem(SDRATTR_SHADOW)).GetValue())
                {
                    if(pReplacement->ISA(SdrObjGroup))
                    if(dynamic_cast<const SdrObjGroup*>( pReplacement) !=  nullptr)
                    {
                        pCandidate->SetMergedItem(makeSdrShadowItem(true));
                    }
@@ -2036,8 +2036,8 @@ void SdrEditView::DoImportMarkedMtf(SvdProgressInfo *pProgrInfo)
        SdrPageView* pPV=pM->GetPageView();
        SdrObjList*  pOL=pObj->GetObjList();
        const size_t nInsPos=pObj->GetOrdNum()+1;
        SdrGrafObj*  pGraf=PTR_CAST(SdrGrafObj,pObj);
        SdrOle2Obj*  pOle2=PTR_CAST(SdrOle2Obj,pObj);
        SdrGrafObj*  pGraf= dynamic_cast<SdrGrafObj*>( pObj );
        SdrOle2Obj*  pOle2= dynamic_cast<SdrOle2Obj*>( pObj );
        sal_uIntPtr        nInsAnz=0;
        Rectangle aLogicRect;

diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index b6a764c..f30421e 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -329,7 +329,7 @@ void SdrObjEditView::TextEditDrawing(SdrPaintWindow& rPaintWindow) const

void SdrObjEditView::ImpPaintOutlinerView(OutlinerView& rOutlView, const Rectangle& rRect, OutputDevice& rTargetDevice) const
{
    const SdrTextObj* pText = PTR_CAST(SdrTextObj,GetTextEditObject());
    const SdrTextObj* pText = dynamic_cast<SdrTextObj*>( GetTextEditObject() );
    bool bTextFrame(pText && pText->IsTextFrame());
    bool bFitToSize(pTextEditOutliner->GetControlWord() & EEControlBits::STRETCHING);
    bool bModifyMerk(pTextEditOutliner->IsModified());
@@ -394,7 +394,7 @@ void SdrObjEditView::ImpInvalidateOutlinerView(OutlinerView& rOutlView) const

    if(pWin)
    {
        const SdrTextObj* pText = PTR_CAST(SdrTextObj,GetTextEditObject());
        const SdrTextObj* pText = dynamic_cast<SdrTextObj*>( GetTextEditObject() );
        bool bTextFrame(pText && pText->IsTextFrame());
        bool bFitToSize(pText && pText->IsFitToSize());

@@ -1021,7 +1021,7 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)

            pTEObj->EndTextEdit(*pTEOutliner);

            if( (pTEObj->GetRotateAngle() != 0) || (pTEObj && pTEObj->ISA(SdrTextObj) && pTEObj->IsFontwork())  )
            if( (pTEObj->GetRotateAngle() != 0) || (pTEObj && dynamic_cast<const SdrTextObj*>( pTEObj) !=  nullptr && pTEObj->IsFontwork())  )
            {
                pTEObj->ActionChanged();
            }
@@ -1038,7 +1038,7 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
            // check deletion of entire TextObj
            SdrUndoAction* pDelUndo=NULL;
            bool bDelObj=false;
            SdrTextObj* pTextObj=PTR_CAST(SdrTextObj,pTEObj);
            SdrTextObj* pTextObj=dynamic_cast<SdrTextObj*>( pTEObj );
            if (pTextObj!=NULL && bTextEditNewObj)
            {
                bDelObj=pTextObj->IsTextFrame() &&
@@ -1089,7 +1089,7 @@ SdrEndTextEditKind SdrObjEditView::SdrEndTextEdit(bool bDontDeleteReally)
                EndUndo(); // EndUndo after Remove, in case UndoStack is deleted immediately

            // Switch on any TextAnimation again after TextEdit
            if(pTEObj->ISA(SdrTextObj))
            if(dynamic_cast<const SdrTextObj*>( pTEObj) !=  nullptr)
            {
                pTEObj->SetTextAnimationAllowed(true);
            }
diff --git a/svx/source/svdraw/svdfmtf.cxx b/svx/source/svdraw/svdfmtf.cxx
index 6c58c10..213ffb9 100644
--- a/svx/source/svdraw/svdfmtf.cxx
+++ b/svx/source/svdraw/svdfmtf.cxx
@@ -523,7 +523,7 @@ void ImpSdrGDIMetaFileImport::InsertObj(SdrObject* pObj, bool bScale)
                    while(aIter.IsMore())
                    {
                        SdrObject* pCandidate = aIter.Next();
                        OSL_ENSURE(pCandidate && 0 == dynamic_cast< SdrObjGroup* >(pCandidate), "SdrObjListIter with IM_DEEPNOGROUPS error (!)");
                        OSL_ENSURE(pCandidate && dynamic_cast< SdrObjGroup* >(pCandidate) ==  nullptr, "SdrObjListIter with IM_DEEPNOGROUPS error (!)");
                        SdrObject* pNewClone = pCandidate->Clone();

                        if(pNewClone)
diff --git a/svx/source/svdraw/svdhdl.cxx b/svx/source/svdraw/svdhdl.cxx
index 38de488..256e003 100644
--- a/svx/source/svdraw/svdhdl.cxx
+++ b/svx/source/svdraw/svdhdl.cxx
@@ -1553,7 +1553,7 @@ void ImpEdgeHdl::SetLineCode(SdrEdgeLineCode eCode)

Pointer ImpEdgeHdl::GetPointer() const
{
    SdrEdgeObj* pEdge=PTR_CAST(SdrEdgeObj,pObj);
    SdrEdgeObj* pEdge=dynamic_cast<SdrEdgeObj*>( pObj );
    if (pEdge==NULL)
        return SdrHdl::GetPointer();
    if (nObjHdlNum<=1)
@@ -1566,7 +1566,7 @@ Pointer ImpEdgeHdl::GetPointer() const

bool ImpEdgeHdl::IsHorzDrag() const
{
    SdrEdgeObj* pEdge=PTR_CAST(SdrEdgeObj,pObj);
    SdrEdgeObj* pEdge=dynamic_cast<SdrEdgeObj*>( pObj );
    if (pEdge==NULL)
        return false;
    if (nObjHdlNum<=1)
@@ -1805,7 +1805,7 @@ extern "C" int SAL_CALL ImplSortHdlFunc( const void* pVoid1, const void* pVoid2 

    if(p1->mpHdl->GetObj() == p2->mpHdl->GetObj())
    {
        if(p1->mpHdl->GetObj() && p1->mpHdl->GetObj()->ISA(SdrPathObj))
        if(p1->mpHdl->GetObj() && dynamic_cast<const SdrPathObj*>(p1->mpHdl->GetObj()) != nullptr)
        {
            // same object and a path object
            if((p1->mpHdl->GetKind() == HDL_POLY || p1->mpHdl->GetKind() == HDL_BWGT)
diff --git a/svx/source/svdraw/svditer.cxx b/svx/source/svdraw/svditer.cxx
index b6af65b..c2c92ea 100644
--- a/svx/source/svdraw/svditer.cxx
+++ b/svx/source/svdraw/svditer.cxx
@@ -44,7 +44,7 @@ SdrObjListIter::SdrObjListIter( const SdrObject& rObj, SdrIterMode eMode, bool b
:   mnIndex(0L),
    mbReverse(bReverse)
{
    if ( rObj.ISA( SdrObjGroup ) )
    if ( dynamic_cast<const SdrObjGroup*>(&rObj) !=  nullptr )
        ImpProcessObjectList(*rObj.GetSubList(), eMode, true);
    else
        maObjList.push_back(const_cast<SdrObject*>(&rObj));
@@ -83,7 +83,7 @@ void SdrObjListIter::ImpProcessObj(SdrObject* pObj, SdrIterMode eMode, bool bUse
    bool bIsGroup = pObj->IsGroupObject();
    // 3D objects are not group objects, IsGroupObject()
    // only tests if pSub is not null ptr :-(
    if( bIsGroup && pObj->ISA( E3dObject ) && !pObj->ISA( E3dScene ) )
    if( bIsGroup && dynamic_cast<const E3dObject* >(pObj) != nullptr && dynamic_cast<const E3dScene* >(pObj) == nullptr)
        bIsGroup = false;

    if( !bIsGroup || (eMode != IM_DEEPNOGROUPS) )
diff --git a/svx/source/svdraw/svdmark.cxx b/svx/source/svdraw/svdmark.cxx
index 8b7f3e09c..407cd0f 100644
--- a/svx/source/svdraw/svdmark.cxx
+++ b/svx/source/svdraw/svdmark.cxx
@@ -546,7 +546,7 @@ const OUString& SdrMarkList::GetMarkDescription() const
    {
        // if it's a single selection, cache only text frame
        const SdrObject* pObj = GetMark(0)->GetMarkedSdrObj();
        const SdrTextObj* pTextObj = PTR_CAST(SdrTextObj, pObj);
        const SdrTextObj* pTextObj = dynamic_cast<const SdrTextObj*>( pObj );

        if(!pTextObj || !pTextObj->IsTextFrame())
        {
@@ -637,7 +637,7 @@ const OUString& SdrMarkList::GetPointMarkDescription(bool bGlue) const
    {
        // if it's a single selection, cache only text frame
        const SdrObject* pObj = GetMark(0)->GetMarkedSdrObj();
        const SdrTextObj* pTextObj = PTR_CAST(SdrTextObj,pObj);
        const SdrTextObj* pTextObj = dynamic_cast<const SdrTextObj*>( pObj );

        if(!pTextObj || !pTextObj->IsTextFrame())
        {
@@ -826,7 +826,7 @@ namespace sdr
        {
            bool bIsGroup(pObj->IsGroupObject());

            if(bIsGroup && pObj->ISA(E3dObject) && !pObj->ISA(E3dScene))
            if(bIsGroup && dynamic_cast< const E3dObject* >(pObj) != nullptr && dynamic_cast< const E3dScene* >(pObj) == nullptr)
            {
                bIsGroup = false;
            }
@@ -880,7 +880,7 @@ namespace sdr
                            for(size_t nl=0; nl < nLstAnz; ++nl)
                            {
                                SfxListener* pLst = pBC->GetListener(nl);
                                SdrEdgeObj* pEdge = PTR_CAST(SdrEdgeObj, pLst);
                                SdrEdgeObj* pEdge = dynamic_cast<SdrEdgeObj*>( pLst );

                                if(pEdge && pEdge->IsInserted() && pEdge->GetPage() == pCandidate->GetPage())
                                {
diff --git a/svx/source/svdraw/svdmrkv.cxx b/svx/source/svdraw/svdmrkv.cxx
index 112fcea..529315c 100644
--- a/svx/source/svdraw/svdmrkv.cxx
+++ b/svx/source/svdraw/svdmrkv.cxx
@@ -614,7 +614,7 @@ void SdrMarkView::SetMarkHandles()

    if(pSaveOldFocusHdl
        && pSaveOldFocusHdl->GetObj()
        && pSaveOldFocusHdl->GetObj()->ISA(SdrPathObj)
        && dynamic_cast<const SdrPathObj*>(pSaveOldFocusHdl->GetObj()) != nullptr
        && (pSaveOldFocusHdl->GetKind() == HDL_POLY || pSaveOldFocusHdl->GetKind() == HDL_BWGT))
    {
        bSaveOldFocus = true;
@@ -643,7 +643,7 @@ void SdrMarkView::SetMarkHandles()
            mpMarkedObj=GetMarkedObjectByIndex(0);
            bSingleTextObjMark =
                mpMarkedObj &&
                mpMarkedObj->ISA(SdrTextObj) &&
                dynamic_cast<const SdrTextObj*>( mpMarkedObj) !=  nullptr &&
                static_cast<SdrTextObj*>(mpMarkedObj)->IsTextFrame();
        }

@@ -1476,7 +1476,7 @@ bool SdrMarkView::MarkNextObj(const Point& rPnt, short nTol, bool bPrev)
    size_t nSearchBeg = 0;
    E3dScene* pScene = NULL;
    SdrObject* pObjHit = (bPrev) ? pBtmObjHit : pTopObjHit;
    bool bRemap = pObjHit->ISA(E3dCompoundObject)
    bool bRemap = dynamic_cast< const E3dCompoundObject* >(pObjHit) !=  nullptr
        && static_cast<E3dCompoundObject*>(pObjHit)->IsAOrdNumRemapCandidate(pScene);

    if(bPrev)
@@ -1630,8 +1630,8 @@ SdrObject* SdrMarkView::CheckSingleSdrObjectHit(const Point& rPnt, sal_uInt16 nT

    const bool bCheckIfMarkable(nOptions & SdrSearchOptions::TESTMARKABLE);
    const bool bDeep(nOptions & SdrSearchOptions::DEEP);
    const bool bOLE(pObj->ISA(SdrOle2Obj));
    const bool bTXT(pObj->ISA(SdrTextObj) && static_cast<SdrTextObj*>(pObj)->IsTextFrame());
    const bool bOLE(dynamic_cast< const SdrOle2Obj* >(pObj) !=  nullptr);
    const bool bTXT(dynamic_cast<const SdrTextObj*>( pObj) != nullptr && static_cast<SdrTextObj*>(pObj)->IsTextFrame());
    SdrObject* pRet=NULL;
    Rectangle aRect(pObj->GetCurrentBoundRect());
    // hack for calc grid sync
@@ -1662,7 +1662,7 @@ SdrObject* SdrMarkView::CheckSingleSdrObjectHit(const Point& rPnt, sal_uInt16 nT
                // adjustment hit point for virtual objects
                Point aPnt( rPnt );

                if ( pObj->ISA(SdrVirtObj) )
                if ( dynamic_cast<const SdrVirtObj*>( pObj) !=  nullptr )
                {
                    Point aOffset = static_cast<SdrVirtObj*>(pObj)->GetOffset();
                    aPnt.Move( -aOffset.X(), -aOffset.Y() );
@@ -1700,7 +1700,7 @@ SdrObject* SdrMarkView::CheckSingleSdrObjectHit(const Point& rPnt, sal_uInt16 nT
    rpRootObj=NULL;
    if (pOL!=NULL)
    {
        bool bRemap(pOL->GetOwnerObj() && pOL->GetOwnerObj()->ISA(E3dScene));
        bool bRemap(pOL->GetOwnerObj() && dynamic_cast< const E3dScene* >(pOL->GetOwnerObj()) != nullptr);
        E3dScene* pRemapScene = (bRemap ? static_cast<E3dScene*>(pOL->GetOwnerObj()) : 0L);

        const size_t nObjCount=pOL->GetObjCount();
diff --git a/svx/source/svdraw/svdobj.cxx b/svx/source/svdraw/svdobj.cxx
index 7a80781..2acccfd 100644
--- a/svx/source/svdraw/svdobj.cxx
+++ b/svx/source/svdraw/svdobj.cxx
@@ -2491,7 +2491,7 @@ SdrObject* SdrObject::ImpConvertToContourObj(SdrObject* pRet, bool bForceLineDas

            // check if original geometry should be added (e.g. filled and closed)
            bool bAddOriginalGeometry(false);
            SdrPathObj* pPath = PTR_CAST(SdrPathObj, pRet);
            SdrPathObj* pPath = dynamic_cast<SdrPathObj*>( pRet );

            if(pPath && pPath->IsClosed())
            {
@@ -2600,7 +2600,7 @@ void SdrObject::SetNotVisibleAsMaster(bool bFlg)
// convert this path object to contour object, even when it is a group
SdrObject* SdrObject::ConvertToContourObj(SdrObject* pRet, bool bForceLineDash) const
{
    if(pRet->ISA(SdrObjGroup))
    if(dynamic_cast<const SdrObjGroup*>( pRet) !=  nullptr)
    {
        SdrObjList* pObjList2 = pRet->GetSubList();
        SdrObject* pGroup = new SdrObjGroup;
@@ -2616,7 +2616,7 @@ SdrObject* SdrObject::ConvertToContourObj(SdrObject* pRet, bool bForceLineDash) 
    }
    else
    {
        if(pRet && pRet->ISA(SdrPathObj))
        if(pRet && dynamic_cast<const SdrPathObj*>( pRet) !=  nullptr)
        {
            SdrPathObj* pPathObj = static_cast<SdrPathObj*>(pRet);

diff --git a/svx/source/svdraw/svdomeas.cxx b/svx/source/svdraw/svdomeas.cxx
index 5479193..baec881 100644
--- a/svx/source/svdraw/svdomeas.cxx
+++ b/svx/source/svdraw/svdomeas.cxx
@@ -586,7 +586,7 @@ bool SdrMeasureObj::CalcFieldValue(const SvxFieldItem& rField, sal_Int32 nPara, 
    Color*& rpTxtColor, Color*& rpFldColor, OUString& rRet) const
{
    const SvxFieldData* pField=rField.GetField();
    const SdrMeasureField* pMeasureField=PTR_CAST(SdrMeasureField,pField);
    const SdrMeasureField* pMeasureField=dynamic_cast<const SdrMeasureField*>( pField );
    if (pMeasureField!=NULL) {
        rRet = TakeRepresentation(pMeasureField->GetMeasureFieldKind());
        if (rpFldColor!=NULL) {
diff --git a/svx/source/svdraw/svdopath.cxx b/svx/source/svdraw/svdopath.cxx
index f589d3f..10a8aea 100644
--- a/svx/source/svdraw/svdopath.cxx
+++ b/svx/source/svdraw/svdopath.cxx
@@ -2742,7 +2742,7 @@ SdrObject* SdrPathObj::DoConvertToPolyObj(bool bBezier, bool bAddText) const
        0 :
        ImpConvertMakeObj(GetPathPoly(), IsClosed(), bBezier);

    SdrPathObj* pPath = PTR_CAST(SdrPathObj, pRet);
    SdrPathObj* pPath = dynamic_cast<SdrPathObj*>( pRet );

    if(pPath)
    {
diff --git a/svx/source/svdraw/svdotxat.cxx b/svx/source/svdraw/svdotxat.cxx
index c1f9ce8..62ea554 100644
--- a/svx/source/svdraw/svdotxat.cxx
+++ b/svx/source/svdraw/svdotxat.cxx
@@ -347,7 +347,7 @@ void SdrTextObj::ImpSetTextStyleSheetListeners()

            SfxStyleFamily eFam = ReadFamilyFromStyleName(aName);
            SfxStyleSheetBase* pStyleBase = pStylePool->Find(aName,eFam);
            SfxStyleSheet* pStyle = PTR_CAST(SfxStyleSheet,pStyleBase);
            SfxStyleSheet* pStyle = dynamic_cast<SfxStyleSheet*>( pStyleBase );
            if (pStyle!=NULL && pStyle!=GetStyleSheet()) {
                aStyleSheets.insert(pStyle);
            }
@@ -357,7 +357,7 @@ void SdrTextObj::ImpSetTextStyleSheetListeners()
        while (nNum>0) {
            nNum--;
            SfxBroadcaster* pBroadcast=GetBroadcasterJOE((sal_uInt16)nNum);
            SfxStyleSheet* pStyle=PTR_CAST(SfxStyleSheet,pBroadcast);
            SfxStyleSheet* pStyle=dynamic_cast<SfxStyleSheet*>( pBroadcast );
            if (pStyle!=NULL && pStyle!=GetStyleSheet()) { // special case for stylesheet of the object
                if (aStyleSheets.find(pStyle)==aStyleSheets.end()) {
                    EndListening(*pStyle);
diff --git a/svx/source/svdraw/svdotxdr.cxx b/svx/source/svdraw/svdotxdr.cxx
index 4fce336..954d36c 100644
--- a/svx/source/svdraw/svdotxdr.cxx
+++ b/svx/source/svdraw/svdotxdr.cxx
@@ -138,7 +138,7 @@ Rectangle SdrTextObj::ImpDragCalcRect(const SdrDragStat& rDrag) const
            }
        }
    }
    if (!ISA(SdrObjCustomShape))        // not justifying when in CustomShapes, to be able to detect if a shape has to be mirrored
    if (dynamic_cast<const SdrObjCustomShape*>(this) ==  nullptr)        // not justifying when in CustomShapes, to be able to detect if a shape has to be mirrored
        ImpJustifyRect(aTmpRect);
    return aTmpRect;
}
diff --git a/svx/source/svdraw/svdpage.cxx b/svx/source/svdraw/svdpage.cxx
index 911dfd5..ed70e07 100644
--- a/svx/source/svdraw/svdpage.cxx
+++ b/svx/source/svdraw/svdpage.cxx
@@ -163,7 +163,7 @@ void SdrObjList::CopyObjects(const SdrObjList& rSrcList)
    if (nCloneErrCnt==0) {
        for (size_t no=0; no<nCount; ++no) {
            const SdrObject* pSrcOb=rSrcList.GetObj(no);
            const SdrEdgeObj* pSrcEdge=PTR_CAST(SdrEdgeObj,pSrcOb);
            const SdrEdgeObj* pSrcEdge=dynamic_cast<const SdrEdgeObj*>( pSrcOb );
            if (pSrcEdge!=NULL) {
                SdrObject* pSrcNode1=pSrcEdge->GetConnectedNode(true);
                SdrObject* pSrcNode2=pSrcEdge->GetConnectedNode(false);
@@ -171,7 +171,7 @@ void SdrObjList::CopyObjects(const SdrObjList& rSrcList)
                if (pSrcNode2!=NULL && pSrcNode2->GetObjList()!=pSrcEdge->GetObjList()) pSrcNode2=NULL; // across all lists (yet)
                if (pSrcNode1!=NULL || pSrcNode2!=NULL) {
                    SdrObject* pEdgeObjTmp=GetObj(no);
                    SdrEdgeObj* pDstEdge=PTR_CAST(SdrEdgeObj,pEdgeObjTmp);
                    SdrEdgeObj* pDstEdge=dynamic_cast<SdrEdgeObj*>( pEdgeObjTmp );
                    if (pDstEdge!=NULL) {
                        if (pSrcNode1!=NULL) {
                            sal_uIntPtr nDstNode1=pSrcNode1->GetOrdNum();
@@ -730,7 +730,7 @@ void SdrObjList::UnGroupObj( size_t nObjNum )
    if( pUngroupObj )
    {
        SdrObjList* pSrcLst = pUngroupObj->GetSubList();
        if( pUngroupObj->ISA( SdrObjGroup ) && pSrcLst )
        if( dynamic_cast<const SdrObjGroup*>( pUngroupObj) !=  nullptr && pSrcLst )
        {
            SdrObjGroup* pUngroupGroup = static_cast< SdrObjGroup* > (pUngroupObj);

@@ -1680,7 +1680,7 @@ void SdrPage::SetInserted( bool bIns )
         while ( aIter.IsMore() )
        {
            SdrObject* pObj = aIter.Next();
            if ( pObj->ISA(SdrOle2Obj) )
            if ( dynamic_cast<const SdrOle2Obj* >(pObj) !=  nullptr )
            {
                if( mbInserted )
                    static_cast<SdrOle2Obj*>(pObj)->Connect();
diff --git a/svx/source/svdraw/svdpagv.cxx b/svx/source/svdraw/svdpagv.cxx
index f8c9a27..0037771 100644
--- a/svx/source/svdraw/svdpagv.cxx
+++ b/svx/source/svdraw/svdpagv.cxx
@@ -666,7 +666,7 @@ bool SdrPageView::IsObjMarkable(SdrObject* pObj) const
            return false;
        }

        if(pObj->ISA(SdrObjGroup))
        if(dynamic_cast<const SdrObjGroup*>( pObj) !=  nullptr)
        {
            // If object is a Group object, visibility may depend on
            // multiple layers. If one object is markable, Group is markable.
diff --git a/svx/source/svdraw/svdpntv.cxx b/svx/source/svdraw/svdpntv.cxx
index 94e03e3..2960680 100644
--- a/svx/source/svdraw/svdpntv.cxx
+++ b/svx/source/svdraw/svdpntv.cxx
@@ -1002,7 +1002,7 @@ bool SdrPaintView::IsGroupEntered() const
void SdrPaintView::SetNotPersistDefaultAttr(const SfxItemSet& rAttr, bool /*bReplaceAll*/)
{
    // bReplaceAll has no effect here at all.
    bool bMeasure=ISA(SdrView) && static_cast<SdrView*>(this)->IsMeasureTool();
    bool bMeasure= dynamic_cast<const SdrView*>(this) != nullptr && static_cast<SdrView*>(this)->IsMeasureTool();
    const SfxPoolItem *pPoolItem=NULL;
    if (rAttr.GetItemState(SDRATTR_LAYERID,true,&pPoolItem)==SfxItemState::SET) {
        SdrLayerID nLayerId=static_cast<const SdrLayerIdItem*>(pPoolItem)->GetValue();
@@ -1021,7 +1021,7 @@ void SdrPaintView::SetNotPersistDefaultAttr(const SfxItemSet& rAttr, bool /*bRep
void SdrPaintView::MergeNotPersistDefaultAttr(SfxItemSet& rAttr, bool /*bOnlyHardAttr*/) const
{
    // bOnlyHardAttr has no effect here at all.
    bool bMeasure=ISA(SdrView) && static_cast<const SdrView*>(this)->IsMeasureTool();
    bool bMeasure= dynamic_cast<const SdrView*>(this) != nullptr && static_cast<const SdrView*>(this)->IsMeasureTool();
    const OUString& aNam = bMeasure ? maMeasureLayer : maActualLayer;
    rAttr.Put(SdrLayerNameItem(aNam));
    SdrLayerID nLayer=mpModel->GetLayerAdmin().GetLayerID(aNam,true);
diff --git a/svx/source/svdraw/svdpoev.cxx b/svx/source/svdraw/svdpoev.cxx
index fd65cfc..e7bc02c 100644
--- a/svx/source/svdraw/svdpoev.cxx
+++ b/svx/source/svdraw/svdpoev.cxx
@@ -86,7 +86,7 @@ void SdrPolyEditView::CheckPolyPossibilitiesHelper( SdrMark* pM, bool& b1stSmoot
{
    SdrObject* pObj = pM->GetMarkedSdrObj();
    SdrUShortCont* pPts = pM->GetMarkedPoints();
    SdrPathObj* pPath = PTR_CAST(SdrPathObj,pObj);
    SdrPathObj* pPath = dynamic_cast<SdrPathObj*>( pObj );

    if(pPath && pPts)
    {
@@ -365,7 +365,7 @@ void SdrPolyEditView::RipUpAtMarkedPoints()
            --nMarkNum;
            SdrMark* pM = GetSdrMarkByIndex(nMarkNum);
            SdrUShortCont* pPts = pM->GetMarkedPoints();
            SdrPathObj* pObj = PTR_CAST(SdrPathObj, pM->GetMarkedSdrObj());
            SdrPathObj* pObj = dynamic_cast<SdrPathObj*>( pM->GetMarkedSdrObj() );

            if(pPts && pObj)
            {
@@ -549,7 +549,7 @@ void SdrPolyEditView::ImpTransformMarkedPoints(PPolyTrFunc pTrFunc, const void* 
        SdrObject* pObj=pM->GetMarkedSdrObj();
        const SdrUShortCont* pPts=pM->GetMarkedPoints();
        sal_uIntPtr nPointCount=pPts==NULL ? 0 : pPts->size();
        SdrPathObj* pPath=PTR_CAST(SdrPathObj,pObj);
        SdrPathObj* pPath=dynamic_cast<SdrPathObj*>( pObj );
        if (nPointCount!=0 && pPath!=NULL)
        {
            if( bUndo )
diff --git a/svx/source/svdraw/svdundo.cxx b/svx/source/svdraw/svdundo.cxx
index b7ca97d..f903410 100644
--- a/svx/source/svdraw/svdundo.cxx
+++ b/svx/source/svdraw/svdundo.cxx
@@ -63,21 +63,21 @@ SdrUndoAction::~SdrUndoAction() {}

bool SdrUndoAction::CanRepeat(SfxRepeatTarget& rView) const
{
    SdrView* pV=PTR_CAST(SdrView,&rView);
    SdrView* pV=dynamic_cast<SdrView*>( &rView );
    if (pV!=NULL) return CanSdrRepeat(*pV);
    return false;
}

void SdrUndoAction::Repeat(SfxRepeatTarget& rView)
{
    SdrView* pV=PTR_CAST(SdrView,&rView);
    SdrView* pV=dynamic_cast<SdrView*>( &rView );
    if (pV!=NULL) SdrRepeat(*pV);
    DBG_ASSERT(pV!=NULL,"Repeat: SfxRepeatTarget that was handed over is not a SdrView");
}

OUString SdrUndoAction::GetRepeatComment(SfxRepeatTarget& rView) const
{
    SdrView* pV=PTR_CAST(SdrView,&rView);
    SdrView* pV=dynamic_cast<SdrView*>( &rView );
    if (pV!=NULL) return GetSdrRepeatComment(*pV);
    return OUString();
}
@@ -279,7 +279,7 @@ SdrUndoAttrObj::SdrUndoAttrObj(SdrObject& rNewObj, bool bStyleSheet1, bool bSave

    SdrObjList* pOL = rNewObj.GetSubList();
    bool bIsGroup(pOL!=NULL && pOL->GetObjCount());
    bool bIs3DScene(bIsGroup && pObj->ISA(E3dScene));
    bool bIs3DScene(bIsGroup && dynamic_cast< E3dScene* >(pObj) !=  nullptr);

    if(bIsGroup)
    {
@@ -323,7 +323,7 @@ SdrUndoAttrObj::~SdrUndoAttrObj()
void SdrUndoAttrObj::Undo()
{
    E3DModifySceneSnapRectUpdater aUpdater(pObj);
    bool bIs3DScene(pObj && pObj->ISA(E3dScene));
    bool bIs3DScene(pObj && dynamic_cast< E3dScene* >(pObj) !=  nullptr);

    // Trigger PageChangeCall
    ImpShowPageOfThisObject();
@@ -379,7 +379,7 @@ void SdrUndoAttrObj::Undo()

        if(pUndoSet)
        {
            if(pObj->ISA(SdrCaptionObj))
            if(dynamic_cast<const SdrCaptionObj*>( pObj) !=  nullptr)
            {
                // do a more smooth item deletion here, else the text
                // rect will be reformatted, especially when information regarding
@@ -430,7 +430,7 @@ void SdrUndoAttrObj::Undo()
void SdrUndoAttrObj::Redo()
{
    E3DModifySceneSnapRectUpdater aUpdater(pObj);
    bool bIs3DScene(pObj && pObj->ISA(E3dScene));
    bool bIs3DScene(pObj && dynamic_cast< E3dScene* >(pObj) !=  nullptr);

    if(!pUndoGroup || bIs3DScene)
    {
@@ -456,7 +456,7 @@ void SdrUndoAttrObj::Redo()

        if(pRedoSet)
        {
            if(pObj->ISA(SdrCaptionObj))
            if(dynamic_cast<const SdrCaptionObj*>( pObj) !=  nullptr)
            {
                // do a more smooth item deletion here, else the text
                // rect will be reformatted, especially when information regarding
@@ -606,7 +606,7 @@ SdrUndoGeoObj::SdrUndoGeoObj(SdrObject& rNewObj)
     , pUndoGroup(NULL)
{
    SdrObjList* pOL=rNewObj.GetSubList();
    if (pOL!=NULL && pOL->GetObjCount() && !rNewObj.ISA(E3dScene))
    if (pOL!=NULL && pOL->GetObjCount() && dynamic_cast<const E3dScene* >( &rNewObj) ==  nullptr)
    {
        // this is a group object!
        // If this were 3D scene, we'd only add an Undo for the scene itself
@@ -731,7 +731,7 @@ void SdrUndoRemoveObj::Undo()

        if(pObjList &&
           pObjList->GetOwnerObj() &&
           pObjList->GetOwnerObj()->ISA(SdrObjGroup))
           dynamic_cast<const SdrObjGroup*>(pObjList->GetOwnerObj()) != nullptr)
        {
            aOwnerAnchorPos = pObjList->GetOwnerObj()->GetAnchorPos();
        }
@@ -794,7 +794,7 @@ void SdrUndoInsertObj::Redo()
        Point aAnchorPos( 0, 0 );
        if ( pObjList &&
             pObjList->GetOwnerObj() &&
             pObjList->GetOwnerObj()->ISA(SdrObjGroup) )
             dynamic_cast<const SdrObjGroup*>(pObjList->GetOwnerObj()) != nullptr )
        {
            aAnchorPos = pObj->GetAnchorPos();
        }
@@ -1119,7 +1119,7 @@ void SdrUndoObjSetText::Undo()
    pTarget->ActionChanged();

    // #i124389# if it's a table, also need to relayout TextFrame
    if(0 != dynamic_cast< sdr::table::SdrTableObj* >(pTarget))
    if(dynamic_cast< sdr::table::SdrTableObj* >(pTarget) !=  nullptr)
    {
        pTarget->NbcAdjustTextFrameWidthAndHeight();
    }
@@ -1152,7 +1152,7 @@ void SdrUndoObjSetText::Redo()
    pTarget->ActionChanged();

    // #i124389# if it's a table, also need to relayout TextFrame
    if(0 != dynamic_cast< sdr::table::SdrTableObj* >(pTarget))
    if(dynamic_cast< sdr::table::SdrTableObj* >(pTarget) !=  nullptr)
    {
        pTarget->NbcAdjustTextFrameWidthAndHeight();
    }
@@ -1198,7 +1198,7 @@ void SdrUndoObjSetText::SdrRepeat(SdrView& rView)
        for (size_t nm=0; nm<nCount; ++nm)
        {
            SdrObject* pObj2=rML.GetMark(nm)->GetMarkedSdrObj();
            SdrTextObj* pTextObj=PTR_CAST(SdrTextObj,pObj2);
            SdrTextObj* pTextObj=dynamic_cast<SdrTextObj*>( pObj2 );
            if (pTextObj!=NULL)
            {
                if( bUndo )
diff --git a/svx/source/svdraw/svdview.cxx b/svx/source/svdraw/svdview.cxx
index f203509..def531e 100644
--- a/svx/source/svdraw/svdview.cxx
+++ b/svx/source/svdraw/svdview.cxx
@@ -456,7 +456,7 @@ SdrHitKind SdrView::PickAnything(const Point& rLogicPos, SdrViewEvent& rVEvt) co
    // check for URL field
    if (IsMacroMode() && eHit==SDRHIT_UNMARKEDOBJECT)
    {
        SdrTextObj* pTextObj=PTR_CAST(SdrTextObj,pHitObj);
        SdrTextObj* pTextObj=dynamic_cast<SdrTextObj*>( pHitObj );
        if (pTextObj!=NULL && pTextObj->HasText())
        {
            bool bTEHit(pPV &&
@@ -493,7 +493,7 @@ SdrHitKind SdrView::PickAnything(const Point& rLogicPos, SdrViewEvent& rVEvt) co
                    const SvxFieldItem* pItem=aEV.GetField(aTemporaryTextRelativePosition);
                    if (pItem!=NULL) {
                        const SvxFieldData* pFld=pItem->GetField();
                        const SvxURLField* pURL=PTR_CAST(SvxURLField,pFld);
                        const SvxURLField* pURL=dynamic_cast<const SvxURLField*>( pFld );
                        if (pURL!=NULL) {
                            eHit=SDRHIT_URLFIELD;
                            rVEvt.pURLField=pURL;
@@ -512,7 +512,7 @@ SdrHitKind SdrView::PickAnything(const Point& rLogicPos, SdrViewEvent& rVEvt) co
        Rectangle aBoundRect(pHitObj->GetCurrentBoundRect());

        // Force to SnapRect when Fontwork
        if(pHitObj->ISA(SdrTextObj) && static_cast<SdrTextObj*>(pHitObj)->IsFontwork())
        if( dynamic_cast<const SdrTextObj*>( pHitObj) != nullptr && static_cast<SdrTextObj*>(pHitObj)->IsFontwork())
        {
            aBoundRect = pHitObj->GetSnapRect();
        }
@@ -1080,7 +1080,7 @@ Pointer SdrView::GetPreferredPointer(const Point& rMousePos, const OutputDevice*
                bool b3DObjSelected = false;
                for (size_t a=0; !b3DObjSelected && a<GetMarkedObjectCount(); ++a) {
                    SdrObject* pObj = GetMarkedObjectByIndex(a);
                    if(pObj && pObj->ISA(E3dObject))
                    if(dynamic_cast<const E3dObject* >(pObj) !=  nullptr)
                        b3DObjSelected = true;
                }
                // If we have a 3D object, go on despite !IsShearAllowed,
@@ -1317,7 +1317,7 @@ SdrViewContext SdrView::GetContext() const
    {
        bool bPath=true;
        for( size_t nMarkNum = 0; nMarkNum < nMarkCount && bPath; ++nMarkNum )
            if (!GetMarkedObjectByIndex(nMarkNum)->ISA(SdrPathObj))
            if (dynamic_cast<const SdrPathObj*>(GetMarkedObjectByIndex(nMarkNum)) == nullptr)
                bPath=false;

        if( bPath )
@@ -1336,13 +1336,13 @@ SdrViewContext SdrView::GetContext() const
            if( !pMarkObj )
                continue;

            if( !pMarkObj->ISA( SdrGrafObj ) )
            if( dynamic_cast<const SdrGrafObj*>( pMarkObj) ==  nullptr )
                bGraf = false;

            if( !pMarkObj->ISA( SdrMediaObj ) )
            if( dynamic_cast<const SdrMediaObj*>( pMarkObj) ==  nullptr )
                bMedia = false;

            if( !pMarkObj->ISA( sdr::table::SdrTableObj ) )
            if( dynamic_cast<const sdr::table::SdrTableObj* >( pMarkObj ) ==  nullptr )
                bTable = false;
        }

diff --git a/svx/source/svdraw/svdviter.cxx b/svx/source/svdraw/svdviter.cxx
index 1078dc7..bfa66c5 100644
--- a/svx/source/svdraw/svdviter.cxx
+++ b/svx/source/svdraw/svdviter.cxx
@@ -136,7 +136,7 @@ SdrView* SdrViewIter::ImpFindView()
        while(mnListenerNum < nLsAnz)
        {
            SfxListener* pLs = mpModel->GetListener(mnListenerNum);
            mpAktView = PTR_CAST(SdrView, pLs);
            mpAktView = dynamic_cast<SdrView*>( pLs );

            if(mpAktView)
            {
diff --git a/svx/source/svdraw/svdxcgv.cxx b/svx/source/svdraw/svdxcgv.cxx
index f6ff158..0f65e95 100644
--- a/svx/source/svdraw/svdxcgv.cxx
+++ b/svx/source/svdraw/svdxcgv.cxx
@@ -325,7 +325,7 @@ bool SdrExchangeView::Paste(
                    const SdrLayerAdmin& rAd = pPg->GetLayerAdmin();
                    SdrLayerID nLayer(0);

                    if(pNeuObj->ISA(FmFormObj))
                    if(dynamic_cast<const FmFormObj*>( pNeuObj) !=  nullptr)
                    {
                        // for FormControls, force to form layer
                        nLayer = rAd.GetLayerID(rAd.GetControlLayerName(), true);
@@ -454,7 +454,7 @@ BitmapEx SdrExchangeView::GetMarkedObjBitmapEx(bool bNoVDevIfOneBmpMarked) const
            if(bNoVDevIfOneBmpMarked)
            {
                SdrObject*  pGrafObjTmp = GetMarkedObjectByIndex( 0 );
                SdrGrafObj* pGrafObj = PTR_CAST( SdrGrafObj, pGrafObjTmp );
                SdrGrafObj* pGrafObj = dynamic_cast<SdrGrafObj*>( pGrafObjTmp  );

                if( pGrafObj && ( pGrafObj->GetGraphicType() == GRAPHIC_BITMAP ) )
                {
@@ -539,7 +539,7 @@ GDIMetaFile SdrExchangeView::GetMarkedObjMetaFile(bool bNoVDevIfOneMtfMarked) co
        if( bNoVDevIfOneMtfMarked )
        {
            SdrObject*  pGrafObjTmp = GetMarkedObjectByIndex( 0 );
            SdrGrafObj* pGrafObj = ( GetMarkedObjectCount() ==1 ) ? PTR_CAST( SdrGrafObj, pGrafObjTmp ) : NULL;
            SdrGrafObj* pGrafObj = ( GetMarkedObjectCount() ==1 ) ? dynamic_cast<SdrGrafObj*>( pGrafObjTmp  ) : NULL;

            if( pGrafObj )
            {
@@ -749,7 +749,7 @@ SdrModel* SdrExchangeView::GetMarkedObjModel() const
            const SdrObject*    pObj = aSdrObjects[i];
            SdrObject*          pNeuObj;

            if( pObj->ISA( SdrPageObj ) )
            if( dynamic_cast<const SdrPageObj*>( pObj) !=  nullptr )
            {
                // convert SdrPageObj's to a graphic representation, because
                // virtual connection to referenced page gets lost in new model
diff --git a/svx/source/tbxctrls/colrctrl.cxx b/svx/source/tbxctrls/colrctrl.cxx
index 16756ad..65aad3f 100644
--- a/svx/source/tbxctrls/colrctrl.cxx
+++ b/svx/source/tbxctrls/colrctrl.cxx
@@ -255,7 +255,7 @@ void SvxColorDockingWindow::Notify( SfxBroadcaster& , const SfxHint& rHint )
{
    const SfxPoolItemHint* pPoolItemHint = dynamic_cast<const SfxPoolItemHint*>(&rHint);
    if ( pPoolItemHint
         && ( pPoolItemHint->GetObject()->ISA( SvxColorListItem ) ) )
         && ( dynamic_cast<const SvxColorListItem*>(pPoolItemHint->GetObject()) != nullptr ) )
    {
        // Die Liste der Farben hat sich geaendert
        pColorList = static_cast<SvxColorListItem*>( pPoolItemHint->GetObject() )->GetColorList();
diff --git a/svx/source/tbxctrls/grafctrl.cxx b/svx/source/tbxctrls/grafctrl.cxx
index 4c15786..22bd35f 100644
--- a/svx/source/tbxctrls/grafctrl.cxx
+++ b/svx/source/tbxctrls/grafctrl.cxx
@@ -666,7 +666,7 @@ void SvxGrafAttrHelper::ExecuteGrafAttr( SfxRequest& rReq, SdrView& rView )
            {
                SdrGrafObj* pObj = static_cast<SdrGrafObj*>( rMarkList.GetMark( 0 )->GetMarkedSdrObj() );

                if( pObj && pObj->ISA( SdrGrafObj ) &&
                if( pObj && dynamic_cast<const SdrGrafObj*>( pObj) !=  nullptr &&
                    ( pObj->GetGraphicType() != GRAPHIC_NONE ) &&
                    ( pObj->GetGraphicType() != GRAPHIC_DEFAULT ) )
                {
diff --git a/svx/source/tbxctrls/layctrl.cxx b/svx/source/tbxctrls/layctrl.cxx
index bfa4017..a557ac8 100644
--- a/svx/source/tbxctrls/layctrl.cxx
+++ b/svx/source/tbxctrls/layctrl.cxx
@@ -725,7 +725,7 @@ VclPtr<SfxPopupWindow> SvxTableToolBoxControl::CreatePopupWindow()

void SvxTableToolBoxControl::StateChanged( sal_uInt16, SfxItemState eState, const SfxPoolItem* pState )
{
    if ( pState && pState->ISA(SfxUInt16Item) )
    if ( pState && dynamic_cast<const SfxUInt16Item* >(pState) !=  nullptr )
    {
        sal_Int16 nValue = static_cast< const SfxUInt16Item* >( pState )->GetValue();
        bEnabled = ( nValue != 0 );
diff --git a/svx/source/tbxctrls/lboxctrl.cxx b/svx/source/tbxctrls/lboxctrl.cxx
index 53ac64e..8b0159b 100644
--- a/svx/source/tbxctrls/lboxctrl.cxx
+++ b/svx/source/tbxctrls/lboxctrl.cxx
@@ -242,7 +242,7 @@ void SvxUndoRedoControl::StateChanged(
            ToolBox& rBox = GetToolBox();
            rBox.SetQuickHelpText( GetId(), aDefaultText );
        }
        else if ( pState && pState->ISA( SfxStringItem ) )
        else if ( pState && dynamic_cast<const SfxStringItem*>( pState) !=  nullptr )
        {
            const SfxStringItem& rItem = *static_cast<const SfxStringItem *>(pState);
            ToolBox& rBox = GetToolBox();
@@ -255,7 +255,7 @@ void SvxUndoRedoControl::StateChanged(
    {
        aUndoRedoList.clear();

        if ( pState && pState->ISA( SfxStringListItem ) )
        if ( pState && dynamic_cast<const SfxStringListItem*>( pState) !=  nullptr )
        {
            const SfxStringListItem &rItem = *static_cast<const SfxStringListItem *>(pState);

diff --git a/svx/source/tbxctrls/linectrl.cxx b/svx/source/tbxctrls/linectrl.cxx
index bbaec33..56c80ee 100644
--- a/svx/source/tbxctrls/linectrl.cxx
+++ b/svx/source/tbxctrls/linectrl.cxx
@@ -166,7 +166,7 @@ void SvxLineStyleToolBoxControl::Update( const SfxPoolItem* pState )
        }
    }

    if ( pState && ( pState->ISA( SvxDashListItem ) ) )
    if ( pState && ( dynamic_cast<const SvxDashListItem*>( pState) !=  nullptr ) )
    {
        // The list of line styles has changed
        SvxLineBox* pBox = static_cast<SvxLineBox*>(GetToolBox().GetItemWindow( GetId() ));
@@ -227,7 +227,7 @@ void SvxLineWidthToolBoxControl::StateChanged(

            if ( eState == SfxItemState::DEFAULT )
            {
                DBG_ASSERT( pState->ISA(XLineWidthItem), "wrong ItemType" );
                DBG_ASSERT( dynamic_cast<const XLineWidthItem*>( pState) !=  nullptr, "wrong ItemType" );

                // Core-Unit handed over to MetricField
                // Should not happen in CreateItemWin ()!
@@ -531,7 +531,7 @@ void SvxLineEndWindow::StateChanged(
    if ( nSID == SID_LINEEND_LIST )
    {
        // The list of line ends (LineEndList) has changed
        if ( pState && pState->ISA( SvxLineEndListItem ))
        if ( pState && dynamic_cast<const SvxLineEndListItem*>( pState) !=  nullptr)
        {
            pLineEndList = static_cast<const SvxLineEndListItem*>(pState)->GetLineEndList();
            DBG_ASSERT( pLineEndList.is(), "LineEndList not found" );
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 11fde48..5a60b1c 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -1458,13 +1458,13 @@ void SvxColorWindow_Impl::StateChanged( sal_uInt16 nSID, SfxItemState eState, co
        }
        else if ( SfxItemState::DEFAULT <= eState && pState )
        {
            if ( pState->ISA( SvxColorItem ) )
            if ( dynamic_cast<const SvxColorItem*>( pState) !=  nullptr )
                aColor = static_cast<const SvxColorItem*>(pState)->GetValue();
            else if ( pState->ISA( XLineColorItem ) )
            else if ( dynamic_cast<const XLineColorItem*>( pState) !=  nullptr )
                aColor = static_cast<const XLineColorItem*>(pState)->GetColorValue();
            else if ( pState->ISA( XFillColorItem ) )
            else if ( dynamic_cast<const XFillColorItem*>( pState) !=  nullptr )
                aColor = static_cast<const XFillColorItem*>(pState)->GetColorValue();
            else if ( pState->ISA( SvxBackgroundColorItem ) )
            else if ( dynamic_cast<const SvxBackgroundColorItem*>( pState) !=  nullptr )
                aColor = static_cast<const SvxBackgroundColorItem*>(pState)->GetValue();
        }

@@ -1498,11 +1498,11 @@ void BorderColorStatus::StateChanged( sal_uInt16 nSID, SfxItemState eState, cons
{
    if ( SfxItemState::DEFAULT <= eState && pState )
    {
        if ( nSID == SID_FRAME_LINECOLOR && pState->ISA( SvxColorItem ) )
        if ( nSID == SID_FRAME_LINECOLOR && dynamic_cast<const SvxColorItem*>( pState) !=  nullptr )
        {
            maColor = static_cast< const SvxColorItem* >(pState)->GetValue();
        }
        else if ( pState->ISA( SvxLineItem ) )
        else if ( dynamic_cast<const SvxLineItem*>( pState) !=  nullptr )
        {
            const SvxBorderLine* pLine = static_cast< const SvxLineItem* >(pState)->GetLine();
            Color aColor ( COL_TRANSPARENT );
@@ -1786,7 +1786,7 @@ void SvxFrameWindow_Impl::StateChanged(
{
    if ( pState && nSID == SID_BORDER_REDUCED_MODE)
    {
        const SfxBoolItem* pItem = PTR_CAST( SfxBoolItem, pState );
        const SfxBoolItem* pItem = dynamic_cast<const SfxBoolItem*>( pState  );

        if ( pItem )
        {
@@ -1979,7 +1979,7 @@ void SfxStyleControllerItem_Impl::StateChanged(
            if ( SfxItemState::DEFAULT == eState )
            {
                const SfxTemplateItem* pStateItem =
                    PTR_CAST( SfxTemplateItem, pState );
                    dynamic_cast<const SfxTemplateItem*>( pState  );
                DBG_ASSERT( pStateItem != NULL, "SfxTemplateItem expected" );
                rControl.SetFamilyState( nIdx, pStateItem );
            }
@@ -2694,11 +2694,11 @@ void SvxColorToolBoxControl::StateChanged(
        }
        else if ( SfxItemState::DEFAULT <= eState && pState )
        {
            if ( pState->ISA( SvxColorItem ) )
            if ( dynamic_cast<const SvxColorItem*>( pState) !=  nullptr )
                aColor = static_cast< const SvxColorItem* >(pState)->GetValue();
            else if ( pState->ISA( XLineColorItem ) )
            else if ( dynamic_cast<const XLineColorItem*>( pState) !=  nullptr )
                aColor = static_cast< const XLineColorItem* >(pState)->GetColorValue();
            else if ( pState->ISA( XFillColorItem ) )
            else if ( dynamic_cast<const XFillColorItem*>( pState) !=  nullptr )
                aColor = static_cast< const XFillColorItem* >(pState)->GetColorValue();
        }
        m_xBtnUpdater->Update( aColor );
@@ -2895,7 +2895,7 @@ SvxSimpleUndoRedoController::~SvxSimpleUndoRedoController()

void SvxSimpleUndoRedoController::StateChanged( sal_uInt16, SfxItemState eState, const SfxPoolItem* pState )
{
    const SfxStringItem* pItem = PTR_CAST( SfxStringItem, pState );
    const SfxStringItem* pItem = dynamic_cast<const SfxStringItem*>( pState  );
    ToolBox& rBox = GetToolBox();
    if ( pItem && eState != SfxItemState::DISABLED )
    {
diff --git a/svx/source/toolbars/extrusionbar.cxx b/svx/source/toolbars/extrusionbar.cxx
index 21d84ba..b71f47b 100644
--- a/svx/source/toolbars/extrusionbar.cxx
+++ b/svx/source/toolbars/extrusionbar.cxx
@@ -550,7 +550,7 @@ void ExtrusionBar::execute( SdrView* pSdrView, SfxRequest& rReq, SfxBindings& rB
                for(size_t i=0; i<nCount; ++i)
                {
                    SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
                    if( pObj->ISA(SdrObjCustomShape) )
                    if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
                    {
                        if( bUndo )
                        {
@@ -640,7 +640,7 @@ void getExtrusionDirectionState( SdrView* pSdrView, SfxItemSet& rSet )
    for(size_t i=0; i<nCount; ++i)
    {
        SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
        if( pObj->ISA(SdrObjCustomShape) )
        if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
        {
            const SdrCustomShapeGeometryItem aGeometryItem( static_cast<const SdrCustomShapeGeometryItem&>(pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY )) );

@@ -788,7 +788,7 @@ void getExtrusionProjectionState( SdrView* pSdrView, SfxItemSet& rSet )
    for(size_t i=0; i<nCount; ++i)
    {
        SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
        if( pObj->ISA(SdrObjCustomShape) )
        if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
        {
            // see if this is an extruded customshape
            if( !bHasCustomShape )
@@ -846,7 +846,7 @@ void getExtrusionSurfaceState( SdrView* pSdrView, SfxItemSet& rSet )
    for(size_t i=0; i<nCount; ++i)
    {
        SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
        if( pObj->ISA(SdrObjCustomShape) )
        if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
        {
            const SdrCustomShapeGeometryItem aGeometryItem( static_cast<const SdrCustomShapeGeometryItem&>(pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY )) );

@@ -932,7 +932,7 @@ void getExtrusionDepthState( SdrView* pSdrView, SfxItemSet& rSet )
    for(size_t i=0; i<nCount; ++i)
    {
        SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
        if( pObj->ISA(SdrObjCustomShape) )
        if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
        {
            const SdrCustomShapeGeometryItem aGeometryItem( static_cast<const SdrCustomShapeGeometryItem&>(pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY )) );

@@ -1018,7 +1018,7 @@ void getExtrusionLightingDirectionState( SdrView* pSdrView, SfxItemSet& rSet )
    for(size_t i=0; i<nCount; ++i)
    {
        SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
        if( pObj->ISA(SdrObjCustomShape) )
        if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
        {
            const SdrCustomShapeGeometryItem aGeometryItem( static_cast<const SdrCustomShapeGeometryItem&>(pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY )) );

@@ -1093,7 +1093,7 @@ void getExtrusionLightingIntensityState( SdrView* pSdrView, SfxItemSet& rSet )
    for(size_t i=0; i<nCount; ++i)
    {
        SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
        if( pObj->ISA(SdrObjCustomShape) )
        if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
        {
            const SdrCustomShapeGeometryItem aGeometryItem( static_cast<const SdrCustomShapeGeometryItem&>(pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY )) );

@@ -1163,7 +1163,7 @@ void getExtrusionColorState( SdrView* pSdrView, SfxItemSet& rSet )
    for(size_t i=0; i<nCount; ++i)
    {
        SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
        if( pObj->ISA(SdrObjCustomShape) )
        if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
        {
            const SdrCustomShapeGeometryItem aGeometryItem( static_cast<const SdrCustomShapeGeometryItem&>(pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY )) );

@@ -1229,7 +1229,7 @@ bool checkForSelectedCustomShapes( SdrView* pSdrView, bool bOnlyExtruded )
    for(size_t i=0;(i<nCount) && !bFound ; ++i)
    {
        SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
        if( pObj->ISA(SdrObjCustomShape) )
        if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
        {
            if( bOnlyExtruded )
            {
diff --git a/svx/source/toolbars/fontworkbar.cxx b/svx/source/toolbars/fontworkbar.cxx
index 7fc75ce..89b3499 100644
--- a/svx/source/toolbars/fontworkbar.cxx
+++ b/svx/source/toolbars/fontworkbar.cxx
@@ -57,7 +57,7 @@ void SetAlignmentState( SdrView* pSdrView, SfxItemSet& rSet )
    for( size_t i = 0; i < nCount; ++i )
    {
        SdrObject* pObj = rMarkList.GetMark( i )->GetMarkedSdrObj();
        if( pObj->ISA(SdrObjCustomShape) )
        if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
        {
            sal_Int32 nOldAlignment = nAlignment;
            const SdrTextHorzAdjustItem&      rTextHorzAdjustItem    = static_cast<const SdrTextHorzAdjustItem&>(pObj->GetMergedItem( SDRATTR_TEXT_HORZADJUST ));
@@ -94,7 +94,7 @@ void SetCharacterSpacingState( SdrView* pSdrView, SfxItemSet& rSet )
    for( size_t i = 0; i < nCount; ++i )
    {
        SdrObject* pObj = rMarkList.GetMark( i )->GetMarkedSdrObj();
        if( pObj->ISA(SdrObjCustomShape) )
        if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
        {
            sal_Int32 nOldCharacterSpacing = nCharacterSpacing;
            const SvxCharScaleWidthItem& rCharScaleWidthItem = static_cast<const SvxCharScaleWidthItem&>(pObj->GetMergedItem( EE_CHAR_FONTWIDTH ));
@@ -119,7 +119,7 @@ void SetKernCharacterPairsState( SdrView* pSdrView, SfxItemSet& rSet )
    for( size_t i = 0; i < nCount; ++i )
    {
        SdrObject* pObj = rMarkList.GetMark( i )->GetMarkedSdrObj();
        if( pObj->ISA(SdrObjCustomShape) )
        if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
        {
            const SvxKerningItem& rKerningItem = static_cast<const SvxKerningItem&>(pObj->GetMergedItem( EE_CHAR_KERNING ));
            if ( rKerningItem.GetValue() )
@@ -139,7 +139,7 @@ void SetFontWorkShapeTypeState( SdrView* pSdrView, SfxItemSet& rSet )
    for( size_t i = 0; i < nCount; ++i )
    {
        SdrObject* pObj = rMarkList.GetMark( i )->GetMarkedSdrObj();
        if( pObj->ISA( SdrObjCustomShape ) )
        if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
        {
            const OUString sType( "Type" );
            const SdrCustomShapeGeometryItem aGeometryItem( static_cast<const SdrCustomShapeGeometryItem&>(pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY )));
@@ -230,7 +230,7 @@ bool checkForSelectedFontWork( SdrView* pSdrView, sal_uInt32& nCheckStatus )
    for(size_t i=0; (i<nCount) && !bFound ; ++i)
    {
        SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
        if( pObj->ISA(SdrObjCustomShape) )
        if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
        {
            const SdrCustomShapeGeometryItem aGeometryItem( static_cast<const SdrCustomShapeGeometryItem&>(pObj->GetMergedItem( SDRATTR_CUSTOMSHAPE_GEOMETRY )));
            const Any* pAny = aGeometryItem.GetPropertyValueByName( sTextPath, sTextPath );
@@ -453,7 +453,7 @@ void FontworkBar::execute( SdrView* pSdrView, SfxRequest& rReq, SfxBindings& rBi
                for( size_t i = 0; i < nCount; ++i )
                {
                    SdrObject* pObj = rMarkList.GetMark( i )->GetMarkedSdrObj();
                    if( pObj->ISA(SdrObjCustomShape) )
                    if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
                    {
                        const bool bUndo = pSdrView->IsUndoEnabled();

@@ -529,7 +529,7 @@ void FontworkBar::execute( SdrView* pSdrView, SfxRequest& rReq, SfxBindings& rBi
            for( size_t i = 0; i < nCount; ++i )
            {
                SdrObject* pObj = rMarkList.GetMark(i)->GetMarkedSdrObj();
                if( pObj->ISA(SdrObjCustomShape) )
                if( dynamic_cast<const SdrObjCustomShape*>( pObj) !=  nullptr )
                {
                    const bool bUndo = pSdrView->IsUndoEnabled();
                    if( bUndo )
diff --git a/svx/source/unodraw/UnoGraphicExporter.cxx b/svx/source/unodraw/UnoGraphicExporter.cxx
index f5cff76..1476201 100644
--- a/svx/source/unodraw/UnoGraphicExporter.cxx
+++ b/svx/source/unodraw/UnoGraphicExporter.cxx
@@ -348,7 +348,7 @@ IMPL_LINK_TYPED(GraphicExporter, CalcFieldValueHdl, EditFieldInfo*, pInfo, void)
        else if( mnPageNumber != -1 )
        {
            const SvxFieldData* pField = pInfo->GetField().GetField();
            if( pField && pField->ISA( SvxPageField ) )
            if( pField && dynamic_cast<const SvxPageField*>( pField) !=  nullptr )
            {
                OUString aPageNumValue;
                bool bUpper = false;
@@ -698,9 +698,9 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, 
                }

                std::unique_ptr< SdrView > pLocalView;
                if( PTR_CAST( FmFormModel, mpDoc ) )
                if( dynamic_cast<FmFormModel*>( mpDoc )  )
                {
                    pLocalView.reset( new FmFormView( PTR_CAST( FmFormModel, mpDoc ), aVDev ) );
                    pLocalView.reset( new FmFormView( dynamic_cast<FmFormModel*>( mpDoc ), aVDev )  );
                }
                else
                {
@@ -731,9 +731,9 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, 

                // create a view
                std::unique_ptr< SdrView > pView;
                if( PTR_CAST( FmFormModel, mpDoc ) )
                if( dynamic_cast<FmFormModel*>( mpDoc ) !=  nullptr  )
                {
                    pView.reset(new FmFormView( PTR_CAST( FmFormModel, mpDoc ), aVDev ));
                    pView.reset(new FmFormView( dynamic_cast<FmFormModel*>( mpDoc ), aVDev ) );
                }
                else
                {
@@ -827,7 +827,7 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, 
            if( !bVectorType )
            {
                SdrObject* pObj = aShapes.front();
                if( pObj && pObj->ISA( SdrGrafObj ) && !static_cast<SdrGrafObj*>(pObj)->HasText() )
                if( pObj && dynamic_cast<const SdrGrafObj*>( pObj) != nullptr && !static_cast<SdrGrafObj*>(pObj)->HasText() )
                {
                    aGraphic = static_cast<SdrGrafObj*>(pObj)->GetTransformedGraphic();
                    if ( aGraphic.GetType() == GRAPHIC_BITMAP )
@@ -853,7 +853,7 @@ bool GraphicExporter::GetGraphic( ExportSettings& rSettings, Graphic& aGraphic, 
            else if( rSettings.mbScrollText )
            {
                SdrObject* pObj = aShapes.front();
                if( pObj && pObj->ISA( SdrTextObj )
                if( pObj && dynamic_cast<const SdrTextObj*>( pObj) !=  nullptr
                    && static_cast<SdrTextObj*>(pObj)->HasText() )
                {
                    Rectangle aScrollRectangle;
diff --git a/svx/source/unodraw/unomod.cxx b/svx/source/unodraw/unomod.cxx
index 8d2d343..1f1b2e5a 100644
--- a/svx/source/unodraw/unomod.cxx
+++ b/svx/source/unodraw/unomod.cxx
@@ -615,7 +615,7 @@ uno::Any SAL_CALL SvxUnoDrawPagesAccess::getByIndex( sal_Int32 Index )

            if( !xPage.is() )
            {
                if( PTR_CAST( FmFormModel, mrModel.mpDoc ) )
                if( dynamic_cast<FmFormModel*>( mrModel.mpDoc )  )
                    xPage = static_cast<drawing::XDrawPage*>(new SvxFmDrawPage( pPage ));
                else
                    xPage = static_cast<drawing::XDrawPage*>(new SvxDrawPage( pPage ));
@@ -657,7 +657,7 @@ uno::Reference< drawing::XDrawPage > SAL_CALL SvxUnoDrawPagesAccess::insertNewBy
    {
        SdrPage* pPage;

        if( PTR_CAST( FmFormModel, mrModel.mpDoc ) )
        if( dynamic_cast<FmFormModel*>( mrModel.mpDoc )  )
            pPage = new FmFormPage(*static_cast<FmFormModel*>(mrModel.mpDoc));
        else
            pPage = new SdrPage(*mrModel.mpDoc);
diff --git a/svx/source/unodraw/unopage.cxx b/svx/source/unodraw/unopage.cxx
index ca5f867..3e355bbb 100644
--- a/svx/source/unodraw/unopage.cxx
+++ b/svx/source/unodraw/unopage.cxx
@@ -509,7 +509,7 @@ SdrObject *SvxDrawPage::_CreateSdrObject(const Reference< drawing::XShape > & xS
    if (!pNewObj)
        return NULL;

    if( pNewObj->ISA(E3dPolyScene))
    if( dynamic_cast<const E3dPolyScene* >(pNewObj) !=  nullptr)
    {
        // initialise scene
        E3dScene* pScene = static_cast<E3dScene*>(pNewObj);
@@ -529,7 +529,7 @@ SdrObject *SvxDrawPage::_CreateSdrObject(const Reference< drawing::XShape > & xS

        pScene->SetRectsDirty();
    }
    else if(pNewObj->ISA(E3dExtrudeObj))
    else if(dynamic_cast<const E3dExtrudeObj* >(pNewObj) !=  nullptr)
    {
        E3dExtrudeObj* pObj = static_cast<E3dExtrudeObj*>(pNewObj);
        basegfx::B2DPolygon aNewPolygon;
@@ -542,7 +542,7 @@ SdrObject *SvxDrawPage::_CreateSdrObject(const Reference< drawing::XShape > & xS
        // #107245# pObj->SetExtrudeCharacterMode(sal_True);
        pObj->SetMergedItem(Svx3DCharacterModeItem(true));
    }
    else if(pNewObj->ISA(E3dLatheObj))
    else if(dynamic_cast<const E3dLatheObj* >(pNewObj) !=  nullptr)
    {
        E3dLatheObj* pObj = static_cast<E3dLatheObj*>(pNewObj);
        basegfx::B2DPolygon aNewPolygon;
diff --git a/svx/source/unodraw/unoshap3.cxx b/svx/source/unodraw/unoshap3.cxx
index e65d9fe..8420776 100644
--- a/svx/source/unodraw/unoshap3.cxx
+++ b/svx/source/unodraw/unoshap3.cxx
@@ -130,7 +130,7 @@ void SAL_CALL Svx3DSceneObject::add( const Reference< drawing::XShape >& xShape 
        throw uno::RuntimeException();

    SdrObject* pSdrShape = mxPage->_CreateSdrObject( xShape );
    if( pSdrShape->ISA(E3dObject) )
    if( dynamic_cast<const E3dObject* >(pSdrShape) !=  nullptr )
    {
        mpObj->GetSubList()->NbcInsertObject( pSdrShape );

@@ -196,7 +196,7 @@ sal_Int32 SAL_CALL Svx3DSceneObject::getCount()

    sal_Int32 nRetval = 0;

    if(mpObj.is() && mpObj->ISA(E3dPolyScene) && mpObj->GetSubList())
    if(mpObj.is() && dynamic_cast<const E3dPolyScene* >(mpObj.get()) != nullptr && mpObj->GetSubList())
        nRetval = mpObj->GetSubList()->GetObjCount();
    return nRetval;
}
diff --git a/svx/source/unodraw/unoshap4.cxx b/svx/source/unodraw/unoshap4.cxx
index e087d61..dbc3925 100644
--- a/svx/source/unodraw/unoshap4.cxx
+++ b/svx/source/unodraw/unoshap4.cxx
@@ -94,7 +94,7 @@ bool SvxOle2Shape::setPropertyValueImpl( const OUString& rName, const SfxItemPro
        // TODO/LATER: seems to make no sense for iconified object

        awt::Rectangle aVisArea;
        if( (rValue >>= aVisArea) && mpObj->ISA(SdrOle2Obj))
        if( (rValue >>= aVisArea) && dynamic_cast<const SdrOle2Obj* >(mpObj.get()) != nullptr)
        {
            Size aTmp( aVisArea.X + aVisArea.Width, aVisArea.Y + aVisArea.Height );
            uno::Reference < embed::XEmbeddedObject > xObj = static_cast<SdrOle2Obj*>(mpObj.get())->GetObjRef();
@@ -264,7 +264,7 @@ bool SvxOle2Shape::getPropertyValueImpl( const OUString& rName, const SfxItemPro
    case OWN_ATTR_OLE_VISAREA:
    {
        awt::Rectangle aVisArea;
        if( mpObj->ISA(SdrOle2Obj))
        if( dynamic_cast<const SdrOle2Obj* >(mpObj.get()) != nullptr)
        {
            MapMode aMapMode( MAP_100TH_MM ); // the API uses this map mode
            Size aTmp = static_cast<SdrOle2Obj*>(mpObj.get())->GetOrigObjSize( &aMapMode ); // get the size in the requested map mode
diff --git a/svx/source/unodraw/unoshape.cxx b/svx/source/unodraw/unoshape.cxx
index 225e420..8e7d317 100644
--- a/svx/source/unodraw/unoshape.cxx
+++ b/svx/source/unodraw/unoshape.cxx
@@ -1159,7 +1159,7 @@ void SAL_CALL SvxShape::setPosition( const awt::Point& Position ) throw(uno::Run
    {
        // do NOT move 3D objects, this would change the homogen
        // transformation matrix
        if(!mpObj->ISA(E3dCompoundObject))
        if(dynamic_cast<const E3dCompoundObject* >(mpObj.get()) == nullptr)
        {
            Rectangle aRect( svx_getLogicRectHack(mpObj.get()) );
            Point aLocalPos( Position.X, Position.Y );
@@ -2625,7 +2625,7 @@ bool SvxShape::getPropertyValueImpl( const OUString&, const SfxItemPropertySimpl

    case OWN_ATTR_ISFONTWORK:
    {
        rValue <<= mpObj->ISA(SdrTextObj) && static_cast<SdrTextObj*>(mpObj.get())->IsFontwork();
        rValue <<= dynamic_cast<const SdrTextObj*>(mpObj.get()) != nullptr && static_cast<SdrTextObj*>(mpObj.get())->IsFontwork();
        break;
    }

@@ -2690,7 +2690,7 @@ bool SvxShape::getPropertyValueImpl( const OUString&, const SfxItemPropertySimpl
    case OWN_ATTR_MIRRORED:
    {
        bool bMirror = false;
        if( mpObj.is() && mpObj->ISA(SdrGrafObj) )
        if( mpObj.is() && dynamic_cast<const SdrGrafObj*>(mpObj.get()) != nullptr )
            bMirror = static_cast<SdrGrafObj*>(mpObj.get())->IsMirrored();

        rValue <<= bMirror;
@@ -3094,7 +3094,7 @@ void SvxShape::setAllPropertiesToDefault() throw (uno::RuntimeException, std::ex
        throw lang::DisposedException();
    mpObj->ClearMergedItem(); // nWhich == 0 => all

    if(mpObj->ISA(SdrGrafObj))
    if(dynamic_cast<const SdrGrafObj*>(mpObj.get()) != nullptr)
    {
        // defaults for graphic objects have changed:
        mpObj->SetMergedItem( XFillStyleItem( drawing::FillStyle_NONE ) );
@@ -3106,7 +3106,7 @@ void SvxShape::setAllPropertiesToDefault() throw (uno::RuntimeException, std::ex
    // does not load lathe or extrude objects, it is possible to set the items
    // here.
    // For other solution possibilities, see task description.
    if(mpObj->ISA(E3dLatheObj) || mpObj->ISA(E3dExtrudeObj))
    if( dynamic_cast<const E3dLatheObj* >(mpObj.get())  != nullptr|| dynamic_cast<const E3dExtrudeObj* >(mpObj.get()) != nullptr)
    {
        mpObj->SetMergedItem(Svx3DCharacterModeItem(true));
    }
@@ -3795,14 +3795,14 @@ uno::Reference< uno::XInterface > SAL_CALL SvxShape::getParent(  )
        switch( pObjList->GetListKind() )
        {
        case SDROBJLIST_GROUPOBJ:
            if( pObjList->GetOwnerObj()->ISA( SdrObjGroup ) )
                return PTR_CAST( SdrObjGroup, pObjList->GetOwnerObj())->getUnoShape();
            else if( pObjList->GetOwnerObj()->ISA( E3dScene ) )
                return PTR_CAST( E3dScene, pObjList->GetOwnerObj())->getUnoShape();
            if(dynamic_cast<const SdrObjGroup*>( pObjList->GetOwnerObj()) != nullptr )
                return dynamic_cast<SdrObjGroup*>( pObjList->GetOwnerObj())->getUnoShape( );
            else if( dynamic_cast<const E3dScene* >(pObjList->GetOwnerObj() ) != nullptr)
                return dynamic_cast< E3dScene* >(pObjList->GetOwnerObj())->getUnoShape();
            break;
        case SDROBJLIST_DRAWPAGE:
        case SDROBJLIST_MASTERPAGE:
            return PTR_CAST( SdrPage, pObjList )->getUnoPage();
            return dynamic_cast<SdrPage*>( pObjList )->getUnoPage( );
        default:
            OSL_FAIL( "SvxShape::getParent(  ): unexpected SdrObjListKind" );
            break;
diff --git a/svx/source/unodraw/unoshtxt.cxx b/svx/source/unodraw/unoshtxt.cxx
index 8e26557..bbfcb08 100644
--- a/svx/source/unodraw/unoshtxt.cxx
+++ b/svx/source/unodraw/unoshtxt.cxx
@@ -115,7 +115,7 @@ private:
    bool                            HasView() const { return mpView != nullptr; }
    bool                            IsEditMode() const
                                    {
                                        SdrTextObj* pTextObj = PTR_CAST( SdrTextObj, mpObject );
                                        SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>( mpObject  );
                                        return mbShapeIsEditMode && pTextObj && pTextObj->IsTextEditActive();
                                    }

@@ -395,7 +395,7 @@ void SvxTextEditSourceImpl::Notify(SfxBroadcaster& rBC, const SfxHint& rHint)
                    // AccessibleCell
                    if (mpObject && mpText)
                    {
                        sdr::table::SdrTableObj* pTableObj = PTR_CAST( sdr::table::SdrTableObj, mpObject );
                        sdr::table::SdrTableObj* pTableObj = dynamic_cast< sdr::table::SdrTableObj* >( mpObject );
                        if(pTableObj)
                        {
                            sdr::table::CellRef xCell = pTableObj->getActiveCell();
@@ -530,7 +530,7 @@ void SvxTextEditSourceImpl::SetupOutliner()
    // layout
    if( mpObject && mpOutliner )
    {
        SdrTextObj* pTextObj = PTR_CAST( SdrTextObj, mpObject );
        SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>( mpObject  );
        Rectangle aPaintRect;
        if( pTextObj )
        {
@@ -552,7 +552,7 @@ void SvxTextEditSourceImpl::UpdateOutliner()
    // layout
    if( mpObject && mpOutliner )
    {
        SdrTextObj* pTextObj = PTR_CAST( SdrTextObj, mpObject );
        SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>( mpObject  );
        Rectangle aPaintRect;
        if( pTextObj )
        {
@@ -580,7 +580,7 @@ SvxTextForwarder* SvxTextEditSourceImpl::GetBackgroundTextForwarder()
    {
        if( mpOutliner == NULL )
        {
            SdrTextObj* pTextObj = PTR_CAST( SdrTextObj, mpObject );
            SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>( mpObject  );
            sal_uInt16 nOutlMode = OUTLINERMODE_TEXTOBJECT;
            if( pTextObj && pTextObj->IsTextFrame() && pTextObj->GetTextKind() == OBJ_OUTLINETEXT )
                nOutlMode = OUTLINERMODE_OUTLINEOBJECT;
@@ -626,7 +626,7 @@ SvxTextForwarder* SvxTextEditSourceImpl::GetBackgroundTextForwarder()
        mpTextForwarder->flushCache();

        OutlinerParaObject* pOutlinerParaObject = NULL;
        SdrTextObj* pTextObj = PTR_CAST( SdrTextObj, mpObject );
        SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>( mpObject  );
        if( pTextObj && pTextObj->getActiveText() == mpText )
            pOutlinerParaObject = pTextObj->GetEditOutlinerParaObject(); // Get the OutlinerParaObject if text edit is active
        bool bOwnParaObj(false);
@@ -764,7 +764,7 @@ SvxDrawOutlinerViewForwarder* SvxTextEditSourceImpl::CreateViewForwarder()
        // register as listener - need to broadcast state change messages
        mpView->GetTextEditOutliner()->SetNotifyHdl( LINK(this, SvxTextEditSourceImpl, NotifyHdl) );

        SdrTextObj* pTextObj = PTR_CAST( SdrTextObj, mpObject );
        SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>( mpObject  );
        if( pTextObj )
        {
            Rectangle aBoundRect( pTextObj->GetCurrentBoundRect() );
@@ -820,7 +820,7 @@ SvxEditViewForwarder* SvxTextEditSourceImpl::GetEditViewForwarder( bool bCreate 

            if(mpView->SdrBeginTextEdit(mpObject, 0L, 0L, false, nullptr, 0L, false, false))
            {
                SdrTextObj* pTextObj = PTR_CAST( SdrTextObj, mpObject );
                SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>( mpObject  );
                if (pTextObj && pTextObj->IsTextEditActive())
                {
                    // create new view forwarder
@@ -935,7 +935,7 @@ Rectangle SvxTextEditSourceImpl::GetVisArea()
        }

        // offset vis area by edit engine left-top position
        SdrTextObj* pTextObj = PTR_CAST( SdrTextObj, mpObject );
        SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>( mpObject  );
        if( pTextObj )
        {
            Rectangle aAnchorRect;
diff --git a/svx/source/unogallery/unogaltheme.cxx b/svx/source/unogallery/unogaltheme.cxx
index c15c8cb..e4e937a 100644
--- a/svx/source/unogallery/unogaltheme.cxx
+++ b/svx/source/unogallery/unogaltheme.cxx
@@ -285,7 +285,7 @@ void SAL_CALL GalleryTheme::update(  )
    {
        GalleryDrawingModel* pModel = GalleryDrawingModel::getImplementation( Drawing );

        if( pModel && pModel->GetDoc() && pModel->GetDoc()->ISA( FmFormModel ) )
        if( pModel && pModel->GetDoc() && dynamic_cast<const FmFormModel*>(pModel->GetDoc()) != nullptr )
        {
            // Here we're inserting something that's already a gallery theme drawing
            nIndex = ::std::max( ::std::min( nIndex, getCount() ), sal_Int32( 0 ) );
diff --git a/tools/source/ref/errinf.cxx b/tools/source/ref/errinf.cxx
index 68687ca..dc0e8b0 100644
--- a/tools/source/ref/errinf.cxx
+++ b/tools/source/ref/errinf.cxx
@@ -98,6 +98,10 @@ void EDcr_Impl::UnRegisterEDcr(DynamicErrorInfo *pDcr)
}

TYPEINIT0(ErrorInfo);
ErrorInfo::~ErrorInfo()
{
}

TYPEINIT1(DynamicErrorInfo, ErrorInfo);
TYPEINIT1(StringErrorInfo, DynamicErrorInfo);
TYPEINIT1(TwoStringErrorInfo, DynamicErrorInfo);
@@ -285,7 +289,7 @@ sal_uInt16 ErrorHandler::HandleError_Impl(
    else
        nErrFlags |= ERRCODE_MSG_ERROR;

    DynamicErrorInfo* pDynPtr=PTR_CAST(DynamicErrorInfo,pInfo);
    DynamicErrorInfo* pDynPtr=dynamic_cast<DynamicErrorInfo*>(pInfo);
    if(pDynPtr)
    {
        sal_uInt16 nDynFlags = pDynPtr->GetDialogMask();