diff options
Diffstat (limited to 'sim/eventq.cc')
-rw-r--r-- | sim/eventq.cc | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/sim/eventq.cc b/sim/eventq.cc index eab499bd9..fda587dcb 100644 --- a/sim/eventq.cc +++ b/sim/eventq.cc @@ -42,8 +42,6 @@ using namespace std; -const string Event::defaultName("event"); - // // Main Event Queue // @@ -160,19 +158,13 @@ EventQueue::serialize(ostream &os) while (event) { if (event->getFlags(Event::AutoSerialize)) { eventPtrs.push_back(event); - numEvents++; + paramOut(os, csprintf("event%d", numEvents++), event->name()); } event = event->next; } SERIALIZE_SCALAR(numEvents); - int i = 0; - for (std::list<Event *>::iterator it=eventPtrs.begin(); - it != eventPtrs.end(); ++it) { - paramOut(os, csprintf("%s.eventPtr%d", name(), i++), (uintptr_t)*it); - } - for (std::list<Event *>::iterator it=eventPtrs.begin(); it != eventPtrs.end(); ++it) { (*it)->nameOut(os); @@ -184,16 +176,15 @@ void EventQueue::unserialize(Checkpoint *cp, const std::string §ion) { int numEvents; - uintptr_t ptr; - UNSERIALIZE_SCALAR(numEvents); + std::string eventName; for (int i = 0; i < numEvents; i++) { // get the pointer value associated with the event - paramIn(cp, section, csprintf("%s.eventPtr%d", name(), i), ptr); + paramIn(cp, section, csprintf("event%d", i), eventName); // create the event based on its pointer value - Serializeable::create(cp, csprintf("%s_%x", Event::defaultName, ptr)); + Serializeable::create(cp, eventName); } } |