[Avida-SVN] r3572 - branches/biounit/source/main

brysonda at myxo.css.msu.edu brysonda at myxo.css.msu.edu
Mon Dec 21 12:41:18 PST 2009


Author: brysonda
Date: 2009-12-21 15:41:18 -0500 (Mon, 21 Dec 2009)
New Revision: 3572

Modified:
   branches/biounit/source/main/cParasite.cc
   branches/biounit/source/main/cParasite.h
   branches/biounit/source/main/cPhenotype.h
   branches/biounit/source/main/cPopulation.cc
Log:
Properly initialize parasite generation in cParasite's cPhenotype object.   Note that the phenotype object in cParasite is still not fully initialized, but it is only used for the generation number at this point.

Modified: branches/biounit/source/main/cParasite.cc
===================================================================
--- branches/biounit/source/main/cParasite.cc	2009-12-21 20:04:23 UTC (rev 3571)
+++ branches/biounit/source/main/cParasite.cc	2009-12-21 20:41:18 UTC (rev 3572)
@@ -24,8 +24,8 @@
 
 #include "cParasite.h"
 
-cParasite::cParasite(const cMetaGenome& genome, int parent_generation, eBioUnitSource src, const cString& src_args)
-  : m_src(src), m_src_args(src_args), m_initial_genome(genome)
+cParasite::cParasite(cWorld* world, const cMetaGenome& genome, int parent_generation, eBioUnitSource src, const cString& src_args)
+  : m_src(src), m_src_args(src_args), m_initial_genome(genome), m_phenotype(world, parent_generation)
 {
   // @TODO - properly construct cPhenotype
 }

Modified: branches/biounit/source/main/cParasite.h
===================================================================
--- branches/biounit/source/main/cParasite.h	2009-12-21 20:04:23 UTC (rev 3571)
+++ branches/biounit/source/main/cParasite.h	2009-12-21 20:41:18 UTC (rev 3572)
@@ -38,6 +38,7 @@
 #include "cString.h"
 #endif
 
+class cWorld;
 
 
 class cParasite : public cBioUnit
@@ -55,7 +56,7 @@
   
 
 public:
-  cParasite(const cMetaGenome& genome, int parent_generation, eBioUnitSource src, const cString& src_args);
+  cParasite(cWorld* world, const cMetaGenome& genome, int parent_generation, eBioUnitSource src, const cString& src_args);
   ~cParasite() { ; }
   
   // --------  cBioUnit Methods  --------

Modified: branches/biounit/source/main/cPhenotype.h
===================================================================
--- branches/biounit/source/main/cPhenotype.h	2009-12-21 20:04:23 UTC (rev 3571)
+++ branches/biounit/source/main/cPhenotype.h	2009-12-21 20:41:18 UTC (rev 3572)
@@ -262,12 +262,11 @@
   inline void SetInstSetSize(int inst_set_size);
 
   
-  cPhenotype(cWorld* world, int parent_generation);
-
-  
 public:
   cPhenotype() : m_world(NULL), m_reaction_result(NULL) { ; } // Will not construct a valid cPhenotype! Only exists to support incorrect cDeme tArray usage.
+  cPhenotype(cWorld* world, int parent_generation);
 
+
   cPhenotype(const cPhenotype&); 
   cPhenotype& operator=(const cPhenotype&); 
   ~cPhenotype();

Modified: branches/biounit/source/main/cPopulation.cc
===================================================================
--- branches/biounit/source/main/cPopulation.cc	2009-12-21 20:04:23 UTC (rev 3571)
+++ branches/biounit/source/main/cPopulation.cc	2009-12-21 20:41:18 UTC (rev 3572)
@@ -614,7 +614,7 @@
   // Attempt actual parasite injection
   
   cMetaGenome mg(parent->GetMetaGenome().GetHardwareType(), parent->GetMetaGenome().GetInstSetID(), injected_code);
-  cParasite* parasite = new cParasite(mg, parent->GetPhenotype().GetGeneration(), SRC_PARASITE_INJECT, label);
+  cParasite* parasite = new cParasite(m_world, mg, parent->GetPhenotype().GetGeneration(), SRC_PARASITE_INJECT, label);
   
   if (!target_organism->ParasiteInfectHost(parasite)) {
     delete parasite;
@@ -5126,7 +5126,7 @@
   if (target_organism == NULL) return;
   
   cMetaGenome mg(target_organism->GetHardware().GetType(), target_organism->GetHardware().GetInstSetID(), injected_code);
-  cParasite* parasite = new cParasite(mg, 0, SRC_PARASITE_FILE_LOAD, label);
+  cParasite* parasite = new cParasite(m_world, mg, 0, SRC_PARASITE_FILE_LOAD, label);
   
   if (target_organism->ParasiteInfectHost(parasite)) {
     m_world->GetClassificationManager().ClassifyNewBioUnit(parasite);




More information about the Avida-cvs mailing list