From 47b3f967d61280cfb0925a071b32aa8e3e74661a Mon Sep 17 00:00:00 2001 From: Eirik Aavitsland Date: Tue, 10 Jan 2023 14:15:26 +0100 Subject: [PATCH] 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 (cherry picked from commit 5633cb69f68ca3d3b82476f9025d863f804e76c1) Reviewed-by: Qt Cherry-pick Bot --- src/gui/image/qimagereader.cpp | 4 ++-- src/gui/image/qimagewriter.cpp | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/image/qimagereader.cpp b/src/gui/image/qimagereader.cpp index a91805c3f38..e943559ffd5 100644 --- a/src/gui/image/qimagereader.cpp +++ b/src/gui/image/qimagereader.cpp @@ -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(); } diff --git a/src/gui/image/qimagewriter.cpp b/src/gui/image/qimagewriter.cpp index 9a2ba85afde..ae8db3d3b51 100644 --- a/src/gui/image/qimagewriter.cpp +++ b/src/gui/image/qimagewriter.cpp @@ -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; } /*!