From 53870436dede0a536dda0dea553d74c4b805b8ca Mon Sep 17 00:00:00 2001 From: houchengqiu Date: Tue, 23 Jan 2024 10:27:38 +0800 Subject: [PATCH] fix: resolve 2 memory leaks resolve 2 memory lesks Log: resolve 2 memory leaks Bug: https://pms.uniontech.com/bug-view-239575.html --- .../model/accounts_info_model.cpp | 6 ++++++ deepin-system-monitor-main/model/accounts_info_model.h | 1 + deepin-system-monitor-main/process/process_set.cpp | 10 +++++----- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/deepin-system-monitor-main/model/accounts_info_model.cpp b/deepin-system-monitor-main/model/accounts_info_model.cpp index 1cbf790b..790299fa 100644 --- a/deepin-system-monitor-main/model/accounts_info_model.cpp +++ b/deepin-system-monitor-main/model/accounts_info_model.cpp @@ -43,6 +43,12 @@ AccountsInfoModel::AccountsInfoModel(QObject *parent): QObject(parent) this, SLOT(onSessionNew(QString, QDBusObjectPath))); } +AccountsInfoModel::~AccountsInfoModel() +{ + qDeleteAll(m_userMap.values()); + m_userMap.clear(); +} + void AccountsInfoModel::onUserListChanged(const QStringList &userPathList) { updateUserList(userPathList); diff --git a/deepin-system-monitor-main/model/accounts_info_model.h b/deepin-system-monitor-main/model/accounts_info_model.h index 6d9f8995..a6922f13 100644 --- a/deepin-system-monitor-main/model/accounts_info_model.h +++ b/deepin-system-monitor-main/model/accounts_info_model.h @@ -62,6 +62,7 @@ class AccountsInfoModel : public QObject public: explicit AccountsInfoModel(QObject *parent = nullptr); + virtual ~AccountsInfoModel(); void updateUserList(const QStringList &userPathList); QList userList() const; User::UserType getCurrentUserType() const; diff --git a/deepin-system-monitor-main/process/process_set.cpp b/deepin-system-monitor-main/process/process_set.cpp index 0d1b3049..e173b237 100644 --- a/deepin-system-monitor-main/process/process_set.cpp +++ b/deepin-system-monitor-main/process/process_set.cpp @@ -111,13 +111,13 @@ void ProcessSet::scanProcess() for (const pid_t &pid : m_curPid) { if(!m_prePid.contains(pid)){ //add new process pid - Process *proc = new Process(pid); - proc->readProcessSimpleInfo(); + Process proc(pid); + proc.readProcessSimpleInfo(); if(!m_simpleSet.contains(pid)) - m_simpleSet.insert(proc->pid(), *proc); + m_simpleSet.insert(proc.pid(), proc); - if (proc->appType() == kFilterApps && !wmwindowList->isTrayApp(proc->pid())) { - m_pidMyApps << proc->pid(); + if (proc.appType() == kFilterApps && !wmwindowList->isTrayApp(proc.pid())) { + m_pidMyApps << proc.pid(); } } }