Fix deletion order in QImageReader/Writer destructors

The device would be deleted before the image format handler, and hence
be a dangling pointer that could easily cause a crash if the handler
or codec would access it on destruction, e.g. for cleanup.

Change-Id: I51d16b1feddc5945955ac75a2e8701233dba7b82
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
(cherry picked from commit f091026be1deb4b4a90f32585b9b22f97209866a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Eirik Aavitsland 2023-01-03 15:04:16 +01:00 committed by Qt Cherry-pick Bot
parent 2ab5df8847
commit aa769d8d1c
2 changed files with 2 additions and 2 deletions

View File

@ -484,9 +484,9 @@ QImageReaderPrivate::QImageReaderPrivate(QImageReader *qq)
*/
QImageReaderPrivate::~QImageReaderPrivate()
{
delete handler;
if (deleteDevice)
delete device;
delete handler;
}
/*!

View File

@ -315,9 +315,9 @@ QImageWriter::QImageWriter(const QString &fileName, const QByteArray &format)
*/
QImageWriter::~QImageWriter()
{
delete d->handler;
if (d->deleteDevice)
delete d->device;
delete d->handler;
delete d;
}