[Avida-SVN] r1364 - in development: Avida.xcodeproj source/main

brysonda at myxo.css.msu.edu brysonda at myxo.css.msu.edu
Fri Feb 23 14:01:44 PST 2007


Author: brysonda
Date: 2007-02-23 17:01:44 -0500 (Fri, 23 Feb 2007)
New Revision: 1364

Modified:
   development/Avida.xcodeproj/project.pbxproj
   development/source/main/cWorld.cc
Log:
Change cWorld destruction order to handle inter-class dependencies more correctly.

Modified: development/Avida.xcodeproj/project.pbxproj
===================================================================
--- development/Avida.xcodeproj/project.pbxproj	2007-02-23 20:09:00 UTC (rev 1363)
+++ development/Avida.xcodeproj/project.pbxproj	2007-02-23 22:01:44 UTC (rev 1364)
@@ -62,7 +62,6 @@
 		704ADBC60A6EEFC300666970 /* DriverActions.cc in Sources */ = {isa = PBXBuildFile; fileRef = 704ADBC40A6EEFC300666970 /* DriverActions.cc */; };
 		704ADBC80A6EEFC300666970 /* DriverActions.cc in Sources */ = {isa = PBXBuildFile; fileRef = 704ADBC40A6EEFC300666970 /* DriverActions.cc */; };
 		704ADBF90A6EF3A300666970 /* DriverActions.cc in Sources */ = {isa = PBXBuildFile; fileRef = 704ADBC40A6EEFC300666970 /* DriverActions.cc */; };
-		705260BC0B87A7DB0007426F /* cInstLibEntry.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = 705260BB0B87A7DB0007426F /* cInstLibEntry.h */; };
 		7053324C0929764C006BD186 /* cSpecies.cc in Sources */ = {isa = PBXBuildFile; fileRef = 705332480929764A006BD186 /* cSpecies.cc */; };
 		7053324D0929764E006BD186 /* cSpeciesQueue.cc in Sources */ = {isa = PBXBuildFile; fileRef = 7053324A0929764A006BD186 /* cSpeciesQueue.cc */; };
 		7053336D092A3DF9006BD186 /* cInjectGenotype.cc in Sources */ = {isa = PBXBuildFile; fileRef = 70533364092A3DF4006BD186 /* cInjectGenotype.cc */; };
@@ -426,7 +425,6 @@
 				7049F3730A66AD7E00640512 /* default-transsmt.org in CopyFiles */,
 				70B1A7430B7E3FFD00067486 /* instset-experimental.cfg in CopyFiles */,
 				70B1A75A0B7E431F00067486 /* experimental.org in CopyFiles */,
-				705260BC0B87A7DB0007426F /* cInstLibEntry.h in CopyFiles */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};

Modified: development/source/main/cWorld.cc
===================================================================
--- development/source/main/cWorld.cc	2007-02-23 20:09:00 UTC (rev 1363)
+++ development/source/main/cWorld.cc	2007-02-23 22:01:44 UTC (rev 1364)
@@ -42,22 +42,25 @@
 
 cWorld::~cWorld()
 {
-  if (m_data_mgr) { m_data_mgr->FlushAll(); }
+  // m_actlib is not owned by cWorld, DO NOT DELETE
   
+  // These must be deleted first
+  delete m_analyze; m_analyze = NULL;
   delete m_pop; m_pop = NULL;
   
-  // m_actlib is not owned by cWorld, DO NOT DELETE
-  delete m_analyze; m_analyze = NULL;
-  delete m_conf; m_conf = NULL;
-  delete m_data_mgr; m_data_mgr = NULL;
+  delete m_class_mgr; m_class_mgr = NULL;
   delete m_env; m_env = NULL;
   delete m_event_list; m_event_list = NULL;
-  
-  // must occur *after* m_pop is deleted. @kgn
   delete m_hw_mgr; m_hw_mgr = NULL;
-  delete m_class_mgr; m_class_mgr = NULL;
   delete m_stats; m_stats = NULL;
-  
+
+  // Delete after all classes that may be logging items
+  if (m_data_mgr) { m_data_mgr->FlushAll(); }
+  delete m_data_mgr; m_data_mgr = NULL;
+
+  // Delete Last
+  delete m_conf; m_conf = NULL;
+
   // cleanup driver object, if needed
   if (m_own_driver) { delete m_driver; m_driver = NULL; }
 }




More information about the Avida-cvs mailing list