summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2011-05-10 20:07:16 +1000
committerQt Continuous Integration System <qt-info@nokia.com>2011-05-10 20:07:16 +1000
commitc5d63be839e4560f4825d1740a4496abd945b4d6 (patch)
tree8f508c9bd0797889a0df70dc10dd88ea49034d03 /src/corelib
parent41e14a4175d56675127a2d29f6a67de18f7c6b90 (diff)
parent44b7877c879faabe83310df697d1ec2f013ee8b5 (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.h5
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