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();
if (d->needsDetach() || size > capacityAtEnd)
reallocData(size_t(size), d->detachFlags() | Data::GrowsForward);
reallocData(size, d->detachFlags() | Data::GrowsForward);
d.size = size;
if (d->allocatedCapacity())
d.data()[size] = 0;
@ -1668,7 +1668,7 @@ QByteArray &QByteArray::fill(char ch, qsizetype size)
return *this;
}
void QByteArray::reallocData(size_t alloc, Data::ArrayOptions options)
void QByteArray::reallocData(qsizetype alloc, Data::ArrayOptions options)
{
if (!alloc) {
d = DataPointer::fromRawData(&_empty, 0);
@ -1681,7 +1681,7 @@ void QByteArray::reallocData(size_t alloc, Data::ArrayOptions options)
const bool slowReallocatePath = d.freeSpaceAtBegin() > 0;
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)
::memcpy(dd.data(), d.data(), dd.size);
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
alloc = 1;
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));
dd->copyAppend(d.data(), d.data() + newSize);
dd.data()[dd.size] = 0;
@ -1866,7 +1866,7 @@ QByteArray& QByteArray::append(char ch)
{
const bool shouldGrow = d->shouldGrowBeforeInsert(d.end(), 1);
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.data()[d.size] = '\0';
return *this;

View File

@ -460,8 +460,8 @@ public:
}
private:
void reallocData(size_t alloc, Data::ArrayOptions options);
void reallocGrowData(size_t alloc, Data::ArrayOptions options);
void reallocData(qsizetype alloc, Data::ArrayOptions options);
void reallocGrowData(qsizetype alloc, Data::ArrayOptions options);
void expand(qsizetype i);
QByteArray nulTerminated() const;
@ -513,7 +513,7 @@ inline const char *QByteArray::data() const
inline const char *QByteArray::constData() const
{ return data(); }
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
{ return !d->isShared(); }
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)
{
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 {
d->setFlag(Data::CapacityReserved);
}
@ -535,7 +535,7 @@ inline void QByteArray::squeeze()
if ((d->flags() & Data::CapacityReserved) == 0)
return;
if (d->needsDetach() || size() < capacity()) {
reallocData(size_t(size()), d->detachFlags() & ~Data::CapacityReserved);
reallocData(size(), d->detachFlags() & ~Data::CapacityReserved);
} else {
d->clearFlag(Data::CapacityReserved);
}

View File

@ -2384,7 +2384,7 @@ void QString::resize(qsizetype size)
const auto capacityAtEnd = capacity() - d.freeSpaceAtBegin();
if (d->needsDetach() || size > capacityAtEnd)
reallocData(size_t(size), d->detachFlags() | Data::GrowsForward);
reallocData(size, d->detachFlags() | Data::GrowsForward);
d.size = size;
if (d->allocatedCapacity())
d.data()[size] = 0;
@ -2462,7 +2462,7 @@ void QString::resize(qsizetype size, QChar fillChar)
\sa reserve(), capacity()
*/
void QString::reallocData(size_t alloc, Data::ArrayOptions allocOptions)
void QString::reallocData(qsizetype alloc, Data::ArrayOptions allocOptions)
{
if (!alloc) {
d = DataPointer::fromRawData(&_empty, 0);
@ -2475,7 +2475,7 @@ void QString::reallocData(size_t alloc, Data::ArrayOptions allocOptions)
const bool slowReallocatePath = d.freeSpaceAtBegin() > 0;
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)
::memcpy(dd.data(), d.data(), dd.size * sizeof(QChar));
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
alloc = 1;
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));
dd->copyAppend(d.data(), d.data() + newSize);
dd.data()[dd.size] = 0;
@ -2777,7 +2777,7 @@ QString &QString::append(const QString &str)
} else {
const bool shouldGrow = d->shouldGrowBeforeInsert(d.end(), str.d.size);
if (d->needsDetach() || size() + str.size() > capacity() || shouldGrow)
reallocGrowData(uint(size() + str.size()),
reallocGrowData(size() + str.size(),
d->detachFlags() | Data::GrowsForward);
d->copyAppend(str.d.data(), str.d.data() + str.d.size);
d.data()[d.size] = '\0';
@ -2797,7 +2797,7 @@ QString &QString::append(const QChar *str, qsizetype len)
if (str && len > 0) {
const bool shouldGrow = d->shouldGrowBeforeInsert(d.end(), len);
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");
// the following should be safe as QChar uses char16_t as underlying data
const char16_t *char16String = reinterpret_cast<const char16_t *>(str);
@ -2819,7 +2819,7 @@ QString &QString::append(QLatin1String str)
qsizetype len = str.size();
const bool shouldGrow = d->shouldGrowBeforeInsert(d.end(), len);
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
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
return *this;
reallocData(size_t(d.size), d->detachFlags());
reallocData(d.size, d->detachFlags());
qsizetype numCaptures = re.captureCount();
@ -6101,7 +6101,7 @@ const ushort *QString::utf16() const
{
if (!d->isMutable()) {
// 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());
}

View File

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