summaryrefslogtreecommitdiffstats
path: root/src/dotnode.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2021-04-26 17:32:20 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2021-04-26 17:32:20 (GMT)
commit55e86052e0522ac7b51743449055572cc8bc7823 (patch)
tree7f69870aea5296850947967e567706538082dae5 /src/dotnode.cpp
parent51316839084c3292a8fb216e73ed146683028d4a (diff)
downloadDoxygen-55e86052e0522ac7b51743449055572cc8bc7823.zip
Doxygen-55e86052e0522ac7b51743449055572cc8bc7823.tar.gz
Doxygen-55e86052e0522ac7b51743449055572cc8bc7823.tar.bz2
Fix issues caused by QCString::rawData and QCString::operator[]
- methods were marked const but still returned a non-const reference, cause wrongly optimized code for some platforms/compilers
Diffstat (limited to 'src/dotnode.cpp')
-rw-r--r--src/dotnode.cpp37
1 files changed, 15 insertions, 22 deletions
diff --git a/src/dotnode.cpp b/src/dotnode.cpp
index 8dcfaaf..bfc7c08 100644
--- a/src/dotnode.cpp
+++ b/src/dotnode.cpp
@@ -609,15 +609,13 @@ void DotNode::writeXML(TextStream &t,bool isClassGraph) const
if (!m_url.isEmpty())
{
QCString url(m_url);
- const char *refPtr = url.data();
- char *urlPtr = strchr(url.rawData(),'$');
- if (urlPtr)
+ int dollarPos = url.find('$');
+ if (dollarPos!=-1)
{
- *urlPtr++='\0';
- t << " <link refid=\"" << convertToXML(urlPtr) << "\"";
- if (*refPtr!='\0')
+ t << " <link refid=\"" << convertToXML(url.mid(dollarPos+1)) << "\"";
+ if (dollarPos>0)
{
- t << " external=\"" << convertToXML(refPtr) << "\"";
+ t << " external=\"" << convertToXML(url.left(dollarPos)) << "\"";
}
t << "/>\n";
}
@@ -673,15 +671,13 @@ void DotNode::writeDocbook(TextStream &t,bool isClassGraph) const
if (!m_url.isEmpty())
{
QCString url(m_url);
- const char *refPtr = url.data();
- char *urlPtr = strchr(url.rawData(),'$');
- if (urlPtr)
+ int dollarPos = url.find('$');
+ if (dollarPos!=-1)
{
- *urlPtr++='\0';
- t << " <link refid=\"" << convertToXML(urlPtr) << "\"";
- if (*refPtr!='\0')
+ t << " <link refid=\"" << convertToXML(url.mid(dollarPos+1)) << "\"";
+ if (dollarPos>0)
{
- t << " external=\"" << convertToXML(refPtr) << "\"";
+ t << " external=\"" << convertToXML(url.left(dollarPos)) << "\"";
}
t << "/>\n";
}
@@ -742,18 +738,15 @@ void DotNode::writeDEF(TextStream &t) const
if (!m_url.isEmpty())
{
QCString url(m_url);
- const char *refPtr = url.data();
- char *urlPtr = strchr(url.rawData(),'$');
- if (urlPtr)
+ int dollarPos = url.find('$');
+ if (dollarPos!=-1)
{
- *urlPtr++='\0';
t << nodePrefix << "link = {\n" << " "
- << nodePrefix << "link-id = '" << urlPtr << "';\n";
-
- if (*refPtr!='\0')
+ << nodePrefix << "link-id = '" << url.mid(dollarPos+1) << "';\n";
+ if (dollarPos>0)
{
t << " " << nodePrefix << "link-external = '"
- << refPtr << "';\n";
+ << url.left(dollarPos) << "';\n";
}
t << " };\n";
}