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. Change-Id: I85b64726cd88d2c8e63eee59d5b4f2ae488df61b Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io> (cherry picked from commit 5633cb69f68ca3d3b82476f9025d863f804e76c1) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
3f7a73adb5
commit
47b3f967d6
@ -746,12 +746,12 @@ bool QImageReader::decideFormatFromContent() const
|
|||||||
*/
|
*/
|
||||||
void QImageReader::setDevice(QIODevice *device)
|
void QImageReader::setDevice(QIODevice *device)
|
||||||
{
|
{
|
||||||
|
delete d->handler;
|
||||||
|
d->handler = nullptr;
|
||||||
if (d->device && d->deleteDevice)
|
if (d->device && d->deleteDevice)
|
||||||
delete d->device;
|
delete d->device;
|
||||||
d->device = device;
|
d->device = device;
|
||||||
d->deleteDevice = false;
|
d->deleteDevice = false;
|
||||||
delete d->handler;
|
|
||||||
d->handler = nullptr;
|
|
||||||
d->text.clear();
|
d->text.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -362,13 +362,13 @@ QByteArray QImageWriter::format() const
|
|||||||
*/
|
*/
|
||||||
void QImageWriter::setDevice(QIODevice *device)
|
void QImageWriter::setDevice(QIODevice *device)
|
||||||
{
|
{
|
||||||
|
delete d->handler;
|
||||||
|
d->handler = nullptr;
|
||||||
if (d->device && d->deleteDevice)
|
if (d->device && d->deleteDevice)
|
||||||
delete d->device;
|
delete d->device;
|
||||||
|
|
||||||
d->device = device;
|
d->device = device;
|
||||||
d->deleteDevice = false;
|
d->deleteDevice = false;
|
||||||
delete d->handler;
|
|
||||||
d->handler = nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
Loading…
x
Reference in New Issue
Block a user