diff --git a/src/sim/fd_array.cc b/src/sim/fd_array.cc index f3605a5b7d..1ce46a1e33 100644 --- a/src/sim/fd_array.cc +++ b/src/sim/fd_array.cc @@ -368,7 +368,7 @@ FDArray::serialize(CheckpointOut &cp) const { } void -FDArray::unserialize(CheckpointIn &cp, SimObject* process_ptr) { +FDArray::unserialize(CheckpointIn &cp, Process* process_ptr) { ScopedCheckpointSection sec(cp, "fdarray"); uint64_t size; paramIn(cp, "size", size); @@ -424,8 +424,9 @@ FDArray::unserialize(CheckpointIn &cp, SimObject* process_ptr) { if (process_ptr) { - Process* ptr = static_cast(process_ptr); - path = ptr->checkPathRedirect(this_ffd->getFileName()); + // Check if it is needed to redirect the app path to another host + // path + path = process_ptr->checkPathRedirect(this_ffd->getFileName()); } else { diff --git a/src/sim/fd_array.hh b/src/sim/fd_array.hh index 79e5a4b92e..c2a6b64dea 100644 --- a/src/sim/fd_array.hh +++ b/src/sim/fd_array.hh @@ -36,13 +36,15 @@ #include #include #include + #include "sim/fd_entry.hh" #include "sim/serialize.hh" -#include "sim/sim_object.hh" namespace gem5 { +class Process; + class FDArray : public Serializable { public: @@ -117,7 +119,7 @@ class FDArray : public Serializable * Serialization methods for file descriptors */ void serialize(CheckpointOut &cp) const override; - void unserialize(CheckpointIn &cp, SimObject* process_ptr ); + void unserialize(CheckpointIn &cp, Process* process_ptr ); void unserialize(CheckpointIn &cp) override { unserialize(cp, nullptr); };