diff options
author | Xisco Fauli <xiscofauli@libreoffice.org> | 2023-08-10 10:36:45 +0200 |
---|---|---|
committer | Xisco Fauli <xiscofauli@libreoffice.org> | 2023-08-10 16:33:51 +0200 |
commit | 5b54f61e2c969a547582f759803f3c4f80d44697 (patch) | |
tree | ca7e3246cafe2f956fe0d6236a73842e4a57f770 | |
parent | 058a9522e067ac7a49a13797fc0f13269967bf24 (diff) |
svgio: avoid dynamic_cast
Change-Id: I9a2e2c4341476a59ffb001c42e7812cb8249c856
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155548
Tested-by: Jenkins
Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
-rw-r--r-- | svgio/source/svgreader/svgdocumenthandler.cxx | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/svgio/source/svgreader/svgdocumenthandler.cxx b/svgio/source/svgreader/svgdocumenthandler.cxx index 8e92d3ddd339..fe942d53f6b3 100644 --- a/svgio/source/svgreader/svgdocumenthandler.cxx +++ b/svgio/source/svgreader/svgdocumenthandler.cxx @@ -618,24 +618,23 @@ namespace case SVGToken::TextPath: { const auto& rChilds = mpTarget->getChildren(); - SvgCharacterNode* pTarget = nullptr; if(!rChilds.empty()) { - pTarget = dynamic_cast< SvgCharacterNode* >(rChilds[rChilds.size() - 1].get()); - } + SvgNode* pChild = rChilds[rChilds.size() - 1].get(); + if ( pChild->getType() == SVGToken::Character ) + { + SvgCharacterNode& rSvgCharacterNode = static_cast< SvgCharacterNode& >(*pChild); - if(pTarget) - { - // concatenate to current character span - pTarget->concatenate(aChars); - } - else - { - // add character span as simplified tspan (no arguments) - // as direct child of SvgTextNode/SvgTspanNode/SvgTextPathNode - new SvgCharacterNode(maDocument, mpTarget, aChars); + // concatenate to current character span + rSvgCharacterNode.concatenate(aChars); + break; + } } + + // add character span as simplified tspan (no arguments) + // as direct child of SvgTextNode/SvgTspanNode/SvgTextPathNode + new SvgCharacterNode(maDocument, mpTarget, aChars); break; } case SVGToken::Style: |