summaryrefslogtreecommitdiff
path: root/filter/source/msfilter
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-11-26 13:18:04 +0000
committerCaolán McNamara <caolanm@redhat.com>2017-11-27 10:10:51 +0100
commit1ba34254aca7beee66a9fe741d77b45f362ef116 (patch)
treeecff8c1689c3fda084ee9cbcb80ef72d7d8cd20d /filter/source/msfilter
parentbb149908f142a59faa3ed61aaa1277b608cc7e40 (diff)
ofz#4435 Bad-cast
Change-Id: Ie0364c758af84097cee93e4f6c5e8af2816359d4 Reviewed-on: https://gerrit.libreoffice.org/45286 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'filter/source/msfilter')
-rw-r--r--filter/source/msfilter/msdffimp.cxx24
1 files changed, 16 insertions, 8 deletions
diff --git a/filter/source/msfilter/msdffimp.cxx b/filter/source/msfilter/msdffimp.cxx
index 8ea4619c89f0..c2f77d7beb2b 100644
--- a/filter/source/msfilter/msdffimp.cxx
+++ b/filter/source/msfilter/msdffimp.cxx
@@ -4100,11 +4100,15 @@ SdrObject* SvxMSDffManager::ImportGroup( const DffRecordHeader& rHd, SvStream& r
return pRet;
sal_Int32 nShapeId;
SdrObject* pTmp = ImportGroup( aRecHd2, rSt, pClientData, aGroupClientAnchor, aGroupChildAnchor, nCalledByGroup + 1, &nShapeId );
- if ( pTmp && pRet && static_cast<SdrObjGroup*>(pRet)->GetSubList() )
+ if (pTmp)
{
- static_cast<SdrObjGroup*>(pRet)->GetSubList()->NbcInsertObject( pTmp );
- if( nShapeId )
- insertShapeId( nShapeId, pTmp );
+ SdrObjGroup* pGroup = dynamic_cast<SdrObjGroup*>(pRet);
+ if (pGroup && pGroup->GetSubList())
+ {
+ pGroup->GetSubList()->NbcInsertObject(pTmp);
+ if (nShapeId)
+ insertShapeId(nShapeId, pTmp);
+ }
}
}
else if ( aRecHd2.nRecType == DFF_msofbtSpContainer )
@@ -4113,11 +4117,15 @@ SdrObject* SvxMSDffManager::ImportGroup( const DffRecordHeader& rHd, SvStream& r
return pRet;
sal_Int32 nShapeId;
SdrObject* pTmp = ImportShape( aRecHd2, rSt, pClientData, aClientRect, aGlobalChildRect, nCalledByGroup + 1, &nShapeId );
- if ( pTmp && pRet && static_cast<SdrObjGroup*>(pRet)->GetSubList())
+ if (pTmp)
{
- static_cast<SdrObjGroup*>(pRet)->GetSubList()->NbcInsertObject( pTmp );
- if( nShapeId )
- insertShapeId( nShapeId, pTmp );
+ SdrObjGroup* pGroup = dynamic_cast<SdrObjGroup*>(pRet);
+ if (pGroup && pGroup->GetSubList())
+ {
+ pGroup->GetSubList()->NbcInsertObject(pTmp);
+ if (nShapeId)
+ insertShapeId(nShapeId, pTmp);
+ }
}
}
if (!aRecHd2.SeekToEndOfRecord(rSt))