diff options
author | Olivier Goffart <ogoffart@trolltech.com> | 2009-12-01 19:58:44 (GMT) |
---|---|---|
committer | Olivier Goffart <ogoffart@trolltech.com> | 2009-12-01 19:58:44 (GMT) |
commit | 480b395bd652a4ac6e3f262bd99a045dff95c4ac (patch) | |
tree | fc149cdab904c5ba8bb59b67a3192d2002c71133 /tests | |
parent | 537bff8c020c8fd2c150b2821d1cc035ee96f84f (diff) | |
download | Qt-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.cpp | 14 |
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" |