[Avida-SVN] r2153 - branches/energy/source/main

beckma24 at myxo.css.msu.edu beckma24 at myxo.css.msu.edu
Wed Oct 24 06:30:49 PDT 2007


Author: beckma24
Date: 2007-10-24 09:30:48 -0400 (Wed, 24 Oct 2007)
New Revision: 2153

Modified:
   branches/energy/source/main/cDeme.cc
   branches/energy/source/main/cStats.cc
Log:
Bug fix: found and fixed source of predicate loss

Modified: branches/energy/source/main/cDeme.cc
===================================================================
--- branches/energy/source/main/cDeme.cc	2007-10-24 03:34:18 UTC (rev 2152)
+++ branches/energy/source/main/cDeme.cc	2007-10-24 13:30:48 UTC (rev 2153)
@@ -119,13 +119,12 @@
   
   //remove old events and corresponding predicates
   for(int i = cell_events.Size()-1; i >= 0; i--) {
-    if(cell_events[i].GetTimeToLive() < m_world->GetStats().GetUpdate()) {
+    if(cell_events[i].GetTimeToLive() <= m_world->GetStats().GetUpdate()) {
       //remove predicates from stats and deme
-      for(int j = 0; j < message_pred_list.Size(); j++) {
-        if(message_pred_list[j]->GetEvent() == &(cell_events[j])) {
+      for(int j = message_pred_list.Size()-1; j >= 0; j--) {
+        if(message_pred_list[j]->GetEvent()->GetEventID() == cell_events[i].GetEventID()) {
           m_world->GetStats().RemoveMessagePredicate(message_pred_list[j]);
           message_pred_list.RemoveAt(j);
-          break;
         }
       }
       cell_events.RemoveAt(i);
@@ -136,7 +135,7 @@
   for(int i = 0; i < message_pred_list.Size(); i++) {
     (*message_pred_list[i]).Reset();
   }
-  
+
   for(int i = 0; i < GetSize(); i++) {
     m_world->GetPopulation().GetCell(GetCellID(i)).SetCellData(0);
   }

Modified: branches/energy/source/main/cStats.cc
===================================================================
--- branches/energy/source/main/cStats.cc	2007-10-24 03:34:18 UTC (rev 2152)
+++ branches/energy/source/main/cStats.cc	2007-10-24 13:30:48 UTC (rev 2153)
@@ -1220,8 +1220,8 @@
 
   int rows = relative_pos_pred_sat.GetNumRows();
   int cols = relative_pos_pred_sat.GetNumCols();
-  for (int x = 0; x < cols; x++) {
-    for (int y = 0; y < rows; y++) {
+  for (int x = 0; x < rows; x++) {
+    for (int y = 0; y < cols; y++) {
       double data;
       if(relative_pos_event_count.ElementAt(x,y) == 0) {
         data = 0.0;




More information about the Avida-cvs mailing list