[Avida-SVN] r1700 - branches/uml/source/main

hjg at myxo.css.msu.edu hjg at myxo.css.msu.edu
Wed Jun 20 10:55:05 PDT 2007


Author: hjg
Date: 2007-06-20 13:55:04 -0400 (Wed, 20 Jun 2007)
New Revision: 1700

Modified:
   branches/uml/source/main/cUMLStateDiagram.cc
Log:
Force state diagram to be connnected. 


Modified: branches/uml/source/main/cUMLStateDiagram.cc
===================================================================
--- branches/uml/source/main/cUMLStateDiagram.cc	2007-06-20 14:41:52 UTC (rev 1699)
+++ branches/uml/source/main/cUMLStateDiagram.cc	2007-06-20 17:55:04 UTC (rev 1700)
@@ -297,6 +297,10 @@
 	
 	t.trans = getTransLabel();
 	
+	if ((t.orig_state != 0) && (states[t.orig_state].num_incoming == 0)) {
+		return false;
+	}
+	
 	// no dupes
     if (findTrans(t.orig_state, t.dest_state, t.trans.trigger, t.trans.guard, t.trans.action)) {
 		return false;
@@ -350,9 +354,9 @@
 	
 	// Do not create transition if the origin state is unreachable.
 // Taken out on 5/22
-//	if ((trany.orig_state != 0) && (states[trany.orig_state].num_incoming == 0)) {
-//		return false;
-//	}
+	if ((trany.orig_state != 0) && (states[trany.orig_state].num_incoming == 0)) {
+		return false;
+	}
 	
 	// increment number of edges for a state
 	states[getOrigStateIndex()].num_outgoing += 1;
@@ -401,9 +405,9 @@
 	
 	// Do not create transition if the origin state is unreachable.
 // Taken out on 5/22
-//	if ((trany.orig_state != 0) && (states[trany.orig_state].num_incoming == 0)) {
-//		return false;
-//	}
+	if ((trany.orig_state != 0) && (states[trany.orig_state].num_incoming == 0)) {
+		return false;
+	}
 	
 	// increment number of edges for a state
 	states[getOrigStateIndex()].num_outgoing += 1;




More information about the Avida-cvs mailing list