diff options
Diffstat (limited to 'src/dev/net/etherpkt.cc')
-rw-r--r-- | src/dev/net/etherpkt.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/dev/net/etherpkt.cc b/src/dev/net/etherpkt.cc index f06af3306..446e44e46 100644 --- a/src/dev/net/etherpkt.cc +++ b/src/dev/net/etherpkt.cc @@ -41,6 +41,7 @@ using namespace std; void EthPacketData::serialize(const string &base, CheckpointOut &cp) const { + paramOut(cp, base + ".simLength", simLength); paramOut(cp, base + ".length", length); arrayParamOut(cp, base + ".data", data, length); } @@ -49,7 +50,12 @@ void EthPacketData::unserialize(const string &base, CheckpointIn &cp) { paramIn(cp, base + ".length", length); - if (length) + if (length) { + assert(data == nullptr); + data = new uint8_t[length]; arrayParamIn(cp, base + ".data", data, length); + } + if (!optParamIn(cp, base + ".simLength", simLength)) + simLength = length; } |