OSDN Git Service

properly initialize and delete QImageWriterPrivate members
authorIvailo Monev <xakepa10@gmail.com>
Tue, 12 Jan 2021 13:51:05 +0000 (15:51 +0200)
committerIvailo Monev <xakepa10@gmail.com>
Tue, 12 Jan 2021 13:51:05 +0000 (15:51 +0200)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
src/gui/image/qimagewriter.cpp

index ac89d62..75d823d 100644 (file)
@@ -201,6 +201,7 @@ class QImageWriterPrivate
 {
 public:
     QImageWriterPrivate();
+    ~QImageWriterPrivate();
 
     // device
     QByteArray format;
@@ -222,15 +223,22 @@ public:
     \internal
 */
 QImageWriterPrivate::QImageWriterPrivate()
+    : device(Q_NULLPTR),
+    deleteDevice(false),
+    handler(Q_NULLPTR),
+    quality(-1),
+    compression(0),
+    gamma(0.0),
+    imageWriterError(QImageWriter::UnknownError),
+    errorString(QT_TRANSLATE_NOOP(QImageWriter, QLatin1String("Unknown error")))
 {
-    device = 0;
-    deleteDevice = false;
-    handler = 0;
-    quality = -1;
-    compression = 0;
-    gamma = 0.0;
-    imageWriterError = QImageWriter::UnknownError;
-    errorString = QT_TRANSLATE_NOOP(QImageWriter, QLatin1String("Unknown error"));
+}
+
+QImageWriterPrivate::~QImageWriterPrivate()
+{
+    if (deleteDevice)
+        delete device;
+    delete handler;
 }
 
 /*!
@@ -274,9 +282,6 @@ QImageWriter::QImageWriter(const QString &fileName, const QByteArray &format)
 */
 QImageWriter::~QImageWriter()
 {
-    if (d->deleteDevice)
-        delete d->device;
-    delete d->handler;
     delete d;
 }