aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends/cloud/downloadrequest.h5
-rw-r--r--backends/cloud/folderdownloadrequest.cpp7
-rw-r--r--backends/cloud/folderdownloadrequest.h2
-rw-r--r--backends/networking/curl/curljsonrequest.cpp2
-rw-r--r--backends/networking/curl/curlrequest.cpp4
5 files changed, 14 insertions, 6 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(); }
diff --git a/backends/networking/curl/curljsonrequest.cpp b/backends/networking/curl/curljsonrequest.cpp
index 3c598d7f18..bc5de60f43 100644
--- a/backends/networking/curl/curljsonrequest.cpp
+++ b/backends/networking/curl/curljsonrequest.cpp
@@ -34,7 +34,7 @@ namespace Networking {
CurlJsonRequest::CurlJsonRequest(JsonCallback cb, Common::String url):
CurlRequest(0, url), _jsonCallback(cb), _contentsStream(DisposeAfterUse::YES) {}
-CurlJsonRequest::~CurlJsonRequest() {}
+CurlJsonRequest::~CurlJsonRequest() { delete _jsonCallback; }
char *CurlJsonRequest::getPreparedContents() {
//write one more byte in the end
diff --git a/backends/networking/curl/curlrequest.cpp b/backends/networking/curl/curlrequest.cpp
index a8eb425412..61af633f21 100644
--- a/backends/networking/curl/curlrequest.cpp
+++ b/backends/networking/curl/curlrequest.cpp
@@ -33,9 +33,7 @@ namespace Networking {
CurlRequest::CurlRequest(DataCallback cb, Common::String url):
Request(cb), _url(url), _stream(0), _headersList(0) {}
-CurlRequest::~CurlRequest() {
- if (_stream) delete _stream;
-}
+CurlRequest::~CurlRequest() { delete _stream; }
void CurlRequest::handle() {
if (!_stream) _stream = new NetworkReadStream(_url.c_str(), _headersList, _postFields);