diff options
author | Dimitri van Heesch <doxygen@gmail.com> | 2021-04-26 17:32:20 (GMT) |
---|---|---|
committer | Dimitri van Heesch <doxygen@gmail.com> | 2021-04-26 17:32:20 (GMT) |
commit | 55e86052e0522ac7b51743449055572cc8bc7823 (patch) | |
tree | 7f69870aea5296850947967e567706538082dae5 /src/dotnode.cpp | |
parent | 51316839084c3292a8fb216e73ed146683028d4a (diff) | |
download | Doxygen-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.cpp | 37 |
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"; } |