summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/corelib/text/qbytearray.cpp8
-rw-r--r--src/corelib/text/qbytearray.h3
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); }