diff options
Diffstat (limited to 'backends/cloud')
-rw-r--r-- | backends/cloud/downloadrequest.h | 5 | ||||
-rw-r--r-- | backends/cloud/folderdownloadrequest.cpp | 7 | ||||
-rw-r--r-- | backends/cloud/folderdownloadrequest.h | 2 |
3 files changed, 12 insertions, 2 deletions
diff --git a/backends/cloud/downloadrequest.h b/backends/cloud/downloadrequest.h index 4ea85760ae..c9c243be44 100644 --- a/backends/cloud/downloadrequest.h +++ b/backends/cloud/downloadrequest.h @@ -40,7 +40,10 @@ class DownloadRequest: public Networking::Request { void finishBool(bool success); public: DownloadRequest(Storage *storage, Storage::BoolCallback callback, Common::String remoteFile, Common::DumpFile *dumpFile); - virtual ~DownloadRequest() { delete _localFile; } + virtual ~DownloadRequest() { + delete _boolCallback; + delete _localFile; + } virtual void handle(); virtual void restart(); diff --git a/backends/cloud/folderdownloadrequest.cpp b/backends/cloud/folderdownloadrequest.cpp index f60c9f6d69..cbd3501772 100644 --- a/backends/cloud/folderdownloadrequest.cpp +++ b/backends/cloud/folderdownloadrequest.cpp @@ -32,6 +32,13 @@ FolderDownloadRequest::FolderDownloadRequest(Storage *storage, Storage::FileArra start(); } +FolderDownloadRequest::~FolderDownloadRequest() { + _ignoreCallback = true; + if (_workingRequest) _workingRequest->finish(); + delete _fileArrayCallback; +} + + void FolderDownloadRequest::start() { //cleanup _ignoreCallback = true; diff --git a/backends/cloud/folderdownloadrequest.h b/backends/cloud/folderdownloadrequest.h index 038dc642ef..949bcad6ee 100644 --- a/backends/cloud/folderdownloadrequest.h +++ b/backends/cloud/folderdownloadrequest.h @@ -47,7 +47,7 @@ class FolderDownloadRequest: public Networking::Request { void finishFiles(Common::Array<StorageFile> &files); public: FolderDownloadRequest(Storage *storage, Storage::FileArrayCallback callback, Common::String remoteDirectoryPath, Common::String localDirectoryPath, bool recursive); - virtual ~FolderDownloadRequest() {} + virtual ~FolderDownloadRequest(); virtual void handle() {} virtual void restart() { start(); } |