Blame SOURCES/0012-QQuickTextInput-Store-mask-data-in-std-unique_ptr.patch

b602f4
From 89ea9f1f9468aa47718cbb398317c63a9479adf2 Mon Sep 17 00:00:00 2001
b602f4
From: Fabian Kosmale <fabian.kosmale@qt.io>
b602f4
Date: Tue, 24 Nov 2020 13:23:23 +0100
b602f4
Subject: [PATCH 12/28] QQuickTextInput: Store mask data in std::unique_ptr
b602f4
b602f4
This ensures that the memory is freed reliably
b602f4
b602f4
Fixes: QTBUG-88807
b602f4
Change-Id: I841a5a2b226a69ce50975d95702a948857d1b54f
b602f4
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
b602f4
(cherry picked from commit d2d8e90e9f218103d60737e1273ab5322834d9ec)
b602f4
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
b602f4
---
b602f4
 src/quick/items/qquicktextinput.cpp   | 6 ++----
b602f4
 src/quick/items/qquicktextinput_p_p.h | 4 +++-
b602f4
 2 files changed, 5 insertions(+), 5 deletions(-)
b602f4
b602f4
diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp
b602f4
index 6275b298ed..bb78ead0e8 100644
b602f4
--- a/src/quick/items/qquicktextinput.cpp
b602f4
+++ b/src/quick/items/qquicktextinput.cpp
b602f4
@@ -3831,8 +3831,7 @@ void QQuickTextInputPrivate::parseInputMask(const QString &maskFields)
b602f4
     int delimiter = maskFields.indexOf(QLatin1Char(';'));
b602f4
     if (maskFields.isEmpty() || delimiter == 0) {
b602f4
         if (m_maskData) {
b602f4
-            delete [] m_maskData;
b602f4
-            m_maskData = nullptr;
b602f4
+            m_maskData.reset(nullptr);
b602f4
             m_maxLength = 32767;
b602f4
             internalSetText(QString());
b602f4
         }
b602f4
@@ -3863,8 +3862,7 @@ void QQuickTextInputPrivate::parseInputMask(const QString &maskFields)
b602f4
             m_maxLength++;
b602f4
     }
b602f4
 
b602f4
-    delete [] m_maskData;
b602f4
-    m_maskData = new MaskInputData[m_maxLength];
b602f4
+    m_maskData.reset(new MaskInputData[m_maxLength]);
b602f4
 
b602f4
     MaskInputData::Casemode m = MaskInputData::NoCaseMode;
b602f4
     c = 0;
b602f4
diff --git a/src/quick/items/qquicktextinput_p_p.h b/src/quick/items/qquicktextinput_p_p.h
b602f4
index 7965f3d3f4..7fbba49405 100644
b602f4
--- a/src/quick/items/qquicktextinput_p_p.h
b602f4
+++ b/src/quick/items/qquicktextinput_p_p.h
b602f4
@@ -58,6 +58,8 @@
b602f4
 
b602f4
 #include "qplatformdefs.h"
b602f4
 
b602f4
+#include <memory>
b602f4
+
b602f4
 //
b602f4
 //  W A R N I N G
b602f4
 //  -------------
b602f4
@@ -230,7 +232,7 @@ public:
b602f4
 
b602f4
     QQuickItem *cursorItem;
b602f4
     QQuickTextNode *textNode;
b602f4
-    MaskInputData *m_maskData;
b602f4
+    std::unique_ptr<MaskInputData[]> m_maskData;
b602f4
     QInputControl *m_inputControl;
b602f4
 
b602f4
     QList<int> m_transactions;
b602f4
-- 
b602f4
2.31.1
b602f4