diff options
author | Jordi Vaquero <jordi.vaquero@metempsy.com> | 2019-09-11 00:11:27 +0200 |
---|---|---|
committer | Jordi Vaquero <jordi.vaquero@metempsy.com> | 2019-09-23 12:32:08 +0000 |
commit | e5a82da26e29560f3e7121b600a12f8acd6a5a3f (patch) | |
tree | 31786646cd8b077b48381303d0352959038e15a2 /src/cpu/checker | |
parent | a56ab04598be184427e8dd71fa5528b016738306 (diff) | |
download | gem5-e5a82da26e29560f3e7121b600a12f8acd6a5a3f.tar.xz |
cpu, mem: Changing AtomicOpFunctor* for unique_ptr<AtomicOpFunctor>
This change is based on modify the way we move the AtomicOpFunctor*
through gem5 in order to mantain proper ownership of the object and
ensuring its destruction when it is no longer used.
Doing that we fix at the same time a memory leak in Request.hh
where we were assigning a new AtomicOpFunctor* without destroying the
previous one.
This change creates a new type AtomicOpFunctor_ptr as a
std::unique_ptr<AtomicOpFunctor> and move its ownership as needed. Except
for its only usage when AtomicOpFunc() is called.
Change-Id: Ic516f9d8217cb1ae1f0a19500e5da0336da9fd4f
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/20919
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Diffstat (limited to 'src/cpu/checker')
-rw-r--r-- | src/cpu/checker/cpu.hh | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/cpu/checker/cpu.hh b/src/cpu/checker/cpu.hh index 440fe81b5..8db6aa376 100644 --- a/src/cpu/checker/cpu.hh +++ b/src/cpu/checker/cpu.hh @@ -565,7 +565,7 @@ class CheckerCPU : public BaseCPU, public ExecContext override; Fault amoMem(Addr addr, uint8_t* data, unsigned size, - Request::Flags flags, AtomicOpFunctor *amo_op) override + Request::Flags flags, AtomicOpFunctorPtr amo_op) override { panic("AMO is not supported yet in CPU checker\n"); } |