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>bb10
parent
e71b9fb465
commit
ff1c12376b
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
|
|
@ -272,7 +272,7 @@ public:
|
|||
};
|
||||
std::unique_ptr<QPaintEngine, QPaintEngineDestructor> engine;
|
||||
|
||||
QEmulationPaintEngine *emulationEngine = nullptr;
|
||||
std::unique_ptr<QEmulationPaintEngine> emulationEngine;
|
||||
QPaintEngineEx *extended = nullptr;
|
||||
QBrush colorBrush; // for fill with solid color
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue