aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorFabian Kosmale <fabian.kosmale@qt.io>2020-11-24 13:23:23 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2020-11-24 19:05:50 +0000
commit28e48455946deca8a63e054fb4f240e4a24f94e4 (patch)
tree9e6961f1e62ac9c32092c53928eb7fddadf65940 /src
parent6b7d23c42b8295c98cdee05bd9b983f3934dc698 (diff)
QQuickTextInput: Store mask data in std::unique_ptr
This ensures that the memory is freed reliably Fixes: QTBUG-88807 Change-Id: I841a5a2b226a69ce50975d95702a948857d1b54f Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit d2d8e90e9f218103d60737e1273ab5322834d9ec) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/quick/items/qquicktextinput.cpp6
-rw-r--r--src/quick/items/qquicktextinput_p_p.h4
2 files changed, 5 insertions, 5 deletions
diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp
index 7861ba768f..f5a09220f5 100644
--- a/src/quick/items/qquicktextinput.cpp
+++ b/src/quick/items/qquicktextinput.cpp
@@ -3834,8 +3834,7 @@ void QQuickTextInputPrivate::parseInputMask(const QString &maskFields)
int delimiter = maskFields.indexOf(QLatin1Char(';'));
if (maskFields.isEmpty() || delimiter == 0) {
if (m_maskData) {
- delete [] m_maskData;
- m_maskData = nullptr;
+ m_maskData.reset(nullptr);
m_maxLength = 32767;
internalSetText(QString());
}
@@ -3866,8 +3865,7 @@ void QQuickTextInputPrivate::parseInputMask(const QString &maskFields)
m_maxLength++;
}
- delete [] m_maskData;
- m_maskData = new MaskInputData[m_maxLength];
+ m_maskData.reset(new MaskInputData[m_maxLength]);
MaskInputData::Casemode m = MaskInputData::NoCaseMode;
c = u'\0';
diff --git a/src/quick/items/qquicktextinput_p_p.h b/src/quick/items/qquicktextinput_p_p.h
index 6a0a1ca170..cb965f2fed 100644
--- a/src/quick/items/qquicktextinput_p_p.h
+++ b/src/quick/items/qquicktextinput_p_p.h
@@ -58,6 +58,8 @@
#include "qplatformdefs.h"
+#include <memory>
+
//
// W A R N I N G
// -------------
@@ -230,7 +232,7 @@ public:
QQuickItem *cursorItem;
QQuickTextNode *textNode;
- MaskInputData *m_maskData;
+ std::unique_ptr<MaskInputData[]> m_maskData;
QInputControl *m_inputControl;
QList<int> m_transactions;