summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/corelib/text/qbytearray.cpp22
-rw-r--r--src/corelib/text/qstring.cpp10
2 files changed, 7 insertions, 25 deletions
diff --git a/src/corelib/text/qbytearray.cpp b/src/corelib/text/qbytearray.cpp
index f8c2759507..b85a46b146 100644
--- a/src/corelib/text/qbytearray.cpp
+++ b/src/corelib/text/qbytearray.cpp
@@ -1714,23 +1714,11 @@ void QByteArray::resize(int size)
if (size < 0)
size = 0;
- if (!d->isShared() && !d->isMutable() && size < int(d.size)) {
- d.size = size;
- return;
- }
-
- if (size == 0 && !(d->flags() & Data::CapacityReserved)) {
- d = DataPointer(Data::allocate(0), 0);
- } else {
- if (d->needsDetach() || size > capacity()
- || (!(d->flags() & Data::CapacityReserved) && size < int(d.size)
- && size < (capacity() >> 1)))
- reallocData(uint(size) + 1u, d->detachFlags() | Data::GrowsForward);
- d.size = size;
- if (d->isMutable()) {
- d.data()[size] = '\0';
- }
- }
+ if (d->needsDetach() || size > capacity())
+ reallocData(uint(size) + 1u, d->detachFlags() | Data::GrowsForward);
+ d.size = size;
+ if (d->allocatedCapacity())
+ d.data()[size] = 0;
}
/*!
diff --git a/src/corelib/text/qstring.cpp b/src/corelib/text/qstring.cpp
index 57be0eabcf..12b04b8ba7 100644
--- a/src/corelib/text/qstring.cpp
+++ b/src/corelib/text/qstring.cpp
@@ -2242,17 +2242,11 @@ void QString::resize(int size)
if (size < 0)
size = 0;
- if (!d->isShared() && !d->isMutable() && size < int(d.size)) {
- d.size = size;
- return;
- }
-
if (d->needsDetach() || size > capacity())
reallocData(uint(size) + 1u, true);
d.size = size;
- if (d->isMutable()) {
- d.data()[size] = '\0';
- }
+ if (d->allocatedCapacity())
+ d.data()[size] = 0;
}
/*!