mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-27 06:45:49 +03:00
Don't store pointer to local job
There were crashes in the QPointer assignment. Possibly the thread pool is done with the job and deletes it before the assignment is done.
This commit is contained in:
parent
26b5e36351
commit
53a217d4e4
2 changed files with 4 additions and 8 deletions
|
@ -52,7 +52,7 @@ void ProcessDirectoryJob::start()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_queryLocal == NormalQuery) {
|
if (_queryLocal == NormalQuery) {
|
||||||
_localJob = startAsyncLocalQuery();
|
startAsyncLocalQuery();
|
||||||
} else {
|
} else {
|
||||||
_localQueryDone = true;
|
_localQueryDone = true;
|
||||||
}
|
}
|
||||||
|
@ -1430,7 +1430,7 @@ DiscoverySingleDirectoryJob *ProcessDirectoryJob::startAsyncServerQuery()
|
||||||
return serverJob;
|
return serverJob;
|
||||||
}
|
}
|
||||||
|
|
||||||
DiscoverySingleLocalDirectoryJob *ProcessDirectoryJob::startAsyncLocalQuery()
|
void ProcessDirectoryJob::startAsyncLocalQuery()
|
||||||
{
|
{
|
||||||
QString localPath = _discoveryData->_localDir + _currentFolder._local;
|
QString localPath = _discoveryData->_localDir + _currentFolder._local;
|
||||||
auto localJob = new DiscoverySingleLocalDirectoryJob(_discoveryData->_account, localPath, _discoveryData->_syncOptions._vfs.data(), this);
|
auto localJob = new DiscoverySingleLocalDirectoryJob(_discoveryData->_account, localPath, _discoveryData->_syncOptions._vfs.data(), this);
|
||||||
|
@ -1477,9 +1477,7 @@ DiscoverySingleLocalDirectoryJob *ProcessDirectoryJob::startAsyncLocalQuery()
|
||||||
});
|
});
|
||||||
|
|
||||||
QThreadPool *pool = QThreadPool::globalInstance();
|
QThreadPool *pool = QThreadPool::globalInstance();
|
||||||
pool->start(localJob);
|
pool->start(localJob); // QThreadPool takes ownership
|
||||||
|
|
||||||
return localJob;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -206,7 +206,7 @@ private:
|
||||||
*
|
*
|
||||||
* Fills _localNormalQueryEntries.
|
* Fills _localNormalQueryEntries.
|
||||||
*/
|
*/
|
||||||
DiscoverySingleLocalDirectoryJob *startAsyncLocalQuery();
|
void startAsyncLocalQuery();
|
||||||
|
|
||||||
|
|
||||||
/** Sets _pinState, the directory's pin state
|
/** Sets _pinState, the directory's pin state
|
||||||
|
@ -243,8 +243,6 @@ private:
|
||||||
RemotePermissions _rootPermissions;
|
RemotePermissions _rootPermissions;
|
||||||
QPointer<DiscoverySingleDirectoryJob> _serverJob;
|
QPointer<DiscoverySingleDirectoryJob> _serverJob;
|
||||||
|
|
||||||
QPointer<DiscoverySingleLocalDirectoryJob> _localJob;
|
|
||||||
|
|
||||||
|
|
||||||
/** Number of currently running async jobs.
|
/** Number of currently running async jobs.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in a new issue