[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [threadweaver] src: Fix memory leak
From:       Albert Astals Cid <null () kde ! org>
Date:       2017-09-30 18:11:20
Message-ID: E1dyMES-0003we-9H () code ! kde ! org
[Download RAW message or body]

Git commit 21189d20fb7b1327deff821af4183da7e33aec2a by Albert Astals Cid.
Committed on 30/09/2017 at 18:11.
Pushed by aacid into branch 'master'.

Fix memory leak

Summary:
QueueSignals_Private needs a virtual destructor so that when
QueueSignals::~QueueSignals does
	delete m_d;
it ends up callign the destructor of Weaver_Private

Test Plan: autotests/ThreadWeaverQueueTests did leak, doesn't anymore

Reviewers: mirko, davidedmundson

Reviewed By: davidedmundson

Subscribers: #frameworks

Tags: #frameworks

Differential Revision: https://phabricator.kde.org/D7771

M  +1    -6    src/queuesignals.cpp
M  +4    -0    src/queuesignals_p.cpp
M  +1    -0    src/queuesignals_p.h
M  +1    -1    src/weaver_p.h

https://commits.kde.org/threadweaver/21189d20fb7b1327deff821af4183da7e33aec2a

diff --git a/src/queuesignals.cpp b/src/queuesignals.cpp
index 082860f..cf74eb0 100644
--- a/src/queuesignals.cpp
+++ b/src/queuesignals.cpp
@@ -26,16 +26,11 @@
 */
 
 #include "queuesignals.h"
+#include "queuesignals_p.h"
 
 namespace ThreadWeaver
 {
 
-namespace Private {
-
-class QueueSignals_Private {};
-
-}
-
 /** @brief Construct a QueueSignals object, passing the QObject parent. */
 QueueSignals::QueueSignals(QObject *parent)
     : QObject(parent)
diff --git a/src/queuesignals_p.cpp b/src/queuesignals_p.cpp
index cfbb571..97c8bce 100644
--- a/src/queuesignals_p.cpp
+++ b/src/queuesignals_p.cpp
@@ -30,3 +30,7 @@ http://creative-destruction.me $
 ThreadWeaver::Private::QueueSignals_Private::QueueSignals_Private()
 {
 }
+
+ThreadWeaver::Private::QueueSignals_Private::~QueueSignals_Private()
+{
+}
diff --git a/src/queuesignals_p.h b/src/queuesignals_p.h
index 5831db9..dc61ff6 100644
--- a/src/queuesignals_p.h
+++ b/src/queuesignals_p.h
@@ -36,6 +36,7 @@ class QueueSignals_Private
 {
 public:
     QueueSignals_Private();
+    virtual ~QueueSignals_Private();
 };
 
 }
diff --git a/src/weaver_p.h b/src/weaver_p.h
index 0ed5c80..bf763a1 100644
--- a/src/weaver_p.h
+++ b/src/weaver_p.h
@@ -46,7 +46,7 @@ class Weaver_Private : public QueueSignals_Private
 {
 public:
     Weaver_Private();
-    ~Weaver_Private();
+    ~Weaver_Private() override;
 
     void dumpJobs();
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic