From dd7f4001e1abbad508378ad2d3f718bcda6189b5 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 1 Jun 2020 11:54:45 +0200 Subject: [PATCH] QPainter: replace manual memory management [1/5]: dummyState Use a unique_ptr to indicate ownership. Change-Id: I15e8c48fac1424d5605e869adcfba6965b16c218 Reviewed-by: Lars Knoll --- src/gui/painting/qpainter.cpp | 1 - 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 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);