diff options
author | Eirik Aavitsland <eirik.aavitsland@qt.io> | 2023-01-10 14:15:26 +0100 |
---|---|---|
committer | Eirik Aavitsland <eirik.aavitsland@qt.io> | 2023-01-11 19:36:26 +0100 |
commit | 5633cb69f68ca3d3b82476f9025d863f804e76c1 (patch) | |
tree | a660d8ccf1e3c07a2ddab5c65bc22a269cc4fce5 | |
parent | ec787ce14363c843f9c1149bad8045ff6acbcf1c (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.
Pick-to: 6.5 6.4 6.2 5.15
Change-Id: I85b64726cd88d2c8e63eee59d5b4f2ae488df61b
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
-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 a91805c3f3..e943559ffd 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 9a2ba85afd..ae8db3d3b5 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; } /*! |