Fix segfault/assert when logging out of account

This commit is contained in:
Tobias Fella
2020-12-28 00:07:37 +00:00
parent b1080df9dd
commit 0fe0f45944
2 changed files with 7 additions and 1 deletions

View File

@@ -196,7 +196,7 @@ void Controller::logout(Connection *conn, bool serverSideLogout)
conn->stopSync();
Q_EMIT conn->stateChanged();
Q_EMIT conn->loggedOut();
if (!m_connections.isEmpty()) {
if (conn == activeConnection() && !m_connections.isEmpty()) {
setActiveConnection(m_connections[0]);
} else {
setActiveConnection(nullptr);

View File

@@ -54,6 +54,9 @@ ThumbnailResponse::ThumbnailResponse(QString id, QSize size)
void ThumbnailResponse::startRequest()
{
if (!Controller::instance().activeConnection()) {
return;
}
// Runs in the main thread, not QML thread
Q_ASSERT(QThread::currentThread() == Controller::instance().activeConnection()->thread());
job = Controller::instance().activeConnection()->getThumbnail(mediaId, requestedSize);
@@ -94,6 +97,9 @@ void ThumbnailResponse::prepareResult()
void ThumbnailResponse::doCancel()
{
if (!Controller::instance().activeConnection()) {
return;
}
// Runs in the main thread, not QML thread
if (job) {
Q_ASSERT(QThread::currentThread() == job->thread());