diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/text/qbytearray.cpp | 8 | ||||
-rw-r--r-- | src/corelib/text/qbytearray.h | 3 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/corelib/text/qbytearray.cpp b/src/corelib/text/qbytearray.cpp index 459e00887d..1ff61ed11a 100644 --- a/src/corelib/text/qbytearray.cpp +++ b/src/corelib/text/qbytearray.cpp @@ -1784,6 +1784,12 @@ QByteArray QByteArray::nulTerminated() const Prepends \a ba to this byte array. */ +QByteArray &QByteArray::prepend(const QByteArray &ba) +{ + if (size() == 0 && ba.size() > d.constAllocatedCapacity() && ba.d.isMutable()) + return (*this = ba); + return prepend(QByteArrayView(ba)); +} /*! \fn QByteArray &QByteArray::prepend(const char *str) @@ -1842,7 +1848,7 @@ QByteArray QByteArray::nulTerminated() const QByteArray &QByteArray::append(const QByteArray &ba) { - if (size() == 0 && ba.d.isMutable()) + if (size() == 0 && ba.size() > d.constAllocatedCapacity() && ba.d.isMutable()) return (*this = ba); return append(QByteArrayView(ba)); } diff --git a/src/corelib/text/qbytearray.h b/src/corelib/text/qbytearray.h index 60f1bd01f5..c2d65e2c55 100644 --- a/src/corelib/text/qbytearray.h +++ b/src/corelib/text/qbytearray.h @@ -283,8 +283,7 @@ public: { return insert(0, QByteArrayView(s, qsizetype(qstrlen(s)))); } QByteArray &prepend(const char *s, qsizetype len) { return insert(0, QByteArrayView(s, len)); } - QByteArray &prepend(const QByteArray &a) - { return insert(0, a); } + QByteArray &prepend(const QByteArray &a); QByteArray &prepend(QByteArrayView a) { return insert(0, a); } |