diff options
author | Giulio Camuffo <giulio.camuffo@kdab.com> | 2020-03-20 14:05:34 +0100 |
---|---|---|
committer | Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> | 2020-03-25 01:15:51 +0100 |
commit | b15ed929f3f481914bf96203e691a552f6d9fe00 (patch) | |
tree | 2f5399ecac673a6b4af7f552070c98a58d557058 /src | |
parent | 1d5eb202b928dc7c73fc0fc4eb480817b339c68a (diff) |
Fix memory leak
When creating a new QColorSpacePrivate it must be reffed otherwise in
the destructor the deref() will bring the count to -1 which is true
and will not delete the d_ptr.
Change-Id: Id569bae22134b56bf6ad37158d7079b495599fd7
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
(cherry picked from commit 20eabb72de94ddcef3c36b5cad0ce88944d42f8c)
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/painting/qcolorspace.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gui/painting/qcolorspace.cpp b/src/gui/painting/qcolorspace.cpp index 7e7bbec870..930e5aec87 100644 --- a/src/gui/painting/qcolorspace.cpp +++ b/src/gui/painting/qcolorspace.cpp @@ -553,6 +553,7 @@ void QColorSpace::setTransferFunction(QColorSpace::TransferFunction transferFunc return; if (!d_ptr) { d_ptr = new QColorSpacePrivate(Primaries::Custom, transferFunction, gamma); + d_ptr->ref.ref(); return; } if (d_ptr->transferFunction == transferFunction && d_ptr->gamma == gamma) @@ -593,6 +594,7 @@ void QColorSpace::setPrimaries(QColorSpace::Primaries primariesId) return; if (!d_ptr) { d_ptr = new QColorSpacePrivate(primariesId, TransferFunction::Custom, 0.0f); + d_ptr->ref.ref(); return; } if (d_ptr->primaries == primariesId) @@ -618,6 +620,7 @@ void QColorSpace::setPrimaries(const QPointF &whitePoint, const QPointF &redPoin return; if (!d_ptr) { d_ptr = new QColorSpacePrivate(primaries, TransferFunction::Custom, 0.0f); + d_ptr->ref.ref(); return; } QColorMatrix toXyz = primaries.toXyzMatrix(); |