summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@trolltech.com>2009-12-01 19:58:44 (GMT)
committerOlivier Goffart <ogoffart@trolltech.com>2009-12-01 19:58:44 (GMT)
commit480b395bd652a4ac6e3f262bd99a045dff95c4ac (patch)
treefc149cdab904c5ba8bb59b67a3192d2002c71133 /tests
parent537bff8c020c8fd2c150b2821d1cc035ee96f84f (diff)
downloadQt-480b395bd652a4ac6e3f262bd99a045dff95c4ac.zip
Qt-480b395bd652a4ac6e3f262bd99a045dff95c4ac.tar.gz
Qt-480b395bd652a4ac6e3f262bd99a045dff95c4ac.tar.bz2
Fix crash in QVector::reserve when reserving smaller size on a shared vector
We cannot call realloc with aalloc smaller than asize. Also include obvious optimisation: take the qMin computation out of the loop. Task-number: QTBUG-6416 Reviewed-by: Thiago
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/qvector/tst_qvector.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/auto/qvector/tst_qvector.cpp b/tests/auto/qvector/tst_qvector.cpp
index 21c9270..f538f6a 100644
--- a/tests/auto/qvector/tst_qvector.cpp
+++ b/tests/auto/qvector/tst_qvector.cpp
@@ -56,6 +56,7 @@ public:
private slots:
void outOfMemory();
+ void QTBUG6416_reserve();
};
int fooCtor;
@@ -220,5 +221,18 @@ void tst_QVector::outOfMemory()
}
}
+void tst_QVector::QTBUG6416_reserve()
+{
+ fooCtor = 0;
+ fooDtor = 0;
+ {
+ QVector<Foo> a;
+ a.resize(2);
+ QVector<Foo> b(a);
+ b.reserve(1);
+ }
+ QCOMPARE(fooCtor, fooDtor);
+}
+
QTEST_APPLESS_MAIN(tst_QVector)
#include "tst_qvector.moc"