[Avida-SVN] r1763 - in branches/uml/source: actions main

hjg at myxo.css.msu.edu hjg at myxo.css.msu.edu
Sun Jul 8 20:00:58 PDT 2007


Author: hjg
Date: 2007-07-08 23:00:58 -0400 (Sun, 08 Jul 2007)
New Revision: 1763

Modified:
   branches/uml/source/actions/PrintActions.cc
   branches/uml/source/main/cOrganism.cc
   branches/uml/source/main/cUMLModel.cc
   branches/uml/source/main/cUMLModel.h
   branches/uml/source/main/cUMLStateDiagram.cc
Log:
Bug fix.



Modified: branches/uml/source/actions/PrintActions.cc
===================================================================
--- branches/uml/source/actions/PrintActions.cc	2007-07-08 18:15:17 UTC (rev 1762)
+++ branches/uml/source/actions/PrintActions.cc	2007-07-09 03:00:58 UTC (rev 1763)
@@ -86,7 +86,7 @@
 STATS_OUT_FILE(PrintMarketData,             market.dat          );
 STATS_OUT_FILE(PrintSenseData,              sense.dat           );
 STATS_OUT_FILE(PrintSenseExeData,           sense_exe.dat       );
-//STATS_OUT_FILE(PrintUMLData,				uml.dat			    );
+STATS_OUT_FILE(PrintUMLData,				uml.dat			    );
 
 
 
@@ -1873,7 +1873,7 @@
   action_lib->Register<cActionPrintInstructionData>("print_instruction_data");
   action_lib->Register<cActionPrintGenotypeMap>("print_genotype_map");
   action_lib->Register<cActionPrintMarketData>("print_market_data");
-//  action_lib->Register<cActionPrintUMLData>("PrintUMLData");
+  action_lib->Register<cActionPrintUMLData>("PrintUMLData");
 
   
   action_lib->Register<cActionPrintPhenotypeData>("print_number_phenotypes");

Modified: branches/uml/source/main/cOrganism.cc
===================================================================
--- branches/uml/source/main/cOrganism.cc	2007-07-08 18:15:17 UTC (rev 1762)
+++ branches/uml/source/main/cOrganism.cc	2007-07-09 03:00:58 UTC (rev 1763)
@@ -635,11 +635,11 @@
   }
   
   if (clear_input) m_input_buf.Clear();
-/*  
-	m_world->GetStats().addState(states.size());
-	m_world->GetStats().addTrans(transitions.size());
-	m_world->GetStats().addTransLabel(transition_labels.size());
-*/	
+ 
+	m_world->GetStats().addState(m_model.numStates());
+	m_world->GetStats().addTrans(m_model.numTrans());
+//	m_world->GetStats().addTransLabel(transition_labels.size());
+
   
   
 }

Modified: branches/uml/source/main/cUMLModel.cc
===================================================================
--- branches/uml/source/main/cUMLModel.cc	2007-07-08 18:15:17 UTC (rev 1762)
+++ branches/uml/source/main/cUMLModel.cc	2007-07-09 03:00:58 UTC (rev 1763)
@@ -149,4 +149,20 @@
 	return xmi;
 }
 
+int cUMLModel::numStates() 
+{ 
+	int temp_states = 0;
+	for (int i=0; i<state_diagrams.size(); i++) { 
+		temp_states += getStateDiagram(i)->numStates();
+	}
+	return temp_states;
+}
 
+int cUMLModel::numTrans()
+{
+int temp_trans = 0;
+	for (int i=0; i<state_diagrams.size(); i++) { 
+		temp_trans += getStateDiagram(i)->numTrans();
+	}
+	return temp_trans;
+}

Modified: branches/uml/source/main/cUMLModel.h
===================================================================
--- branches/uml/source/main/cUMLModel.h	2007-07-08 18:15:17 UTC (rev 1762)
+++ branches/uml/source/main/cUMLModel.h	2007-07-09 03:00:58 UTC (rev 1763)
@@ -26,6 +26,8 @@
 	
 	int getStateDiagramSize() { return state_diagrams.size(); } 
 	cUMLStateDiagram* getStateDiagram (int); 
+	int numStates();
+	int numTrans();
 	
 
 protected: 

Modified: branches/uml/source/main/cUMLStateDiagram.cc
===================================================================
--- branches/uml/source/main/cUMLStateDiagram.cc	2007-07-08 18:15:17 UTC (rev 1762)
+++ branches/uml/source/main/cUMLStateDiagram.cc	2007-07-09 03:00:58 UTC (rev 1763)
@@ -94,8 +94,10 @@
 			if (ts == path.front()) { 
 //				std::cout << "Found an edge with " << ts << std::endl;
 				dist++;
-				path.pop_front();
-				checkForPath(path, target(ed, sd0), result, dist);	
+//				path.pop_front();
+//				checkForPath(path, target(ed, sd0), result, dist);	
+				checkForPath(std::deque<std::string>(++path.begin(), path.end()), target(ed,sd0), result, dist);
+
 			}
 		}	
 }
@@ -106,6 +108,10 @@
 
 	bool result = false;
 	
+	if (num_edges(sd0) == 0) { 
+		return false;
+	}
+	
 	boost::graph_traits<state_diagram>::vertex_descriptor o_temp, d_temp;
 	boost::graph_traits<state_diagram>::edge_iterator edge_start, edge_end;
 	boost::graph_traits<state_diagram>::out_edge_iterator out_edge_start, out_edge_end;




More information about the Avida-cvs mailing list