summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrei Golubev <andrei.golubev@qt.io>2020-11-11 09:33:31 +0100
committerAndrei Golubev <andrei.golubev@qt.io>2020-11-12 15:25:06 +0100
commit9c5117756419480eb83e6484cee6ad2f01358df7 (patch)
tree13d361e92d5c7df5870d47f2215ea97f7049666c
parente796857abb73d44b6862687c353ee4977d22cc77 (diff)
QStringBuilder: change int to qsizetype
We should use qsizetype when interacting with QString/QBA to avoid subtle overflow bugs and int limitations Change-Id: I4ae5ea98a72c6283c7dca0ecfa94cc1669c9b446 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r--src/corelib/text/qstringbuilder.h22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/corelib/text/qstringbuilder.h b/src/corelib/text/qstringbuilder.h
index 7d35a04762..ec5ef6eb7c 100644
--- a/src/corelib/text/qstringbuilder.h
+++ b/src/corelib/text/qstringbuilder.h
@@ -108,7 +108,7 @@ private:
friend class QString;
template <typename T> T convertTo() const
{
- const uint len = QConcatenable< QStringBuilder<A, B> >::size(*this);
+ const qsizetype len = QConcatenable< QStringBuilder<A, B> >::size(*this);
T s(len, Qt::Uninitialized);
// we abuse const_cast / constData here because we know we've just
@@ -117,10 +117,10 @@ private:
typename T::const_iterator const start = d;
QConcatenable< QStringBuilder<A, B> >::appendTo(*this, d);
- if (!QConcatenable< QStringBuilder<A, B> >::ExactSize && int(len) != d - start) {
+ if (!QConcatenable< QStringBuilder<A, B> >::ExactSize && len != d - start) {
// this resize is necessary since we allocate a bit too much
// when dealing with variable sized 8-bit encodings
- s.resize(int(d - start));
+ s.resize(d - start);
}
return s;
}
@@ -257,7 +257,7 @@ template <> struct QConcatenable<QString> : private QAbstractConcatenable
static qsizetype size(const QString &a) { return a.size(); }
static inline void appendTo(const QString &a, QChar *&out)
{
- const int n = a.size();
+ const qsizetype n = a.size();
if (n)
memcpy(out, reinterpret_cast<const char*>(a.constData()), sizeof(QChar) * n);
out += n;
@@ -279,7 +279,7 @@ template <> struct QConcatenable<QStringView> : private QAbstractConcatenable
}
};
-template <int N> struct QConcatenable<const char[N]> : private QAbstractConcatenable
+template <qsizetype N> struct QConcatenable<const char[N]> : private QAbstractConcatenable
{
typedef const char type[N];
typedef QByteArray ConvertTo;
@@ -298,7 +298,7 @@ template <int N> struct QConcatenable<const char[N]> : private QAbstractConcaten
}
};
-template <int N> struct QConcatenable<char[N]> : QConcatenable<const char[N]>
+template <qsizetype N> struct QConcatenable<char[N]> : QConcatenable<const char[N]>
{
typedef char type[N];
};
@@ -327,7 +327,7 @@ template <> struct QConcatenable<char *> : QConcatenable<const char*>
typedef char *type;
};
-template <int N> struct QConcatenable<const char16_t[N]> : private QAbstractConcatenable
+template <qsizetype N> struct QConcatenable<const char16_t[N]> : private QAbstractConcatenable
{
using type = const char16_t[N];
using ConvertTo = QString;
@@ -340,7 +340,7 @@ template <int N> struct QConcatenable<const char16_t[N]> : private QAbstractConc
}
};
-template <int N> struct QConcatenable<char16_t[N]> : QConcatenable<const char16_t[N]>
+template <qsizetype N> struct QConcatenable<char16_t[N]> : QConcatenable<const char16_t[N]>
{
using type = char16_t[N];
};
@@ -427,7 +427,7 @@ template <typename A, typename B>
QByteArray &appendToByteArray(QByteArray &a, const QStringBuilder<A, B> &b, char)
{
// append 8-bit data to a byte array
- int len = a.size() + QConcatenable< QStringBuilder<A, B> >::size(b);
+ qsizetype len = a.size() + QConcatenable< QStringBuilder<A, B> >::size(b);
a.reserve(len);
char *it = a.data() + a.size();
QConcatenable< QStringBuilder<A, B> >::appendTo(b, it);
@@ -454,11 +454,11 @@ QByteArray &operator+=(QByteArray &a, const QStringBuilder<A, B> &b)
template <typename A, typename B>
QString &operator+=(QString &a, const QStringBuilder<A, B> &b)
{
- int len = a.size() + QConcatenable< QStringBuilder<A, B> >::size(b);
+ qsizetype len = a.size() + QConcatenable< QStringBuilder<A, B> >::size(b);
a.reserve(len);
QChar *it = a.data() + a.size();
QConcatenable< QStringBuilder<A, B> >::appendTo(b, it);
- a.resize(int(it - a.constData())); //may be smaller than len if there was conversion from utf8
+ a.resize(it - a.constData()); //may be smaller than len if there was conversion from utf8
return a;
}