diff options
Diffstat (limited to 'tests/auto/corelib/tools/qarraydata/simplevector.h')
-rw-r--r-- | tests/auto/corelib/tools/qarraydata/simplevector.h | 11 |
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; } |