From: Christian Kamm Date: Wed, 14 Nov 2018 09:44:34 +0000 (+0100) Subject: vfs: Fix dealing with missing vfs instance X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~21^2~468^2~394 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=85dd10eb9b94393cdfce8a73e82549ffbfbb86e9;p=nextcloud-desktop.git vfs: Fix dealing with missing vfs instance Maybe there should just be a VfsOff instance to make this less error prone. --- diff --git a/src/gui/folder.cpp b/src/gui/folder.cpp index bb1c1c880..270223810 100644 --- a/src/gui/folder.cpp +++ b/src/gui/folder.cpp @@ -140,7 +140,8 @@ Folder::Folder(const FolderDefinition &definition, Folder::~Folder() { // TODO cfapi: unregister on wipe()? There should probably be a wipeForRemoval() where this cleanup is appropriate - _vfs->stop(); + if (_vfs) + _vfs->stop(); // Reset then engine first as it will abort and try to access members of the Folder _engine.reset(); @@ -246,7 +247,7 @@ bool Folder::isBusy() const bool Folder::isSyncRunning() const { - return _engine->isSyncRunning() || _vfs->isHydrating(); + return _engine->isSyncRunning() || (_vfs && _vfs->isHydrating()); } QString Folder::remotePath() const @@ -605,6 +606,8 @@ void Folder::setUseVirtualFiles(bool enabled) _saveInFoldersWithPlaceholders = true; } if (!enabled && _definition.virtualFilesMode != Vfs::Off) { + ENFORCE(_vfs); + // TODO: Must wait for current sync to finish! SyncEngine::wipeVirtualFiles(path(), _journal, _vfs);