diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp index 4ab4c359bc3..9272ddb9ef8 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 870381d48ab..9b299ac18d2 100644 --- a/src/gui/painting/qpainter_p.h +++ b/src/gui/painting/qpainter_p.h @@ -65,6 +65,8 @@ #include +#include + QT_BEGIN_NAMESPACE class QPaintEngine; @@ -206,7 +208,7 @@ public: QPainterState *state; QVarLengthArray states; - mutable QPainterDummyState *dummyState; + mutable std::unique_ptr 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(); + return dummyState.get(); } void updateEmulationSpecifier(QPainterState *s);