From eb6cf00c0e6ff6a215614e0a8fa0024855ccdcff Mon Sep 17 00:00:00 2001 From: sin-ack Date: Sat, 31 Jul 2021 16:22:40 +0000 Subject: [PATCH] SystemMonitor: Register ProcessStateModel with ProcessModel on construct Since this was missing, ProcessStateModel never received model_did_update, and it was possible for the ProcessModel index to go stale and show another process. Fixes #9129. --- Userland/Applications/SystemMonitor/ProcessStateWidget.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Userland/Applications/SystemMonitor/ProcessStateWidget.cpp b/Userland/Applications/SystemMonitor/ProcessStateWidget.cpp index 2ff01db2ba..145ba2c1c9 100644 --- a/Userland/Applications/SystemMonitor/ProcessStateWidget.cpp +++ b/Userland/Applications/SystemMonitor/ProcessStateWidget.cpp @@ -23,9 +23,14 @@ public: : m_target(target) , m_pid(pid) { + m_target.register_client(*this); refresh(); } - virtual ~ProcessStateModel() override { } + + virtual ~ProcessStateModel() override + { + m_target.unregister_client(*this); + } virtual int row_count(const GUI::ModelIndex& = GUI::ModelIndex()) const override { return m_target.column_count({}); } virtual int column_count(const GUI::ModelIndex& = GUI::ModelIndex()) const override { return 2; }