summaryrefslogtreecommitdiff
path: root/svgio
diff options
context:
space:
mode:
authorXisco Fauli <xiscofauli@libreoffice.org>2023-08-10 10:36:45 +0200
committerXisco Fauli <xiscofauli@libreoffice.org>2023-08-10 16:33:51 +0200
commit5b54f61e2c969a547582f759803f3c4f80d44697 (patch)
treeca7e3246cafe2f956fe0d6236a73842e4a57f770 /svgio
parent058a9522e067ac7a49a13797fc0f13269967bf24 (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>
Diffstat (limited to 'svgio')
-rw-r--r--svgio/source/svgreader/svgdocumenthandler.cxx25
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: