From a2f91cc525531374657f0dd75641f2ca61dc4a5d Mon Sep 17 00:00:00 2001 From: black-desk Date: Fri, 12 May 2023 11:24:35 +0800 Subject: [PATCH] fix: don't free ptr removed from Entry::m_windowInfoMap Check comment. Signed-off-by: black-desk --- src/modules/dock/entry.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/modules/dock/entry.cpp b/src/modules/dock/entry.cpp index 77ba8d5..1a54066 100644 --- a/src/modules/dock/entry.cpp +++ b/src/modules/dock/entry.cpp @@ -473,9 +473,15 @@ bool Entry::detachWindow(WindowInfoBase *info) info->setEntry(nullptr); XWindow winId = info->getXid(); if (m_windowInfoMap.contains(winId)) { - WindowInfoBase *info = m_windowInfoMap[winId]; + // WARN(black_desk): Address sanitizer report Dock::m_activeWindow use + // this pointer after free here. + // After comment out the delete, leak sanitizer report nothing. So I + // believe this pointer is free somewhere else. + + // WindowInfoBase *info = m_windowInfoMap[winId]; m_windowInfoMap.remove(winId); - delete info; + // delete info; + } if (m_windowInfoMap.isEmpty()) {