Index: src/compiler/graph-visualizer.cc |
diff --git a/src/compiler/graph-visualizer.cc b/src/compiler/graph-visualizer.cc |
index 304787552f65ef177a797e932b9fbed336a7fa1b..5bd8de7aafb82e5a66e69936aa39c02f8ad52f38 100644 |
--- a/src/compiler/graph-visualizer.cc |
+++ b/src/compiler/graph-visualizer.cc |
@@ -4,6 +4,9 @@ |
#include "src/compiler/graph-visualizer.h" |
+#include <sstream> |
+#include <string> |
+ |
#include "src/compiler/generic-algorithm.h" |
#include "src/compiler/generic-node.h" |
#include "src/compiler/generic-node-inl.h" |
@@ -24,13 +27,15 @@ namespace compiler { |
class Escaped { |
public: |
- explicit Escaped(const OStringStream& os, const char* escaped_chars = "<>|{}") |
- : str_(os.c_str()), escaped_chars_(escaped_chars) {} |
- |
- friend OStream& operator<<(OStream& os, const Escaped& e) { |
- for (const char* s = e.str_; *s != '\0'; ++s) { |
- if (e.needs_escape(*s)) os << "\\"; |
- os << *s; |
+ explicit Escaped(const std::ostringstream& os, |
+ const char* escaped_chars = "<>|{}") |
+ : str_(os.str()), escaped_chars_(escaped_chars) {} |
+ |
+ friend std::ostream& operator<<(std::ostream& os, const Escaped& e) { |
+ for (std::string::const_iterator i = e.str_.begin(); i != e.str_.end(); |
+ ++i) { |
+ if (e.needs_escape(*i)) os << "\\"; |
+ os << *i; |
} |
return os; |
} |
@@ -43,13 +48,14 @@ class Escaped { |
return false; |
} |
- const char* const str_; |
+ const std::string str_; |
const char* const escaped_chars_; |
}; |
class JSONGraphNodeWriter : public NullNodeVisitor { |
public: |
- JSONGraphNodeWriter(OStream& os, Zone* zone, const Graph* graph) // NOLINT |
+ JSONGraphNodeWriter(std::ostream& os, Zone* zone, |
+ const Graph* graph) // NOLINT |
: os_(os), |
graph_(graph), |
first_node_(true) {} |
@@ -59,7 +65,7 @@ class JSONGraphNodeWriter : public NullNodeVisitor { |
GenericGraphVisit::Control Pre(Node* node); |
private: |
- OStream& os_; |
+ std::ostream& os_; |
const Graph* const graph_; |
bool first_node_; |
@@ -73,7 +79,7 @@ GenericGraphVisit::Control JSONGraphNodeWriter::Pre(Node* node) { |
} else { |
os_ << ","; |
} |
- OStringStream label; |
+ std::ostringstream label; |
label << *node->op(); |
os_ << "{\"id\":" << node->id() << ",\"label\":\"" << Escaped(label, "\"") |
<< "\""; |
@@ -101,7 +107,8 @@ GenericGraphVisit::Control JSONGraphNodeWriter::Pre(Node* node) { |
class JSONGraphEdgeWriter : public NullNodeVisitor { |
public: |
- JSONGraphEdgeWriter(OStream& os, Zone* zone, const Graph* graph) // NOLINT |
+ JSONGraphEdgeWriter(std::ostream& os, Zone* zone, |
+ const Graph* graph) // NOLINT |
: os_(os), |
graph_(graph), |
first_edge_(true) {} |
@@ -111,7 +118,7 @@ class JSONGraphEdgeWriter : public NullNodeVisitor { |
GenericGraphVisit::Control PreEdge(Node* from, int index, Node* to); |
private: |
- OStream& os_; |
+ std::ostream& os_; |
const Graph* const graph_; |
bool first_edge_; |
@@ -146,7 +153,7 @@ GenericGraphVisit::Control JSONGraphEdgeWriter::PreEdge(Node* from, int index, |
} |
-OStream& operator<<(OStream& os, const AsJSON& ad) { |
+std::ostream& operator<<(std::ostream& os, const AsJSON& ad) { |
Zone tmp_zone(ad.graph.zone()->isolate()); |
os << "{\"nodes\":["; |
JSONGraphNodeWriter(os, &tmp_zone, &ad.graph).Print(); |
@@ -159,7 +166,7 @@ OStream& operator<<(OStream& os, const AsJSON& ad) { |
class GraphVisualizer : public NullNodeVisitor { |
public: |
- GraphVisualizer(OStream& os, Zone* zone, const Graph* graph); // NOLINT |
+ GraphVisualizer(std::ostream& os, Zone* zone, const Graph* graph); // NOLINT |
void Print(); |
@@ -174,7 +181,7 @@ class GraphVisualizer : public NullNodeVisitor { |
NodeSet all_nodes_; |
NodeSet white_nodes_; |
bool use_to_def_; |
- OStream& os_; |
+ std::ostream& os_; |
const Graph* const graph_; |
DISALLOW_COPY_AND_ASSIGN(GraphVisualizer); |
@@ -258,7 +265,7 @@ void GraphVisualizer::AnnotateNode(Node* node) { |
break; |
} |
- OStringStream label; |
+ std::ostringstream label; |
label << *node->op(); |
os_ << " label=\"{{#" << node->id() << ":" << Escaped(label); |
@@ -291,9 +298,9 @@ void GraphVisualizer::AnnotateNode(Node* node) { |
if (FLAG_trace_turbo_types && !NodeProperties::IsControl(node)) { |
Bounds bounds = NodeProperties::GetBounds(node); |
- OStringStream upper; |
+ std::ostringstream upper; |
bounds.upper->PrintTo(upper); |
- OStringStream lower; |
+ std::ostringstream lower; |
bounds.lower->PrintTo(lower); |
os_ << "|" << Escaped(upper) << "|" << Escaped(lower); |
} |
@@ -367,7 +374,7 @@ void GraphVisualizer::Print() { |
} |
-GraphVisualizer::GraphVisualizer(OStream& os, Zone* zone, |
+GraphVisualizer::GraphVisualizer(std::ostream& os, Zone* zone, |
const Graph* graph) // NOLINT |
: zone_(zone), |
all_nodes_(NodeSet::key_compare(), NodeSet::allocator_type(zone)), |
@@ -377,7 +384,7 @@ GraphVisualizer::GraphVisualizer(OStream& os, Zone* zone, |
graph_(graph) {} |
-OStream& operator<<(OStream& os, const AsDOT& ad) { |
+std::ostream& operator<<(std::ostream& os, const AsDOT& ad) { |
Zone tmp_zone(ad.graph.zone()->isolate()); |
GraphVisualizer(os, &tmp_zone, &ad.graph).Print(); |
return os; |