[Scummvm-cvs-logs] SF.net SVN: scummvm:[41829] tools/branches/gsoc2009-decompiler/decompiler/ graph.h
kjdf at users.sourceforge.net
kjdf at users.sourceforge.net
Wed Jun 24 20:27:29 CEST 2009
Revision: 41829
http://scummvm.svn.sourceforge.net/scummvm/?rev=41829&view=rev
Author: kjdf
Date: 2009-06-24 18:27:29 +0000 (Wed, 24 Jun 2009)
Log Message:
-----------
decompiler: removed hideNode and _hidden field in graph, because it doesn't seem we will need node
deletion for now
Modified Paths:
--------------
tools/branches/gsoc2009-decompiler/decompiler/graph.h
Modified: tools/branches/gsoc2009-decompiler/decompiler/graph.h
===================================================================
--- tools/branches/gsoc2009-decompiler/decompiler/graph.h 2009-06-24 18:21:39 UTC (rev 41828)
+++ tools/branches/gsoc2009-decompiler/decompiler/graph.h 2009-06-24 18:27:29 UTC (rev 41829)
@@ -37,14 +37,13 @@
friend class Graph;
- bool _hidden;
bool _visited;
Node *_interval;
Node *_primitive;
std::list<Node*> _in;
std::list<Node*> _out;
- Node(const Data &data) : _data(data), _hidden(), _interval(), _primitive() {
+ Node(const Data &data) : _data(data), _interval(), _primitive() {
}
~Node() {
@@ -130,10 +129,15 @@
u->_visited = false;
assert(_entry);
visit(_entry);
- foreach (Node *u, _nodes)
- if (!u->_visited)
- hideNode(u);
- removeHiddenNodes();
+ for (typename std::list<Node*>::iterator uit = _nodes.begin(); uit != _nodes.end(); )
+ if ((*uit)->_visited)
+ uit++;
+ else {
+ foreach (Node *v, (*uit)->_out)
+ v->_in.remove(*uit);
+ delete *uit;
+ uit = _nodes.erase(uit);
+ }
}
std::list<Node*> intervals() const {
@@ -203,14 +207,6 @@
private:
- void hideNode(Node *u) {
- foreach (Node *v, u->_in)
- v->_out.remove(u);
- foreach (Node *v, u->_out)
- v->_in.remove(u);
- u->_hidden = true;
- }
-
void visit(Node *u) {
u->_visited = true;
foreach (Node *v, u->_out)
@@ -245,15 +241,6 @@
}
}
- void removeHiddenNodes() {
- for (typename std::list<Node*>::iterator it = _nodes.begin(); it != _nodes.end(); )
- if ((*it)->_hidden) {
- delete *it;
- it = _nodes.erase(it);
- } else
- it++;
- }
-
static std::string graphvizEscapeLabel(const std::string &s) {
std::string ret;
foreach (char c, s) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list