QString/QBA: change realloc*Data signatures to use qsizetype

Changed reallocData, reallocGrowData signatures to use qsizetype
instead of size_t

Change-Id: Iebe7def5430d3d3f4660e19cb6c12612543c5abc
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Sona Kurazyan <sona.kurazyan@qt.io>
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
This commit is contained in:
Andrei Golubev 2020-09-07 15:33:46 +02:00
parent ec7e680c50
commit 781ecbfc6f
4 changed files with 26 additions and 26 deletions

View File

@ -1644,7 +1644,7 @@ void QByteArray::resize(qsizetype size)
const auto capacityAtEnd = capacity() - d.freeSpaceAtBegin(); const auto capacityAtEnd = capacity() - d.freeSpaceAtBegin();
if (d->needsDetach() || size > capacityAtEnd) if (d->needsDetach() || size > capacityAtEnd)
reallocData(size_t(size), d->detachFlags() | Data::GrowsForward); reallocData(size, d->detachFlags() | Data::GrowsForward);
d.size = size; d.size = size;
if (d->allocatedCapacity()) if (d->allocatedCapacity())
d.data()[size] = 0; d.data()[size] = 0;
@ -1668,7 +1668,7 @@ QByteArray &QByteArray::fill(char ch, qsizetype size)
return *this; return *this;
} }
void QByteArray::reallocData(size_t alloc, Data::ArrayOptions options) void QByteArray::reallocData(qsizetype alloc, Data::ArrayOptions options)
{ {
if (!alloc) { if (!alloc) {
d = DataPointer::fromRawData(&_empty, 0); d = DataPointer::fromRawData(&_empty, 0);
@ -1681,7 +1681,7 @@ void QByteArray::reallocData(size_t alloc, Data::ArrayOptions options)
const bool slowReallocatePath = d.freeSpaceAtBegin() > 0; const bool slowReallocatePath = d.freeSpaceAtBegin() > 0;
if (d->needsDetach() || slowReallocatePath) { if (d->needsDetach() || slowReallocatePath) {
DataPointer dd(Data::allocate(alloc, options), qMin(qsizetype(alloc), d.size)); DataPointer dd(Data::allocate(alloc, options), qMin(alloc, d.size));
if (dd.size > 0) if (dd.size > 0)
::memcpy(dd.data(), d.data(), dd.size); ::memcpy(dd.data(), d.data(), dd.size);
dd.data()[dd.size] = 0; dd.data()[dd.size] = 0;
@ -1691,13 +1691,13 @@ void QByteArray::reallocData(size_t alloc, Data::ArrayOptions options)
} }
} }
void QByteArray::reallocGrowData(size_t alloc, Data::ArrayOptions options) void QByteArray::reallocGrowData(qsizetype alloc, Data::ArrayOptions options)
{ {
if (!alloc) // expected to always allocate if (!alloc) // expected to always allocate
alloc = 1; alloc = 1;
if (d->needsDetach()) { if (d->needsDetach()) {
const auto newSize = qMin(qsizetype(alloc), d.size); const auto newSize = qMin(alloc, d.size);
DataPointer dd(DataPointer::allocateGrow(d, alloc, newSize, options)); DataPointer dd(DataPointer::allocateGrow(d, alloc, newSize, options));
dd->copyAppend(d.data(), d.data() + newSize); dd->copyAppend(d.data(), d.data() + newSize);
dd.data()[dd.size] = 0; dd.data()[dd.size] = 0;
@ -1866,7 +1866,7 @@ QByteArray& QByteArray::append(char ch)
{ {
const bool shouldGrow = d->shouldGrowBeforeInsert(d.end(), 1); const bool shouldGrow = d->shouldGrowBeforeInsert(d.end(), 1);
if (d->needsDetach() || size() + 1 > capacity() || shouldGrow) if (d->needsDetach() || size() + 1 > capacity() || shouldGrow)
reallocGrowData(size_t(size()) + 1u, d->detachFlags() | Data::GrowsForward); reallocGrowData(size() + 1, d->detachFlags() | Data::GrowsForward);
d->copyAppend(1, ch); d->copyAppend(1, ch);
d.data()[d.size] = '\0'; d.data()[d.size] = '\0';
return *this; return *this;

View File

@ -460,8 +460,8 @@ public:
} }
private: private:
void reallocData(size_t alloc, Data::ArrayOptions options); void reallocData(qsizetype alloc, Data::ArrayOptions options);
void reallocGrowData(size_t alloc, Data::ArrayOptions options); void reallocGrowData(qsizetype alloc, Data::ArrayOptions options);
void expand(qsizetype i); void expand(qsizetype i);
QByteArray nulTerminated() const; QByteArray nulTerminated() const;
@ -513,7 +513,7 @@ inline const char *QByteArray::data() const
inline const char *QByteArray::constData() const inline const char *QByteArray::constData() const
{ return data(); } { return data(); }
inline void QByteArray::detach() inline void QByteArray::detach()
{ if (d->needsDetach()) reallocData(size_t(size()), d->detachFlags()); } { if (d->needsDetach()) reallocData(size(), d->detachFlags()); }
inline bool QByteArray::isDetached() const inline bool QByteArray::isDetached() const
{ return !d->isShared(); } { return !d->isShared(); }
inline QByteArray::QByteArray(const QByteArray &a) noexcept : d(a.d) inline QByteArray::QByteArray(const QByteArray &a) noexcept : d(a.d)
@ -524,7 +524,7 @@ inline qsizetype QByteArray::capacity() const { return qsizetype(d->constAllocat
inline void QByteArray::reserve(qsizetype asize) inline void QByteArray::reserve(qsizetype asize)
{ {
if (d->needsDetach() || asize > capacity() - d->freeSpaceAtBegin()) { if (d->needsDetach() || asize > capacity() - d->freeSpaceAtBegin()) {
reallocData(qMax(size_t(size()), size_t(asize)), d->detachFlags() | Data::CapacityReserved); reallocData(qMax(size(), asize), d->detachFlags() | Data::CapacityReserved);
} else { } else {
d->setFlag(Data::CapacityReserved); d->setFlag(Data::CapacityReserved);
} }
@ -535,7 +535,7 @@ inline void QByteArray::squeeze()
if ((d->flags() & Data::CapacityReserved) == 0) if ((d->flags() & Data::CapacityReserved) == 0)
return; return;
if (d->needsDetach() || size() < capacity()) { if (d->needsDetach() || size() < capacity()) {
reallocData(size_t(size()), d->detachFlags() & ~Data::CapacityReserved); reallocData(size(), d->detachFlags() & ~Data::CapacityReserved);
} else { } else {
d->clearFlag(Data::CapacityReserved); d->clearFlag(Data::CapacityReserved);
} }

View File

@ -2384,7 +2384,7 @@ void QString::resize(qsizetype size)
const auto capacityAtEnd = capacity() - d.freeSpaceAtBegin(); const auto capacityAtEnd = capacity() - d.freeSpaceAtBegin();
if (d->needsDetach() || size > capacityAtEnd) if (d->needsDetach() || size > capacityAtEnd)
reallocData(size_t(size), d->detachFlags() | Data::GrowsForward); reallocData(size, d->detachFlags() | Data::GrowsForward);
d.size = size; d.size = size;
if (d->allocatedCapacity()) if (d->allocatedCapacity())
d.data()[size] = 0; d.data()[size] = 0;
@ -2462,7 +2462,7 @@ void QString::resize(qsizetype size, QChar fillChar)
\sa reserve(), capacity() \sa reserve(), capacity()
*/ */
void QString::reallocData(size_t alloc, Data::ArrayOptions allocOptions) void QString::reallocData(qsizetype alloc, Data::ArrayOptions allocOptions)
{ {
if (!alloc) { if (!alloc) {
d = DataPointer::fromRawData(&_empty, 0); d = DataPointer::fromRawData(&_empty, 0);
@ -2475,7 +2475,7 @@ void QString::reallocData(size_t alloc, Data::ArrayOptions allocOptions)
const bool slowReallocatePath = d.freeSpaceAtBegin() > 0; const bool slowReallocatePath = d.freeSpaceAtBegin() > 0;
if (d->needsDetach() || slowReallocatePath) { if (d->needsDetach() || slowReallocatePath) {
DataPointer dd(Data::allocate(alloc, allocOptions), qMin(qsizetype(alloc), d.size)); DataPointer dd(Data::allocate(alloc, allocOptions), qMin(alloc, d.size));
if (dd.size > 0) if (dd.size > 0)
::memcpy(dd.data(), d.data(), dd.size * sizeof(QChar)); ::memcpy(dd.data(), d.data(), dd.size * sizeof(QChar));
dd.data()[dd.size] = 0; dd.data()[dd.size] = 0;
@ -2485,13 +2485,13 @@ void QString::reallocData(size_t alloc, Data::ArrayOptions allocOptions)
} }
} }
void QString::reallocGrowData(size_t alloc, Data::ArrayOptions options) void QString::reallocGrowData(qsizetype alloc, Data::ArrayOptions options)
{ {
if (!alloc) // expected to always allocate if (!alloc) // expected to always allocate
alloc = 1; alloc = 1;
if (d->needsDetach()) { if (d->needsDetach()) {
const auto newSize = qMin(qsizetype(alloc), d.size); const auto newSize = qMin(alloc, d.size);
DataPointer dd(DataPointer::allocateGrow(d, alloc, newSize, options)); DataPointer dd(DataPointer::allocateGrow(d, alloc, newSize, options));
dd->copyAppend(d.data(), d.data() + newSize); dd->copyAppend(d.data(), d.data() + newSize);
dd.data()[dd.size] = 0; dd.data()[dd.size] = 0;
@ -2777,7 +2777,7 @@ QString &QString::append(const QString &str)
} else { } else {
const bool shouldGrow = d->shouldGrowBeforeInsert(d.end(), str.d.size); const bool shouldGrow = d->shouldGrowBeforeInsert(d.end(), str.d.size);
if (d->needsDetach() || size() + str.size() > capacity() || shouldGrow) if (d->needsDetach() || size() + str.size() > capacity() || shouldGrow)
reallocGrowData(uint(size() + str.size()), reallocGrowData(size() + str.size(),
d->detachFlags() | Data::GrowsForward); d->detachFlags() | Data::GrowsForward);
d->copyAppend(str.d.data(), str.d.data() + str.d.size); d->copyAppend(str.d.data(), str.d.data() + str.d.size);
d.data()[d.size] = '\0'; d.data()[d.size] = '\0';
@ -2797,7 +2797,7 @@ QString &QString::append(const QChar *str, qsizetype len)
if (str && len > 0) { if (str && len > 0) {
const bool shouldGrow = d->shouldGrowBeforeInsert(d.end(), len); const bool shouldGrow = d->shouldGrowBeforeInsert(d.end(), len);
if (d->needsDetach() || size() + len > capacity() || shouldGrow) if (d->needsDetach() || size() + len > capacity() || shouldGrow)
reallocGrowData(uint(size() + len), d->detachFlags() | Data::GrowsForward); reallocGrowData(size() + len, d->detachFlags() | Data::GrowsForward);
static_assert(sizeof(QChar) == sizeof(char16_t), "Unexpected difference in sizes"); static_assert(sizeof(QChar) == sizeof(char16_t), "Unexpected difference in sizes");
// the following should be safe as QChar uses char16_t as underlying data // the following should be safe as QChar uses char16_t as underlying data
const char16_t *char16String = reinterpret_cast<const char16_t *>(str); const char16_t *char16String = reinterpret_cast<const char16_t *>(str);
@ -2819,7 +2819,7 @@ QString &QString::append(QLatin1String str)
qsizetype len = str.size(); qsizetype len = str.size();
const bool shouldGrow = d->shouldGrowBeforeInsert(d.end(), len); const bool shouldGrow = d->shouldGrowBeforeInsert(d.end(), len);
if (d->needsDetach() || size() + len > capacity() || shouldGrow) if (d->needsDetach() || size() + len > capacity() || shouldGrow)
reallocGrowData(size_t(size() + len), d->detachFlags() | Data::GrowsForward); reallocGrowData(size() + len, d->detachFlags() | Data::GrowsForward);
if (d.freeSpaceAtBegin() == 0) { // fast path if (d.freeSpaceAtBegin() == 0) { // fast path
char16_t *i = d.data() + d.size; char16_t *i = d.data() + d.size;
@ -4011,7 +4011,7 @@ QString &QString::replace(const QRegularExpression &re, const QString &after)
if (!iterator.hasNext()) // no matches at all if (!iterator.hasNext()) // no matches at all
return *this; return *this;
reallocData(size_t(d.size), d->detachFlags()); reallocData(d.size, d->detachFlags());
qsizetype numCaptures = re.captureCount(); qsizetype numCaptures = re.captureCount();
@ -6101,7 +6101,7 @@ const ushort *QString::utf16() const
{ {
if (!d->isMutable()) { if (!d->isMutable()) {
// ensure '\0'-termination for ::fromRawData strings // ensure '\0'-termination for ::fromRawData strings
const_cast<QString*>(this)->reallocData(size_t(d.size), d->detachFlags()); const_cast<QString*>(this)->reallocData(d.size, d->detachFlags());
} }
return reinterpret_cast<const ushort *>(d.data()); return reinterpret_cast<const ushort *>(d.data());
} }

View File

@ -951,8 +951,8 @@ private:
friend inline bool operator< (QChar, QLatin1String) noexcept; friend inline bool operator< (QChar, QLatin1String) noexcept;
friend inline bool operator> (QChar, QLatin1String) noexcept; friend inline bool operator> (QChar, QLatin1String) noexcept;
void reallocData(size_t alloc, Data::ArrayOptions options); void reallocData(qsizetype alloc, Data::ArrayOptions options);
void reallocGrowData(size_t alloc, Data::ArrayOptions options); void reallocGrowData(qsizetype alloc, Data::ArrayOptions options);
static int compare_helper(const QChar *data1, qsizetype length1, static int compare_helper(const QChar *data1, qsizetype length1,
const QChar *data2, qsizetype length2, const QChar *data2, qsizetype length2,
Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept; Qt::CaseSensitivity cs = Qt::CaseSensitive) noexcept;
@ -1167,7 +1167,7 @@ inline QString::~QString() {}
inline void QString::reserve(qsizetype asize) inline void QString::reserve(qsizetype asize)
{ {
if (d->needsDetach() || asize >= capacity() - d.freeSpaceAtBegin()) { if (d->needsDetach() || asize >= capacity() - d.freeSpaceAtBegin()) {
reallocData(size_t(qMax(asize, size())), d->detachFlags() | Data::CapacityReserved); reallocData(qMax(asize, size()), d->detachFlags() | Data::CapacityReserved);
} else { } else {
d->setFlag(Data::CapacityReserved); d->setFlag(Data::CapacityReserved);
} }
@ -1177,8 +1177,8 @@ inline void QString::squeeze()
{ {
if ((d->flags() & Data::CapacityReserved) == 0) if ((d->flags() & Data::CapacityReserved) == 0)
return; return;
if (d->needsDetach() || int(d.size) < capacity()) { if (d->needsDetach() || d.size < capacity()) {
reallocData(size_t(d.size), d->detachFlags() & ~Data::CapacityReserved); reallocData(d.size, d->detachFlags() & ~Data::CapacityReserved);
} else { } else {
d->clearFlag(Data::CapacityReserved); d->clearFlag(Data::CapacityReserved);
} }