From 99852d56876eb3b0e26ec2a15752321a4a047ebd Mon Sep 17 00:00:00 2001 From: Gabriel Busnot Date: Thu, 2 Feb 2023 16:21:57 +0000 Subject: [PATCH] sim: Deprecate pointer version of MemberEventWrapper constructor It makes no sense to initialize such event with nullptr. Favor the reference version for safer behavior. Change-Id: I695f41362a56aca98ceb52d49cf84be43f1465a2 Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/67656 Reviewed-by: Daniel Carvalho Tested-by: kokoro Maintainer: Daniel Carvalho --- src/sim/eventq.hh | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/sim/eventq.hh b/src/sim/eventq.hh index ff9d4bfa08..cf1734b992 100644 --- a/src/sim/eventq.hh +++ b/src/sim/eventq.hh @@ -1095,16 +1095,12 @@ class MemberEventWrapper final: public Event, public Named static_assert(std::is_same_v, std::tuple<>>); public: + [[deprecated("Use reference version of this constructor instead")]] MemberEventWrapper(CLASS *object, bool del = false, Priority p = Default_Pri): - Event(p), - Named(object->name() + ".wrapped_event"), - mObject(object) - { - gem5_assert(mObject); - if (del) setFlags(AutoDelete); - } + MemberEventWrapper{*object, del, p} + {} /** * @brief Construct a new MemberEventWrapper object @@ -1116,8 +1112,13 @@ public: MemberEventWrapper(CLASS &object, bool del = false, Priority p = Default_Pri): - MemberEventWrapper(&object, del, p) - {} + Event(p), + Named(object.name() + ".wrapped_event"), + mObject(&object) + { + if (del) setFlags(AutoDelete); + gem5_assert(mObject); + } void process() override { (mObject->*F)();