diff --git a/src/widgets/widgets/qwidgetlinecontrol.cpp b/src/widgets/widgets/qwidgetlinecontrol.cpp index 3f1c1ce629..80791cae83 100644 --- a/src/widgets/widgets/qwidgetlinecontrol.cpp +++ b/src/widgets/widgets/qwidgetlinecontrol.cpp @@ -963,8 +963,7 @@ void QWidgetLineControl::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(); m_maxLength = 32767; internalSetText(QString(), -1, false); } @@ -1002,8 +1001,7 @@ void QWidgetLineControl::parseInputMask(const QString &maskFields) m_maxLength++; } - delete [] m_maskData; - m_maskData = new MaskInputData[m_maxLength]; + m_maskData = std::make_unique(m_maxLength); MaskInputData::Casemode m = MaskInputData::NoCaseMode; bool s; diff --git a/src/widgets/widgets/qwidgetlinecontrol_p.h b/src/widgets/widgets/qwidgetlinecontrol_p.h index 43ce9ff7e4..f906165c20 100644 --- a/src/widgets/widgets/qwidgetlinecontrol_p.h +++ b/src/widgets/widgets/qwidgetlinecontrol_p.h @@ -70,6 +70,7 @@ #include "qplatformdefs.h" #include +#include #ifdef DrawText # undef DrawText @@ -111,8 +112,6 @@ public: // to zero it out if (m_echoMode != QLineEdit::Normal) m_text.fill(u'\0'); - - delete [] m_maskData; } void setAccessibleObject(QObject *object) @@ -465,7 +464,7 @@ private: }; QString m_inputMask; QChar m_blank; - MaskInputData *m_maskData; + std::unique_ptr m_maskData; // undo/redo handling enum CommandType { Separator, Insert, Remove, Delete, RemoveSelection, DeleteSelection, SetSelection };