diff options
author | Eirik Aavitsland <eirik.aavitsland@qt.io> | 2023-01-10 14:15:26 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2023-01-13 08:20:26 +0000 |
commit | dad6dd7bea4fbffd6da1b834ce9f6d26b3ee2211 (patch) | |
tree | 5d43c63a3f26fffa045bba7e8327fa54f48b0746 | |
parent | 13752128e8e333778b8ab956fd05c58c6b0c1034 (diff) |
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>
-rw-r--r-- | src/gui/image/qimagereader.cpp | 4 | ||||
-rw-r--r-- | 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 75b0e3f431..27b0fc93ef 100644 --- a/src/gui/image/qimagereader.cpp +++ b/src/gui/image/qimagereader.cpp @@ -774,12 +774,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 3d90dece9c..37778f761d 100644 --- a/src/gui/image/qimagewriter.cpp +++ b/src/gui/image/qimagewriter.cpp @@ -396,13 +396,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; } /*! |