# HG changeset patch
# User Brad Beckmann <brad.beckm...@amd.com>
# Date 1258692765 28800
# Node ID 82a7e4e9aa90144a73d776264f21dcc49b64514b
# Parent  95c5697d202b33419c420096d8a74e3a8821a14e
Calls destructors on all M5 Sim Objects.

diff -r 95c5697d202b -r 82a7e4e9aa90 src/sim/main.cc
--- a/src/sim/main.cc   Thu Nov 19 20:52:45 2009 -0800
+++ b/src/sim/main.cc   Thu Nov 19 20:52:45 2009 -0800
@@ -31,6 +31,7 @@
 #include <Python.h>
 
 #include "sim/init.hh"
+#include "sim/sim_object.hh"
 
 // main() is now pretty stripped down and just sets up python and then
 // calls initM5Python which loads the various embedded python modules
@@ -60,5 +61,7 @@
     // clean up Python intepreter.
     Py_Finalize();
 
+    SimObject::deleteAll();
+
     return ret;
 }
diff -r 95c5697d202b -r 82a7e4e9aa90 src/sim/sim_object.cc
--- a/src/sim/sim_object.cc     Thu Nov 19 20:52:45 2009 -0800
+++ b/src/sim/sim_object.cc     Thu Nov 19 20:52:45 2009 -0800
@@ -148,6 +148,25 @@
 }
 
 //
+// static function: delete all SimObjects.
+//
+void
+SimObject::deleteAll()
+{
+    SimObjectList::iterator i = simObjectList.begin();
+    SimObjectList::iterator end = simObjectList.end();
+
+    for (; i != end; ++i) {
+        SimObject *obj = *i;
+        DPRINTFR(Config, "delete '%s'\n",
+                 obj->name());
+        if (obj->name() != "system") {
+          delete obj;
+        }
+    }
+}
+
+//
 // static function: call resetStats() on all SimObjects.
 //
 void
@@ -175,8 +194,7 @@
         SimObject *obj = *ri;
         obj->nameOut(os);
         obj->serialize(os);
-   }
-}
+   }}
 
 void
 SimObject::unserializeAll(Checkpoint *cp)
diff -r 95c5697d202b -r 82a7e4e9aa90 src/sim/sim_object.hh
--- a/src/sim/sim_object.hh     Thu Nov 19 20:52:45 2009 -0800
+++ b/src/sim/sim_object.hh     Thu Nov 19 20:52:45 2009 -0800
@@ -98,6 +98,9 @@
     virtual void init();
     static void initAll();
 
+    // delete all objects
+    static void deleteAll();
+
     // register statistics for this object
     virtual void regStats();
     virtual void regFormulas();

_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to