From 7d26ff61dada5203864539aa737020669ca14165 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Sat, 14 Dec 2019 23:53:46 +0000 Subject: [PATCH] check error code before result in QChar::decomposition() and QString::normalized() Signed-off-by: Ivailo Monev --- src/core/tools/qchar.cpp | 8 +++----- src/core/tools/qstring.cpp | 8 ++++---- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/core/tools/qchar.cpp b/src/core/tools/qchar.cpp index aeac4411b..dbec9c207 100644 --- a/src/core/tools/qchar.cpp +++ b/src/core/tools/qchar.cpp @@ -1181,14 +1181,12 @@ QString QChar::decomposition(const uint ucs4) QString result(4, Qt::Uninitialized); const int decresult = unorm2_getDecomposition(normalizer, ucs4, reinterpret_cast(result.data()), result.size(), &errorcode); - if (Q_UNLIKELY(decresult < 1)) { - // no decomposition value - return QString(); - } - if (Q_UNLIKELY(U_FAILURE(errorcode))) { qWarning("QChar::decomposition: unorm2_getDecomposition() failed %s", u_errorName(errorcode)); return QString(); + } else if (Q_UNLIKELY(decresult < 1)) { + // no decomposition value + return QString(); } result.resize(decresult); diff --git a/src/core/tools/qstring.cpp b/src/core/tools/qstring.cpp index 80b4974a1..9e88ceb5c 100644 --- a/src/core/tools/qstring.cpp +++ b/src/core/tools/qstring.cpp @@ -5750,12 +5750,12 @@ QString QString::normalized(QString::NormalizationForm mode, QChar::UnicodeVersi const int decresult = unorm2_normalize(normalizer, reinterpret_cast(unicode()), srcsize, reinterpret_cast(result.data()), result.size(), &error); - if (Q_UNLIKELY(decresult < 1)) { - // no normalization value - return *this; - } else if (Q_UNLIKELY(U_FAILURE(error))) { + if (Q_UNLIKELY(U_FAILURE(error))) { qWarning("QString::normalized: unorm2_normalize() failed %s", u_errorName(error)); return QString(); + } else if (Q_UNLIKELY(decresult < 1)) { + // no normalization value + return *this; } result.resize(decresult); -- 2.11.0