From 1c4af951a29d32b486e49a225f812b32e24dbfce Mon Sep 17 00:00:00 2001 From: Jonathan Stone Date: Tue, 15 Oct 2024 14:21:06 -0700 Subject: [PATCH] Reduce the number of dynamic casts --- source/MaterialXCore/Element.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/source/MaterialXCore/Element.cpp b/source/MaterialXCore/Element.cpp index 16bf75c1c8..2627be60a1 100644 --- a/source/MaterialXCore/Element.cpp +++ b/source/MaterialXCore/Element.cpp @@ -287,9 +287,10 @@ ElementPtr Element::changeChildCategory(ElementPtr child, const string& category template shared_ptr Element::getChildOfType(const string& name) const { ElementPtr child; - if (isA() && asA()->hasDataLibrary()) + DocumentPtr doc = asA(); + if (doc && doc->hasDataLibrary()) { - child = asA()->getDataLibrary()->getChild(name); + child = doc->getDataLibrary()->getChild(name); } if (!child) { @@ -301,9 +302,10 @@ template shared_ptr Element::getChildOfType(const string& name) con template vector> Element::getChildrenOfType(const string& category) const { vector> children; - if (isA() && asA()->hasDataLibrary()) + DocumentPtr doc = asA(); + if (doc && doc->hasDataLibrary()) { - children = asA()->getDataLibrary()->getChildrenOfType(category); + children = doc->getDataLibrary()->getChildrenOfType(category); } for (ElementPtr child : _childOrder) {