cmake-gui: Fix crash when built with Qt 5.14 or later
In commit d7679f6427
(QCMakeCacheView: use non-deprecated List and Set
constructions, 2020-06-10, v3.18.0-rc2~13^2) the conversion of the
`this->properties()` value to QSet is incorrect for Qt 5.14+. The
problem is that `this->properties()` returns by value, so the range
`this->properties().begin(), this->properties().end()` provides
iterators to two different instances. Use an intermediate temporary
copy of the value to get a consistent iterator range.
Fixes: #20981
This commit is contained in:
parent
d421274e3e
commit
af6cf586f6
@ -226,8 +226,9 @@ void QCMakeCacheModel::setProperties(const QCMakePropertyList& props)
|
||||
#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
|
||||
QSet<QCMakeProperty> oldProps = this->properties().toSet();
|
||||
#else
|
||||
QSet<QCMakeProperty> oldProps = QSet<QCMakeProperty>(
|
||||
this->properties().begin(), this->properties().end());
|
||||
QCMakePropertyList const& oldPropsList = this->properties();
|
||||
QSet<QCMakeProperty> oldProps =
|
||||
QSet<QCMakeProperty>(oldPropsList.begin(), oldPropsList.end());
|
||||
#endif
|
||||
oldProps.intersect(newProps);
|
||||
newProps.subtract(oldProps);
|
||||
|
Loading…
Reference in New Issue
Block a user