diff options
author | Kai Koehne <kai.koehne@theqtcompany.com> | 2015-01-26 15:21:12 +0100 |
---|---|---|
committer | Jani Heikkinen <jani.heikkinen@theqtcompany.com> | 2015-02-02 10:26:42 +0000 |
commit | 5f6bbce4beb32bc6bc1e06f92cde56c48f946558 (patch) | |
tree | 47c84fd10b604a7b1d1a4b292082e2cb73588e3a /src/corelib | |
parent | 8e0f56280ab6fd869faf1650edd454883f4d035f (diff) |
Fix memory leak in qSetMessagePattern
We were leaking memory in case setPattern was called multiple
times
Task-number: QTBUG-43893
Change-Id: Icd9c214edea064aeaeb6f92a9c62836238ccd344
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/global/qlogging.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/corelib/global/qlogging.cpp b/src/corelib/global/qlogging.cpp index 50d35a6d84..86ba082398 100644 --- a/src/corelib/global/qlogging.cpp +++ b/src/corelib/global/qlogging.cpp @@ -866,7 +866,7 @@ QMessagePattern::QMessagePattern() QMessagePattern::~QMessagePattern() { - for (int i = 0; literals[i] != 0; ++i) + for (int i = 0; literals[i]; ++i) delete [] literals[i]; delete [] literals; literals = 0; @@ -876,8 +876,12 @@ QMessagePattern::~QMessagePattern() void QMessagePattern::setPattern(const QString &pattern) { + if (literals) { + for (int i = 0; literals[i]; ++i) + delete [] literals[i]; + delete [] literals; + } delete [] tokens; - delete [] literals; // scanner QList<QString> lexemes; |