diff options
-rw-r--r-- | src/gui/painting/qpainter.cpp | 1 | ||||
-rw-r--r-- | src/gui/painting/qpainter_p.h | 8 |
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); |