diff options
author | David Faure <david.faure@kdab.com> | 2016-07-26 10:07:57 +0200 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2016-07-28 13:50:38 +0000 |
commit | f5af4428c3ede16c742df7890bc5f5ebf8ed2535 (patch) | |
tree | b038ef1af7a0ab6b51899e65edd1c7597cc6cbf1 /src | |
parent | ebb651aa7395bd28474580a10f7d389c72f39e14 (diff) |
QVector: fix crash on reserve(0)
It crashed when d was equal to Data::unsharableEmpty().
Task-number: QTBUG-51758
Change-Id: If9f2a7d11892507135f4dc0aeef909f59b7478fc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/tools/qvector.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/corelib/tools/qvector.h b/src/corelib/tools/qvector.h index 3154220634..eefab5905c 100644 --- a/src/corelib/tools/qvector.h +++ b/src/corelib/tools/qvector.h @@ -391,7 +391,11 @@ void QVector<T>::reserve(int asize) { if (asize > int(d->alloc)) reallocData(d->size, asize); - if (isDetached()) + if (isDetached() +#if !defined(QT_NO_UNSHARABLE_CONTAINERS) + && d != Data::unsharableEmpty() +#endif + ) d->capacityReserved = 1; Q_ASSERT(capacity() >= asize); } |