summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/qpainter.cpp
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2020-06-01 11:54:45 +0200
committerMarc Mutz <marc.mutz@kdab.com>2021-07-16 06:36:06 +0200
commitff1c12376ba2a99be50d34f0c6a7ac9afd725b10 (patch)
treeb7c0dc08b2d3f248729b02be76a6073d42679f4c /src/gui/painting/qpainter.cpp
parente71b9fb4658991bd509c784b98410af221583dd5 (diff)
QPainter: replace manual memory management [4/5]: emulationEngine
Use unique_ptr to indicate ownership. The QPainter dtor is now empty, = default it. As a drive-by, fix a non-sensical if (p) p = nullptr; Change-Id: I5c811eb7de6abf8a9f279cf3630d5f86db6b3864 Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/gui/painting/qpainter.cpp')
-rw-r--r--src/gui/painting/qpainter.cpp27
1 files changed, 7 insertions, 20 deletions
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index 6a0d431a50..82a96960a8 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -206,29 +206,24 @@ void QPainterPrivate::checkEmulation()
return;
if (doEmulation) {
- if (extended != emulationEngine) {
+ if (extended != emulationEngine.get()) {
if (!emulationEngine)
- emulationEngine = new QEmulationPaintEngine(extended);
- extended = emulationEngine;
+ emulationEngine = std::make_unique<QEmulationPaintEngine>(extended);
+ extended = emulationEngine.get();
extended->setState(state.get());
}
- } else if (emulationEngine == extended) {
+ } else if (emulationEngine.get() == extended) {
extended = emulationEngine->real_engine;
}
}
-
QPainterPrivate::QPainterPrivate(QPainter *painter)
: q_ptr(painter), txinv(0), inDestructor(false)
{
-
}
QPainterPrivate::~QPainterPrivate()
-{
- delete emulationEngine;
-}
-
+ = default;
QTransform QPainterPrivate::viewTransform() const
{
@@ -346,7 +341,6 @@ void QPainterPrivate::detachPainterPrivate(QPainter *q)
if (emulationEngine) {
extended = emulationEngine->real_engine;
- delete emulationEngine;
emulationEngine = nullptr;
}
}
@@ -1918,15 +1912,8 @@ bool QPainter::end()
}
d->engine.reset();
-
- if (d->emulationEngine) {
- delete d->emulationEngine;
- d->emulationEngine = nullptr;
- }
-
- if (d->extended) {
- d->extended = nullptr;
- }
+ d->emulationEngine = nullptr;
+ d->extended = nullptr;
qt_cleanup_painter_state(d);