[Scummvm-cvs-logs] SF.net SVN: scummvm:[41849] tools/branches/gsoc2009-decompiler/decompiler

kjdf at users.sourceforge.net kjdf at users.sourceforge.net
Thu Jun 25 03:31:05 CEST 2009


Revision: 41849
          http://scummvm.svn.sourceforge.net/scummvm/?rev=41849&view=rev
Author:   kjdf
Date:     2009-06-25 01:31:04 +0000 (Thu, 25 Jun 2009)

Log Message:
-----------
decompiler: set entry point in derived graph

Modified Paths:
--------------
    tools/branches/gsoc2009-decompiler/decompiler/graph.h
    tools/branches/gsoc2009-decompiler/decompiler/test/data_graph.h

Modified: tools/branches/gsoc2009-decompiler/decompiler/graph.h
===================================================================
--- tools/branches/gsoc2009-decompiler/decompiler/graph.h	2009-06-25 01:30:12 UTC (rev 41848)
+++ tools/branches/gsoc2009-decompiler/decompiler/graph.h	2009-06-25 01:31:04 UTC (rev 41849)
@@ -143,13 +143,13 @@
 	void extendIntervals() {
 		Graph<Node*> d;
 		std::map<Node*, typename Graph<Node*>::Node*> trans;
-		foreach (Node *u, _nodes)
-			if (u->_interval == u)
-				trans[u] = d.addNode(u->_interval);
 		foreach (Node *interval, intervals())
+			trans[interval] = d.addNode(interval);
+		foreach (Node *interval, intervals())
 			foreach (Node *u, interval->_in)
 				if (u->_interval != interval)
 					d.addEdge(trans[u->_interval], trans[interval]);
+		d.setEntry(trans[_entry]);
 		d.intervals();
 		foreach (typename Graph<Node*>::Node *du, d._nodes)
 			foreach (Node *v, _nodes)

Modified: tools/branches/gsoc2009-decompiler/decompiler/test/data_graph.h
===================================================================
--- tools/branches/gsoc2009-decompiler/decompiler/test/data_graph.h	2009-06-25 01:30:12 UTC (rev 41848)
+++ tools/branches/gsoc2009-decompiler/decompiler/test/data_graph.h	2009-06-25 01:31:04 UTC (rev 41849)
@@ -31,21 +31,22 @@
 
 Graph<int> *makeGraph2() {
 	Graph<int> *g = new Graph<int>;
+	g->addNode(15);
+	g->addNode(14);
+	g->addNode(13);
+	g->addNode(12);
+	g->addNode(11);
+	g->addNode(10);
+	g->addNode(9);
+	g->addNode(8);
+	g->addNode(7);
+	g->addNode(6);
+	g->addNode(5);
+	g->addNode(4);
+	g->addNode(3);
+	g->addNode(2);
 	g->addNode(1);
-	g->addNode(2);
-	g->addNode(3);
-	g->addNode(4);
-	g->addNode(5);
-	g->addNode(6);
-	g->addNode(7);
-	g->addNode(8);
-	g->addNode(9);
-	g->addNode(10);
-	g->addNode(11);
-	g->addNode(12);
-	g->addNode(13);
-	g->addNode(14);
-	g->addNode(15);
+	g->setEntry(findNode(g, 1));
 	g->addEdge(findNode(g, 1), findNode(g, 2));
 	g->addEdge(findNode(g, 1), findNode(g, 5));
 	g->addEdge(findNode(g, 2), findNode(g, 3));


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