[Avida-SVN] r3114 - development/source/analyze

brysonda at myxo.css.msu.edu brysonda at myxo.css.msu.edu
Tue Jan 13 07:16:41 PST 2009


Author: brysonda
Date: 2009-01-13 10:16:40 -0500 (Tue, 13 Jan 2009)
New Revision: 3114

Modified:
   development/source/analyze/cModularityAnalysis.cc
Log:
Ensure that cModularityAnalysis read methods properly release acquired read tokens.

Modified: development/source/analyze/cModularityAnalysis.cc
===================================================================
--- development/source/analyze/cModularityAnalysis.cc	2009-01-13 14:07:33 UTC (rev 3113)
+++ development/source/analyze/cModularityAnalysis.cc	2009-01-13 15:16:40 UTC (rev 3114)
@@ -223,14 +223,19 @@
 }
 
 #ifdef DEBUG
-#define GET_MD() cModularityData* data = dynamic_cast<cModularityData*>(genotype->GetGenotypeData(tok, MD_ID));
+#define GET_MD() \
+  cAnalyzeGenotype::ReadToken* tok = genotype->GetReadToken(); \
+  cModularityData* data = dynamic_cast<cModularityData*>(genotype->GetGenotypeData(tok, MD_ID)); \
+  delete tok;
 #else
-#define GET_MD() cModularityData* data = static_cast<cModularityData*>(genotype->GetGenotypeData(tok, MD_ID));
+#define GET_MD() \
+  cAnalyzeGenotype::ReadToken* tok = genotype->GetReadToken(); \
+  cModularityData* data = static_cast<cModularityData*>(genotype->GetGenotypeData(tok, MD_ID)); \
+  delete tok;
 #endif
 
 cFlexVar cModularityAnalysis::GetTasksDoneFor(const cAnalyzeGenotype* genotype)
 {
-  cAnalyzeGenotype::ReadToken* tok = genotype->GetReadToken();
   GET_MD();
   if (data) return cFlexVar(data->tasks_done);
   return cFlexVar(0);
@@ -238,7 +243,6 @@
 
 cFlexVar cModularityAnalysis::GetInstsInvolvedInTasksFor(const cAnalyzeGenotype* genotype)
 {
-  cAnalyzeGenotype::ReadToken* tok = genotype->GetReadToken();
   GET_MD();
   if (data) return cFlexVar(data->insts_tasks);
   return cFlexVar(0);
@@ -246,7 +250,6 @@
 
 cFlexVar cModularityAnalysis::GetTaskProportionFor(const cAnalyzeGenotype* genotype)
 {
-  cAnalyzeGenotype::ReadToken* tok = genotype->GetReadToken();
   GET_MD();
   if (data) return cFlexVar(data->tasks_prop);
   return cFlexVar(0.0);
@@ -254,7 +257,6 @@
 
 cFlexVar cModularityAnalysis::GetAveTasksPerSiteFor(const cAnalyzeGenotype* genotype)
 {
-  cAnalyzeGenotype::ReadToken* tok = genotype->GetReadToken();
   GET_MD();
   if (data) return cFlexVar(data->ave_tasks_per_site);
   return cFlexVar(0.0);
@@ -262,7 +264,6 @@
 
 cFlexVar cModularityAnalysis::GetAveSitesPerTaskFor(const cAnalyzeGenotype* genotype)
 {
-  cAnalyzeGenotype::ReadToken* tok = genotype->GetReadToken();
   GET_MD();
   if (data) return cFlexVar(data->ave_sites_per_task);
   return cFlexVar(0.0);
@@ -270,7 +271,6 @@
 
 cFlexVar cModularityAnalysis::GetPropNonoverlapFor(const cAnalyzeGenotype* genotype)
 {
-  cAnalyzeGenotype::ReadToken* tok = genotype->GetReadToken();
   GET_MD();
   if (data) return cFlexVar(data->ave_prop_nonoverlap);
   return cFlexVar(0.0);
@@ -279,7 +279,6 @@
 
 cFlexVar cModularityAnalysis::GetSitesPerTaskFor(const cAnalyzeGenotype* genotype, int idx)
 {
-  cAnalyzeGenotype::ReadToken* tok = genotype->GetReadToken();
   GET_MD();
   if (data && idx >= 0 && idx < data->sites_per_task.GetSize()) return cFlexVar(data->sites_per_task[idx]);
   return cFlexVar(0);
@@ -293,7 +292,6 @@
 
 cFlexVar cModularityAnalysis::GetSitesInvolvedInXTasksFor(const cAnalyzeGenotype* genotype, int idx)
 {
-  cAnalyzeGenotype::ReadToken* tok = genotype->GetReadToken();
   GET_MD();
   if (data && idx >= 0 && idx < data->sites_per_task.GetSize()) return cFlexVar(data->sites_inv_x_tasks[idx]);
   return cFlexVar(0);
@@ -307,7 +305,6 @@
 
 cFlexVar cModularityAnalysis::GetTaskLengthFor(const cAnalyzeGenotype* genotype, int idx)
 {
-  cAnalyzeGenotype::ReadToken* tok = genotype->GetReadToken();
   GET_MD();
   if (data && idx >= 0 && idx < data->sites_per_task.GetSize()) return cFlexVar(data->task_length[idx]);
   return cFlexVar(0);
@@ -321,7 +318,6 @@
 
 cFlexVar cModularityAnalysis::GetAveTaskPositionFor(const cAnalyzeGenotype* genotype, int idx)
 {
-  cAnalyzeGenotype::ReadToken* tok = genotype->GetReadToken();
   GET_MD();
   if (data && idx >= 0 && idx < data->sites_per_task.GetSize()) return cFlexVar(data->ave_task_position[idx]);
   return cFlexVar(0.0);




More information about the Avida-cvs mailing list