From ae98b867a03f008c338a5b0afa5d08e2db271e37 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Sat, 18 May 2019 15:55:57 +0000 Subject: [PATCH] kdeui: plug some memory leaks Signed-off-by: Ivailo Monev --- kdeui/windowmanagement/kwindowsystem_x11.cpp | 21 ++++++++++---------- kdeui/xmlgui/kxmlguiclient.cpp | 7 ++++++- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/kdeui/windowmanagement/kwindowsystem_x11.cpp b/kdeui/windowmanagement/kwindowsystem_x11.cpp index 5ad41e0c..451ad7ed 100644 --- a/kdeui/windowmanagement/kwindowsystem_x11.cpp +++ b/kdeui/windowmanagement/kwindowsystem_x11.cpp @@ -41,16 +41,6 @@ #include #endif -class KWindowSystemStaticContainer { -public: - KWindowSystemStaticContainer() : d(0) {} - KWindowSystem kwm; - KWindowSystemPrivate* d; -}; - - -K_GLOBAL_STATIC(KWindowSystemStaticContainer, g_kwmInstanceContainer) - static Atom net_wm_cm; static void create_atoms( Display* dpy = QX11Info::display() ); @@ -114,6 +104,17 @@ public: bool removeStrutWindow( WId ); }; +class KWindowSystemStaticContainer { +public: + KWindowSystemStaticContainer() : d(0) {} + ~KWindowSystemStaticContainer() { if (d) d->deleteLater(); } + KWindowSystem kwm; + KWindowSystemPrivate* d; +}; + + +K_GLOBAL_STATIC(KWindowSystemStaticContainer, g_kwmInstanceContainer) + KWindowSystemPrivate::KWindowSystemPrivate(int _what) : QWidget(0), NETRootInfo( QX11Info::display(), diff --git a/kdeui/xmlgui/kxmlguiclient.cpp b/kdeui/xmlgui/kxmlguiclient.cpp index e7efdc81..80131b2c 100644 --- a/kdeui/xmlgui/kxmlguiclient.cpp +++ b/kdeui/xmlgui/kxmlguiclient.cpp @@ -51,6 +51,12 @@ public: } ~KXMLGUIClientPrivate() { + if (m_actionCollection) { + m_actionCollection->deleteLater(); + } + if (m_builder) { + delete m_builder; + } } bool mergeXML( QDomElement &base, QDomElement &additive, @@ -108,7 +114,6 @@ KXMLGUIClient::~KXMLGUIClient() client->d->m_parent = 0; } - delete d->m_actionCollection; delete d; }