summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTopi Reinio <topi.reinio@qt.io>2021-11-06 00:24:17 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2021-11-06 11:28:23 +0000
commit1ebce4de7a1fd99a640e237e0b1a24874a7ae9f8 (patch)
treec9ff462ab3d9fe2771bad8478a4d23da021003cf
parent40785d2b4107b7f86e9464f4696189c30cf5f740 (diff)
qdoc: Fix memory leak in Section::clear()
It is generally a bad move to set something to null before attempting to delete it. Change-Id: Icb08f281508583342bb6bd07cc01080748d0052a Reviewed-by: Paul Wicking <paul.wicking@qt.io> (cherry picked from commit f79bb22bf8cf383b91e229ec6eb59f547d7b8a0d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-rw-r--r--src/qdoc/sections.cpp18
1 files changed, 4 insertions, 14 deletions
diff --git a/src/qdoc/sections.cpp b/src/qdoc/sections.cpp
index 1c685cef0..7b6a8966f 100644
--- a/src/qdoc/sections.cpp
+++ b/src/qdoc/sections.cpp
@@ -87,29 +87,19 @@ Section::~Section()
*/
void Section::clear()
{
+ qDeleteAll(m_classMapList);
+ qDeleteAll(m_classKeysNodesList);
m_memberMap.clear();
m_obsoleteMemberMap.clear();
m_reimplementedMemberMap.clear();
- if (!m_classMapList.isEmpty()) {
- for (ClassMap *classMap : m_classMapList) {
- classMap = nullptr;
- delete classMap;
- }
- m_classMapList.clear();
- }
+ m_classMapList.clear();
m_keys.clear();
m_obsoleteKeys.clear();
m_members.clear();
m_obsoleteMembers.clear();
m_reimplementedMembers.clear();
m_inheritedMembers.clear();
- if (!m_classKeysNodesList.isEmpty()) {
- for (ClassKeysNodes *classKeysNode : m_classKeysNodesList) {
- classKeysNode = nullptr;
- delete classKeysNode;
- }
- m_classKeysNodesList.clear();
- }
+ m_classKeysNodesList.clear();
m_aggregate = nullptr;
}