Fix deletion order also for QImageReader/Writer::setDevice()
Avoid dangling or incorrect device pointer during handler destruction. This was recently fixed in the destructors, fixed here also for the setDevice() functions. Pick-to: 6.5 6.4 6.2 5.15 Change-Id: I85b64726cd88d2c8e63eee59d5b4f2ae488df61b Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
This commit is contained in:
parent
ec787ce143
commit
5633cb69f6
@ -746,12 +746,12 @@ bool QImageReader::decideFormatFromContent() const
|
||||
*/
|
||||
void QImageReader::setDevice(QIODevice *device)
|
||||
{
|
||||
delete d->handler;
|
||||
d->handler = nullptr;
|
||||
if (d->device && d->deleteDevice)
|
||||
delete d->device;
|
||||
d->device = device;
|
||||
d->deleteDevice = false;
|
||||
delete d->handler;
|
||||
d->handler = nullptr;
|
||||
d->text.clear();
|
||||
}
|
||||
|
||||
|
@ -362,13 +362,13 @@ QByteArray QImageWriter::format() const
|
||||
*/
|
||||
void QImageWriter::setDevice(QIODevice *device)
|
||||
{
|
||||
delete d->handler;
|
||||
d->handler = nullptr;
|
||||
if (d->device && d->deleteDevice)
|
||||
delete d->device;
|
||||
|
||||
d->device = device;
|
||||
d->deleteDevice = false;
|
||||
delete d->handler;
|
||||
d->handler = nullptr;
|
||||
}
|
||||
|
||||
/*!
|
||||
|
Loading…
x
Reference in New Issue
Block a user