[Avida-SVN] r3040 - in branches/interrupt/source: cpu main
beckma24 at myxo.css.msu.edu
beckma24 at myxo.css.msu.edu
Sun Dec 14 21:08:18 PST 2008
Author: beckma24
Date: 2008-12-15 00:08:18 -0500 (Mon, 15 Dec 2008)
New Revision: 3040
Modified:
branches/interrupt/source/cpu/cHardwareCPU.cc
branches/interrupt/source/main/cPopulation.cc
Log:
Bug Fix: possiblity deleted organism was being used after delete
Modified: branches/interrupt/source/cpu/cHardwareCPU.cc
===================================================================
--- branches/interrupt/source/cpu/cHardwareCPU.cc 2008-12-15 02:11:26 UTC (rev 3039)
+++ branches/interrupt/source/cpu/cHardwareCPU.cc 2008-12-15 05:08:18 UTC (rev 3040)
@@ -195,6 +195,7 @@
for (int i = 0; i < NUM_REGISTERS; i++) reg[i] = in_thread.reg[i];
for (int i = 0; i < NUM_HEADS; i++) heads[i] = in_thread.heads[i];
stack = in_thread.stack;
+ // what about other stuff?
}
void cLocalThread::Reset(cWorld* world, cHardwareCPU* in_hardware, int in_id)
Modified: branches/interrupt/source/main/cPopulation.cc
===================================================================
--- branches/interrupt/source/main/cPopulation.cc 2008-12-15 02:11:26 UTC (rev 3039)
+++ branches/interrupt/source/main/cPopulation.cc 2008-12-15 05:08:18 UTC (rev 3040)
@@ -3411,7 +3411,11 @@
cell.GetHardware()->SingleProcess(ctx);
- if (cur_org->GetPhenotype().GetToDelete() == true) delete cur_org;
+ double merit = cur_org->GetPhenotype().GetMerit().GetDouble();
+ if (cur_org->GetPhenotype().GetToDelete() == true) {
+ delete cur_org;
+ cur_org = NULL;
+ }
m_world->GetStats().IncExecuted();
resource_count.Update(step_size);
@@ -3422,7 +3426,7 @@
for(int i = 0; i < GetNumDemes(); i++) GetDeme(i).Update(step_size);
cDeme & deme = GetDeme(GetCell(cell_id).GetDemeID());
- deme.IncTimeUsed(cur_org->GetPhenotype().GetMerit().GetDouble());
+ deme.IncTimeUsed(merit);
CheckImplicitDemeRepro(deme);
}
}
More information about the Avida-cvs
mailing list