summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2020-06-01 11:54:45 +0200
committerMarc Mutz <marc.mutz@kdab.com>2020-06-02 22:52:57 +0200
commitdd7f4001e1abbad508378ad2d3f718bcda6189b5 (patch)
treec5457a9e341af07b0cc5efacdb67b3ca217a805d /src/gui
parent033e5dc183fc3dc24b18d16722eee06b89e950d1 (diff)
QPainter: replace manual memory management [1/5]: dummyState
Use a unique_ptr to indicate ownership. Change-Id: I15e8c48fac1424d5605e869adcfba6965b16c218 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/painting/qpainter.cpp1
-rw-r--r--src/gui/painting/qpainter_p.h8
2 files changed, 5 insertions, 4 deletions
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index 4ab4c359bc..9272ddb9ef 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -222,7 +222,6 @@ QPainterPrivate::~QPainterPrivate()
{
delete emulationEngine;
qDeleteAll(states);
- delete dummyState;
}
diff --git a/src/gui/painting/qpainter_p.h b/src/gui/painting/qpainter_p.h
index 870381d48a..9b299ac18d 100644
--- a/src/gui/painting/qpainter_p.h
+++ b/src/gui/painting/qpainter_p.h
@@ -65,6 +65,8 @@
#include <private/qpen_p.h>
+#include <memory>
+
QT_BEGIN_NAMESPACE
class QPaintEngine;
@@ -206,7 +208,7 @@ public:
QPainterState *state;
QVarLengthArray<QPainterState *, 8> states;
- mutable QPainterDummyState *dummyState;
+ mutable std::unique_ptr<QPainterDummyState> dummyState;
QTransform invMatrix;
uint txinv:1;
@@ -221,8 +223,8 @@ public:
QPainterDummyState *fakeState() const {
if (!dummyState)
- dummyState = new QPainterDummyState();
- return dummyState;
+ dummyState = std::make_unique<QPainterDummyState>();
+ return dummyState.get();
}
void updateEmulationSpecifier(QPainterState *s);