diff options
author | Andreas Sandberg <andreas.sandberg@arm.com> | 2015-07-07 09:51:04 +0100 |
---|---|---|
committer | Andreas Sandberg <andreas.sandberg@arm.com> | 2015-07-07 09:51:04 +0100 |
commit | 888ec455cba4174863be5ed9148aaf093a061101 (patch) | |
tree | ccf37fcf4b72fc5de4dcea4ec730aab7f660e572 /src/dev | |
parent | 76cd4393c08b83fa9006ee7bce1fb62457e053c1 (diff) | |
download | gem5-888ec455cba4174863be5ed9148aaf093a061101.tar.xz |
sim: Fix broken event unserialization
Events expected to be unserialized using an event-specific
unserializeEvent call. This call was never actually used, which meant
the events relying on it never got unserialized (or scheduled after
unserialization).
Instead of relying on a custom call, we now use the normal
serialization code again. In order to schedule the event correctly,
the parrent object is expected to use the
EventQueue::checkpointReschedule() call. This happens automatically
for events that are serialized using the AutoSerialize mechanism.
Diffstat (limited to 'src/dev')
-rw-r--r-- | src/dev/etherlink.cc | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/dev/etherlink.cc b/src/dev/etherlink.cc index 27179d508..7b24fe9f7 100644 --- a/src/dev/etherlink.cc +++ b/src/dev/etherlink.cc @@ -142,9 +142,7 @@ class LinkDelayEvent : public Event void process(); void serialize(CheckpointOut &cp) const M5_ATTR_OVERRIDE; - void unserialize(CheckpointIn &cp) M5_ATTR_OVERRIDE {} - void unserializeEvent(CheckpointIn &cp, - EventQueue *eventq) M5_ATTR_OVERRIDE; + void unserialize(CheckpointIn &cp) M5_ATTR_OVERRIDE; static Serializable *createForUnserialize(CheckpointIn &cp, const string §ion); }; @@ -260,9 +258,9 @@ LinkDelayEvent::serialize(CheckpointOut &cp) const void -LinkDelayEvent::unserializeEvent(CheckpointIn &cp, EventQueue *eventq) +LinkDelayEvent::unserialize(CheckpointIn &cp) { - Event::unserializeEvent(cp, eventq); + Event::unserialize(cp); EtherLink *parent; bool number; |