Change order of serialization
authorNathan Binkert <binkertn@umich.edu>
Sat, 21 Feb 2004 15:46:31 +0000 (10:46 -0500)
committerNathan Binkert <binkertn@umich.edu>
Sat, 21 Feb 2004 15:46:31 +0000 (10:46 -0500)
sim/sim_object.cc:
    serialize objects in the reverse order of their creation.
    This causes a SimObject that is dependent on another
    to be serialized first.  For example, the ethernet device
    writes back some data to physical memory while serializing,
    so this will cause the physical memory to be serialized
    after that, preserving the data written back.

--HG--
extra : convert_revision : f9a37b63ce777df1cfecefa80f94f8fc69e42448

sim/sim_object.cc

index b3ac2c7a49ed35a091385be1b62d3109cd81c33e..c55021e41ab04dde132521c97f0f85b724ad44cb 100644 (file)
@@ -182,11 +182,11 @@ SimObject::printAllExtraOutput(ostream &os)
 void
 SimObject::serializeAll(ostream &os)
 {
-    SimObjectList::iterator i = simObjectList.begin();
-    SimObjectList::iterator end = simObjectList.end();
+    SimObjectList::reverse_iterator ri = simObjectList.rbegin();
+    SimObjectList::reverse_iterator rend = simObjectList.rend();
 
-    for (; i != end; ++i) {
-        SimObject *obj = *i;
+    for (; ri != rend; ++ri) {
+        SimObject *obj = *ri;
         obj->nameOut(os);
         obj->serialize(os);
    }