plugin/fsm: fix crash
Don't capture entries cause entries may be destroyed before async callback
This commit is contained in:
parent
7b914f1faa
commit
d89dc8f318
1 changed files with 5 additions and 6 deletions
|
|
@ -276,9 +276,13 @@ void FileSystemModel::updateEntriesForDir(const QString& dir) {
|
|||
const auto showHidden = m_showHidden;
|
||||
const auto filter = m_filter;
|
||||
const auto nameFilters = m_nameFilters;
|
||||
const auto oldEntries = m_entries;
|
||||
const auto baseDir = m_dir;
|
||||
|
||||
QSet<QString> oldPaths;
|
||||
for (const auto& entry : m_entries) {
|
||||
oldPaths << entry->path();
|
||||
}
|
||||
|
||||
const auto future = QtConcurrent::run([=](QPromise<QPair<QSet<QString>, QSet<QString>>>& promise) {
|
||||
const auto flags = recursive ? QDirIterator::Subdirectories : QDirIterator::NoIteratorFlags;
|
||||
|
||||
|
|
@ -336,11 +340,6 @@ void FileSystemModel::updateEntriesForDir(const QString& dir) {
|
|||
newPaths.insert(path);
|
||||
}
|
||||
|
||||
QSet<QString> oldPaths;
|
||||
for (const auto& entry : oldEntries) {
|
||||
oldPaths.insert(entry->path());
|
||||
}
|
||||
|
||||
if (promise.isCanceled() || newPaths == oldPaths) {
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue