From 462e537e0334838a9bf90735f9fd14e1b91fc987 Mon Sep 17 00:00:00 2001 From: Timur Pocheptsov Date: Tue, 28 Jul 2015 17:38:34 +0200 Subject: [PATCH] Fix a memory leak We create dirtyOnScreenWidgets even if QT_NO_OPENGL is defined, but dtor deletes this object only if no QT_NO_OPENGL is defined. Also, copy ctor/assignment operator must be disabled for such a class. Task-number: QTBUG-47499 Change-Id: I9f8b5721ff6324fa7b28b715af68d0a5496c5eb5 Reviewed-by: Laszlo Agocs --- src/widgets/kernel/qwidgetbackingstore.cpp | 3 +-- src/widgets/kernel/qwidgetbackingstore_p.h | 2 ++ 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/widgets/kernel/qwidgetbackingstore.cpp b/src/widgets/kernel/qwidgetbackingstore.cpp index d1070839fa..fff75d829f 100644 --- a/src/widgets/kernel/qwidgetbackingstore.cpp +++ b/src/widgets/kernel/qwidgetbackingstore.cpp @@ -763,9 +763,8 @@ QWidgetBackingStore::~QWidgetBackingStore() #ifndef QT_NO_OPENGL delete widgetTextures; - delete dirtyOnScreenWidgets; #endif - dirtyOnScreenWidgets = 0; + delete dirtyOnScreenWidgets; } //parent's coordinates; move whole rect; update parent and widget diff --git a/src/widgets/kernel/qwidgetbackingstore_p.h b/src/widgets/kernel/qwidgetbackingstore_p.h index bcffa3be79..b7ee7e4168 100644 --- a/src/widgets/kernel/qwidgetbackingstore_p.h +++ b/src/widgets/kernel/qwidgetbackingstore_p.h @@ -301,6 +301,8 @@ private: friend class QWidgetPrivate; friend class QWidget; friend class QBackingStore; + + Q_DISABLE_COPY(QWidgetBackingStore) }; QT_END_NAMESPACE