[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