From d12df462c3fa54afc4daff0e151106e2d42f98d5 Mon Sep 17 00:00:00 2001 From: Volker Hilsheimer Date: Mon, 1 Mar 2021 11:31:11 +0100 Subject: Protect against self-assignment, plug potential memory leak Fixes static analyzer warning f03d95823e9f1395d64501cc111f0f63 As a drive-by, plug the potential memory leak if the assigned-to QDockAreaLayoutItem already holds a QDockAreaLayoutInfo object. The subinfo is deleted in the destructor, QDockAreaLayoutItem has ownership for the subinfo. Change-Id: I8546adc6fb0537078eea9dfb45d1bd9967d8d149 Reviewed-by: Allan Sandfeld Jensen (cherry picked from commit 3ae09debab67eecc48721481b76fa11a9f9a383c) Reviewed-by: Qt Cherry-pick Bot --- src/widgets/widgets/qdockarealayout.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/widgets/widgets/qdockarealayout.cpp b/src/widgets/widgets/qdockarealayout.cpp index 2654341505..7776ae6613 100644 --- a/src/widgets/widgets/qdockarealayout.cpp +++ b/src/widgets/widgets/qdockarealayout.cpp @@ -182,7 +182,11 @@ QSize QDockAreaLayoutItem::sizeHint() const QDockAreaLayoutItem &QDockAreaLayoutItem::operator = (const QDockAreaLayoutItem &other) { + if (this == &other) + return *this; + widgetItem = other.widgetItem; + delete subinfo; if (other.subinfo == nullptr) subinfo = nullptr; else -- cgit v1.2.3