summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/tools/qarraydata/simplevector.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/tools/qarraydata/simplevector.h')
-rw-r--r--tests/auto/corelib/tools/qarraydata/simplevector.h11
1 files changed, 3 insertions, 8 deletions
diff --git a/tests/auto/corelib/tools/qarraydata/simplevector.h b/tests/auto/corelib/tools/qarraydata/simplevector.h
index 152bf02ce3..1dc9be765c 100644
--- a/tests/auto/corelib/tools/qarraydata/simplevector.h
+++ b/tests/auto/corelib/tools/qarraydata/simplevector.h
@@ -216,15 +216,10 @@ public:
auto requiredSize = qsizetype(last - first);
if (d->needsDetach() || d.freeSpaceAtEnd() < requiredSize) {
- SimpleVector detached(DataPointer::allocateGrow(d, requiredSize, QArrayData::GrowsAtEnd));
-
- if (d->size) {
- const T *const begin = constBegin();
- detached.d->copyAppend(begin, begin + d->size);
- }
- detached.d->copyAppend(first, last);
- detached.swap(*this);
+ DataPointer oldData;
+ d.reallocateAndGrow(QArrayData::GrowsAtEnd, requiredSize, &oldData);
+ d->copyAppend(first, last);
return;
}