diff options
Diffstat (limited to 'backends')
-rw-r--r-- | backends/cloud/downloadrequest.h | 5 | ||||
-rw-r--r-- | backends/cloud/folderdownloadrequest.cpp | 7 | ||||
-rw-r--r-- | backends/cloud/folderdownloadrequest.h | 2 | ||||
-rw-r--r-- | backends/networking/curl/curljsonrequest.cpp | 2 | ||||
-rw-r--r-- | backends/networking/curl/curlrequest.cpp | 4 |
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); |