summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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);