cpu: delete listener ptrs after removal

The listener pointer does not get deleted with the removeListener()
function call, so we need to make sure it is deleted in the
ProbeListenerObject.

Change-Id: I370f34651b889c8c00a378743e9c1c09fa1d775e
This commit is contained in:
studyztp
2024-08-18 10:46:05 -07:00
committed by Bobby R. Bruce
parent 9fede07f44
commit 0b0a8431dc

View File

@@ -63,13 +63,18 @@ LocalInstTracker::stopListening()
{
ifListening = false;
bool _ifRemoved;
for (auto &listener : listeners) {
for (auto &_listener : listeners) {
_ifRemoved = getProbeManager()->removeListener(
"RetiredInsts",
*listener
*_listener
);
DPRINTF(InstTracker, "If removed: %s\n", _ifRemoved ? "Yes" : "No");
panic_if(!_ifRemoved, "Failed to remove listener");
if (_listener != nullptr) {
delete(_listener);
DPRINTF(InstTracker, "Deleted Listener pointer\n");
}
}
DPRINTF(InstTracker, "Stop listening to RetiredInsts\n");
}