summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel
diff options
context:
space:
mode:
authorFabian Kosmale <fabian.kosmale@qt.io>2020-10-17 21:09:24 +0200
committerFabian Kosmale <fabian.kosmale@qt.io>2020-10-18 10:42:48 +0200
commit1f66d914e435e733a7741e6b98abf92594122c01 (patch)
treea6416f86826c78c45fa2ec172f7816bcf9e4071f /src/gui/kernel
parent73f9c514dc01e26735b7162756ee6344ea9ac025 (diff)
QMutableEventPoint::detach: deref old private
After detaching, the current QMutableEventPoint obviously doesn't reference old QMutableEventPointPrivate anymore. Deref it, so that we do not leak memory. Change-Id: I3b59667603d41f452eead9a2db13e1d005f622ec Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/gui/kernel')
-rw-r--r--src/gui/kernel/qevent.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp
index d34b74d9d0..5a539ccaf6 100644
--- a/src/gui/kernel/qevent.cpp
+++ b/src/gui/kernel/qevent.cpp
@@ -479,8 +479,10 @@ void QMutableEventPoint::detach()
if (d->refCount == 1)
return; // no need: there is only one QEventPoint using it
qCDebug(lcEPDetach) << "detaching: refCount" << d->refCount << this;
+ auto old = d;
d = new QEventPointPrivate(*d);
d->refCount = 1;
+ --old->refCount;
}
/*! \internal