Check the maximum size of a QByteArray more precisely
Also document that the QByteArrray::MaxSize takes a trailing '\0' into account. Change-Id: I89e9a0d1a80a49b33efbac16ff7aa2a98f0e5670 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>bb10
parent
bf06924f3f
commit
ada8f1985d
|
|
@ -989,7 +989,7 @@ QByteArray QIODevice::readAll()
|
|||
// Size is unknown, read incrementally.
|
||||
qint64 readResult;
|
||||
do {
|
||||
if (quint64(readBytes) + QIODEVICE_BUFFERSIZE > QByteArray::MaxSize) {
|
||||
if (quint64(readBytes) + QIODEVICE_BUFFERSIZE >= QByteArray::MaxSize) {
|
||||
// If resize would fail, don't read more, return what we have.
|
||||
break;
|
||||
}
|
||||
|
|
@ -1001,7 +1001,7 @@ QByteArray QIODevice::readAll()
|
|||
} else {
|
||||
// Read it all in one go.
|
||||
// If resize fails, don't read anything.
|
||||
if (quint64(readBytes + theSize - d->pos) > QByteArray::MaxSize)
|
||||
if (quint64(readBytes + theSize - d->pos) >= QByteArray::MaxSize)
|
||||
return QByteArray();
|
||||
result.resize(int(readBytes + theSize - d->pos));
|
||||
readBytes += read(result.data() + readBytes, result.size() - readBytes);
|
||||
|
|
|
|||
|
|
@ -124,7 +124,7 @@ int qFindByteArray(
|
|||
int qAllocMore(int alloc, int extra) Q_DECL_NOTHROW
|
||||
{
|
||||
Q_ASSERT(alloc >= 0 && extra >= 0);
|
||||
Q_ASSERT_X(uint(alloc) < QByteArray::MaxSize, "qAllocMore", "Requested size is too large!");
|
||||
Q_ASSERT_X(uint(alloc) <= QByteArray::MaxSize, "qAllocMore", "Requested size is too large!");
|
||||
|
||||
unsigned nalloc = qNextPowerOfTwo(alloc + extra);
|
||||
|
||||
|
|
@ -842,8 +842,9 @@ static inline char qToLower(char c)
|
|||
\internal
|
||||
\since 5.4
|
||||
|
||||
The maximum size of a QByteArray, in bytes. Also applies to a the maximum
|
||||
storage size of QString and QVector, though not the number of elements.
|
||||
The maximum size of a QByteArray (including a '\0' terminator), in bytes.
|
||||
Also applies to the maximum storage size of QString and QVector, though
|
||||
not the number of elements.
|
||||
*/
|
||||
|
||||
/*!
|
||||
|
|
|
|||
Loading…
Reference in New Issue