From 49c17b3abb4fbd6f0cc6b4197ebaa2c052fa1cdb Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Sat, 11 Jun 2022 00:52:17 +0300 Subject: [PATCH] QByteArray::toLower() and QByteArray::toUpper() optimization Signed-off-by: Ivailo Monev --- src/core/tools/qbytearray.cpp | 8 ++++---- src/core/tools/qlocale_tools_p.h | 6 ++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/core/tools/qbytearray.cpp b/src/core/tools/qbytearray.cpp index 8f3720e1a..772f2c6fb 100644 --- a/src/core/tools/qbytearray.cpp +++ b/src/core/tools/qbytearray.cpp @@ -2510,9 +2510,9 @@ QByteArray QByteArray::mid(int pos, int len) const QByteArray QByteArray::toLower() const { QByteArray s(*this); - uchar *p = reinterpret_cast(s.data()); + char *p = s.data(); while (*p) { - *p = QChar::toLower((ushort)*p); + *p = qToLower(*p); p++; } return s; @@ -2531,9 +2531,9 @@ QByteArray QByteArray::toLower() const QByteArray QByteArray::toUpper() const { QByteArray s(*this); - uchar *p = reinterpret_cast(s.data()); + char *p = s.data(); while (*p) { - *p = QChar::toUpper((ushort)*p); + *p = qToUpper(*p); p++; } return s; diff --git a/src/core/tools/qlocale_tools_p.h b/src/core/tools/qlocale_tools_p.h index 105b0110e..8364f8455 100644 --- a/src/core/tools/qlocale_tools_p.h +++ b/src/core/tools/qlocale_tools_p.h @@ -75,14 +75,16 @@ static inline bool qIsDigit(char ch) return (ch >= '0' && ch <= '9'); } -static inline char qToLower(char ch) +template +inline T qToLower(const T ch) { if (ch >= 'A' && ch <= 'Z') return (ch + 32); return ch; } -static inline char qToUpper(char ch) +template +inline T qToUpper(const T ch) { if (ch >= 'a' && ch <= 'z') return (ch - 32); -- 2.11.0