svx/source/engine3d/obj3d.cxx |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

New commits:
commit e9920a67886a930c327776ad8f7736e214ea0e98
Author:     Noel Grandin <noelgran...@collabora.co.uk>
AuthorDate: Tue Nov 1 14:35:23 2022 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Tue Nov 1 15:54:24 2022 +0100

    tdf#54857 elide dynamic_cast
    
    shaves 2% off load time of this ppt
    
    Change-Id: I025bae9dbc6a01cd193e2a4721f50cf60ac08dc5
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/142112
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/svx/source/engine3d/obj3d.cxx b/svx/source/engine3d/obj3d.cxx
index 64e0d8444f9d..4d8ad7add1de 100644
--- a/svx/source/engine3d/obj3d.cxx
+++ b/svx/source/engine3d/obj3d.cxx
@@ -264,7 +264,10 @@ void E3dObject::StructureChanged()
 
 E3dScene* E3dObject::getParentE3dSceneFromE3dObject() const
 {
-    return dynamic_cast< E3dScene* >(getParentSdrObjectFromSdrObject());
+    SdrObject* pParent = getParentSdrObjectFromSdrObject();
+    if( pParent && pParent->GetObjIdentifier() == SdrObjKind::E3D_Scene )
+        return static_cast<E3dScene* >(pParent);
+    return nullptr;
 }
 
 // Determine the top-level scene object

Reply via email to