aboutsummaryrefslogtreecommitdiff
path: root/backends/cloud
diff options
context:
space:
mode:
authorAlexander Tkachev2016-05-28 01:18:37 +0600
committerAlexander Tkachev2016-08-24 16:07:55 +0600
commitb74d7a6861dbb5d0fafec0e6587deb7637b0ab12 (patch)
treeb2074efcce8e2ec2e7fdb2ed1a4998c7ec40112a /backends/cloud
parent827c7e43da118f12ae614530340a566a23c42746 (diff)
downloadscummvm-rg350-b74d7a6861dbb5d0fafec0e6587deb7637b0ab12.tar.gz
scummvm-rg350-b74d7a6861dbb5d0fafec0e6587deb7637b0ab12.tar.bz2
scummvm-rg350-b74d7a6861dbb5d0fafec0e6587deb7637b0ab12.zip
CLOUD: Fix Requests destructors
I forgot to delete callbacks!
Diffstat (limited to 'backends/cloud')
-rw-r--r--backends/cloud/downloadrequest.h5
-rw-r--r--backends/cloud/folderdownloadrequest.cpp7
-rw-r--r--backends/cloud/folderdownloadrequest.h2
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(); }