From 0daed8dee82d29be1dbf39046b0d4a0814e08d08 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Mon, 27 Apr 2020 16:45:43 +0200 Subject: [PATCH] QWidgetLineControl: replace raw memory handling with std::unique_ptr Change-Id: I131175a9f7147783c4f4c0a1c4929e28677c159a Reviewed-by: Friedemann Kleint Reviewed-by: Volker Hilsheimer --- src/widgets/widgets/qwidgetlinecontrol.cpp | 6 ++---- src/widgets/widgets/qwidgetlinecontrol_p.h | 5 ++--- 2 files changed, 4 insertions(+), 7 deletions(-) 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 };