Fix users of static max_size()

Container::max_size() is a _non-static_ member function in the STL, so
we can't call it as C::max_size(). Instead, use the newly-added,
Qt-style camel-case maxSize(), which we will keep static constexpr.

Task-number: QTBUG-128450
Change-Id: I839df90a91cced85f000c7d2744ba547f629ed98
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
(cherry picked from commit 6c15f99853c4cecd9285e189a441392a397b0f82)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Thiago Macieira 2024-08-29 12:28:08 -07:00 committed by Qt Cherry-pick Bot
parent 1d725c0094
commit 6978951d5e
8 changed files with 22 additions and 22 deletions

View File

@ -88,9 +88,9 @@ static void checkWarnMessage(const QIODevice *device, const char *function, cons
#define CHECK_MAXBYTEARRAYSIZE(function) \
do { \
if (maxSize >= QByteArray::max_size()) { \
if (maxSize >= QByteArray::maxSize()) { \
checkWarnMessage(this, #function, "maxSize argument exceeds QByteArray size limit"); \
maxSize = QByteArray::max_size() - 1; \
maxSize = QByteArray::maxSize() - 1; \
} \
} while (0)
@ -1242,7 +1242,7 @@ QByteArray QIODevice::readAll()
: d->buffer.size());
qint64 readResult;
do {
if (readBytes + readChunkSize >= QByteArray::max_size()) {
if (readBytes + readChunkSize >= QByteArray::maxSize()) {
// If resize would fail, don't read more, return what we have.
break;
}
@ -1256,8 +1256,8 @@ QByteArray QIODevice::readAll()
} else {
// Read it all in one go.
readBytes -= d->pos;
if (readBytes >= QByteArray::max_size())
readBytes = QByteArray::max_size();
if (readBytes >= QByteArray::maxSize())
readBytes = QByteArray::maxSize();
result.resize(readBytes);
readBytes = d->read(result.data(), readBytes);
}
@ -1448,7 +1448,7 @@ QByteArray QIODevice::readLine(qint64 maxSize)
qint64 readBytes = 0;
if (maxSize == 0) {
// Size is unknown, read incrementally.
maxSize = QByteArray::max_size() - 1;
maxSize = QByteArray::maxSize() - 1;
// The first iteration needs to leave an extra byte for the terminating null
result.resize(1);

View File

@ -1748,7 +1748,7 @@ QCborStreamReaderPrivate::readStringChunk_byte(ReadStringChunk params, qsizetype
// the distinction between DataTooLarge and OOM is mostly for
// compatibility with Qt 5; in Qt 6, we could consider everything
// to be OOM.
handleError(newSize > QByteArray::max_size() ? CborErrorDataTooLarge: CborErrorOutOfMemory);
handleError(newSize > QByteArray::maxSize() ? CborErrorDataTooLarge: CborErrorOutOfMemory);
return -1;
}
@ -1787,7 +1787,7 @@ QCborStreamReaderPrivate::readStringChunk_unicode(ReadStringChunk params, qsizet
// conversion uses the same number of words or less.
qsizetype currentSize = params.string->size();
size_t newSize = size_t(utf8len) + size_t(currentSize); // can't overflow
if (utf8len > QString::max_size() || qsizetype(newSize) < 0) {
if (utf8len > QString::maxSize() || qsizetype(newSize) < 0) {
handleError(CborErrorDataTooLarge);
return -1;
}

View File

@ -1808,7 +1808,7 @@ void QCborContainerPrivate::decodeStringFromCbor(QCborStreamReader &reader)
// add space for aligned ByteData (this can't overflow)
offset += sizeof(QtCbor::ByteData) + alignof(QtCbor::ByteData);
offset &= ~(alignof(QtCbor::ByteData) - 1);
if (offset > size_t(QByteArray::max_size())) {
if (offset > size_t(QByteArray::maxSize())) {
// overflow
setErrorInReader(reader, { QCborError::DataTooLarge });
return;
@ -1821,9 +1821,9 @@ void QCborContainerPrivate::decodeStringFromCbor(QCborStreamReader &reader)
// so capa how much we allocate
newCapacity = offset + MaxMemoryIncrement - EstimatedOverhead;
}
if (newCapacity > size_t(QByteArray::max_size())) {
if (newCapacity > size_t(QByteArray::maxSize())) {
// this may cause an allocation failure
newCapacity = QByteArray::max_size();
newCapacity = QByteArray::maxSize();
}
if (newCapacity > size_t(data.capacity()))
data.reserve(newCapacity);
@ -1874,7 +1874,7 @@ void QCborContainerPrivate::decodeStringFromCbor(QCborStreamReader &reader)
// check that this UTF-8 text string can be loaded onto a QString
if (e.type == QCborValue::String) {
if (Q_UNLIKELY(b->len > QString::max_size())) {
if (Q_UNLIKELY(b->len > QString::maxSize())) {
setErrorInReader(reader, { QCborError::DataTooLarge });
status = QCborStreamReader::Error;
}

View File

@ -800,7 +800,7 @@ QByteArray qUncompress(const uchar* data, qsizetype nbytes)
return QByteArray();
}
constexpr auto MaxDecompressedSize = size_t(QByteArray::max_size());
constexpr auto MaxDecompressedSize = size_t(QByteArray::maxSize());
if constexpr (MaxDecompressedSize < std::numeric_limits<CompressSizeHint_t>::max()) {
if (expectedSize > MaxDecompressedSize)
return tooMuchData(ZLibOp::Decompression);

View File

@ -90,7 +90,7 @@ void QRingBuffer::free(qint64 bytes)
clear(); // try to minify/squeeze us
}
} else {
Q_ASSERT(bytes < QByteArray::max_size());
Q_ASSERT(bytes < QByteArray::maxSize());
chunk.advance(bytes);
bufferSize -= bytes;
}
@ -105,7 +105,7 @@ void QRingBuffer::free(qint64 bytes)
char *QRingBuffer::reserve(qint64 bytes)
{
Q_ASSERT(bytes > 0 && bytes < QByteArray::max_size());
Q_ASSERT(bytes > 0 && bytes < QByteArray::maxSize());
const qsizetype chunkSize = qMax(qint64(basicBlockSize), bytes);
qsizetype tail = 0;
@ -135,7 +135,7 @@ char *QRingBuffer::reserve(qint64 bytes)
*/
char *QRingBuffer::reserveFront(qint64 bytes)
{
Q_ASSERT(bytes > 0 && bytes < QByteArray::max_size());
Q_ASSERT(bytes > 0 && bytes < QByteArray::maxSize());
const qsizetype chunkSize = qMax(qint64(basicBlockSize), bytes);
if (bufferSize == 0) {
@ -181,7 +181,7 @@ void QRingBuffer::chop(qint64 bytes)
clear(); // try to minify/squeeze us
}
} else {
Q_ASSERT(bytes < QByteArray::max_size());
Q_ASSERT(bytes < QByteArray::maxSize());
chunk.grow(-bytes);
bufferSize -= bytes;
}

View File

@ -132,7 +132,7 @@ bool QSctpSocketPrivate::canReadNotification()
bytesToRead = 4096;
}
Q_ASSERT((datagramSize + qsizetype(bytesToRead)) < QByteArray::max_size());
Q_ASSERT((datagramSize + qsizetype(bytesToRead)) < QByteArray::maxSize());
incomingDatagram.resize(datagramSize + int(bytesToRead));
#if defined (QSCTPSOCKET_DEBUG)

View File

@ -898,7 +898,7 @@ void tst_QCborStreamReader::validation_data()
// Add QCborStreamReader-specific limitations due to use of QByteArray and
// QString, which are allocated by QArrayData::allocate().
const qsizetype MaxInvalid = std::numeric_limits<QByteArray::size_type>::max();
const qsizetype MinInvalid = QByteArray::max_size() + 1;
const qsizetype MinInvalid = QByteArray::maxSize() + 1;
addValidationColumns();
addValidationData(MinInvalid);
@ -975,7 +975,7 @@ void tst_QCborStreamReader::validation()
void tst_QCborStreamReader::hugeDeviceValidation_data()
{
addValidationHugeDevice(QByteArray::max_size() + 1, QString::max_size() + 1);
addValidationHugeDevice(QByteArray::maxSize() + 1, QString::maxSize() + 1);
}
void tst_QCborStreamReader::hugeDeviceValidation()

View File

@ -2488,7 +2488,7 @@ void tst_QCborValue::validation_data()
// Add QCborStreamReader-specific limitations due to use of QByteArray and
// QString, which are allocated by QArrayData::allocate().
const qsizetype MaxInvalid = std::numeric_limits<QByteArray::size_type>::max();
const qsizetype MinInvalid = QByteArray::max_size() + 1 - sizeof(QByteArray::size_type);
const qsizetype MinInvalid = QByteArray::maxSize() + 1 - sizeof(QByteArray::size_type);
addValidationColumns();
addValidationData(MinInvalid);
addValidationLargeData(MinInvalid, MaxInvalid);
@ -2663,7 +2663,7 @@ void tst_QCborValue::hugeDeviceValidation_data()
{
// because QCborValue will attempt to retain the original string in UTF-8,
// the size which it can't store is actually the byte array size
addValidationHugeDevice(QByteArray::max_size() + 1, QByteArray::max_size() + 1);
addValidationHugeDevice(QByteArray::maxSize() + 1, QByteArray::maxSize() + 1);
}
void tst_QCborValue::hugeDeviceValidation()