diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2011-05-10 20:07:16 +1000 |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2011-05-10 20:07:16 +1000 |
commit | c5d63be839e4560f4825d1740a4496abd945b4d6 (patch) | |
tree | 8f508c9bd0797889a0df70dc10dd88ea49034d03 /src/corelib | |
parent | 41e14a4175d56675127a2d29f6a67de18f7c6b90 (diff) | |
parent | 44b7877c879faabe83310df697d1ec2f013ee8b5 (diff) |
Merge branch 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-earth-staging
* 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-earth-staging:
Respect capacity in QVector::append().
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/tools/qvector.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h index 9418642752..6f068dc4b0 100644 --- a/src/corelib/tools/qvector.h +++ b/src/corelib/tools/qvector.h @@ -574,8 +574,9 @@ void QVector<T>::append(const T &t) { if (d->ref != 1 || d->size + 1 > d->alloc) { const T copy(t); - realloc(d->size, QVectorData::grow(sizeOfTypedData(), d->size + 1, sizeof(T), - QTypeInfo<T>::isStatic)); + realloc(d->size, (d->size + 1 > d->alloc) ? + QVectorData::grow(sizeOfTypedData(), d->size + 1, sizeof(T), QTypeInfo<T>::isStatic) + : d->alloc); if (QTypeInfo<T>::isComplex) new (p->array + d->size) T(copy); else |