Escape angle brackets in dot file labels
authorRob Hughes <robert.hughes@arm.com>
Wed, 6 Nov 2019 09:36:29 +0000 (09:36 +0000)
committerMatteo Martincigh <matteo.martincigh@arm.com>
Thu, 7 Nov 2019 09:34:48 +0000 (09:34 +0000)
This was a bug that meant invalid dot files were produced due to MemCopy
layers having a name including "->".

Change-Id: If9f5b13d433f6a7328bf0ad8c7ec89cdce2462b0
Signed-off-by: Rob Hughes <robert.hughes@arm.com>
src/armnnUtils/DotSerializer.cpp

index b3d3d10..1f36cf7 100644 (file)
@@ -6,6 +6,7 @@
 #include "DotSerializer.hpp"
 
 #include <boost/assert.hpp>
+#include <boost/algorithm/string/replace.hpp>
 #include <sstream>
 #include <cstring>
 
@@ -23,6 +24,14 @@ std::string Indent(int numSpaces)
     }
     return ss.str();
 }
+
+std::string Escape(std::string s)
+{
+    boost::replace_all(s, "<", "\\<");
+    boost::replace_all(s, ">", "\\>");
+    return s;
+}
+
 } //namespace
 
 
@@ -151,7 +160,7 @@ NodeContent::~NodeContent()
     }
     for (auto & content : m_Contents)
     {
-        ss << content;
+        ss << Escape(content);
         ss << "\\l";
     }
     ss << "}\"";