diff options
author | Fabian Kosmale <fabian.kosmale@qt.io> | 2020-11-24 13:23:23 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2020-11-24 19:05:50 +0000 |
commit | 28e48455946deca8a63e054fb4f240e4a24f94e4 (patch) | |
tree | 9e6961f1e62ac9c32092c53928eb7fddadf65940 | |
parent | 6b7d23c42b8295c98cdee05bd9b983f3934dc698 (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>
-rw-r--r-- | src/quick/items/qquicktextinput.cpp | 6 | ||||
-rw-r--r-- | src/quick/items/qquicktextinput_p_p.h | 4 |
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; |