Merge pull request #6485 from jbroadus/fix-gpodder-error-leak

Fix gpodder sync memory leaks in success cases.
This commit is contained in:
John Maguire 2019-12-29 21:01:20 +00:00 committed by GitHub
commit f9d4cd9f0d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 14 deletions

View File

@ -157,14 +157,17 @@ void GPodderSync::GetUpdatesNow() {
api_->deviceUpdates(username_, DeviceId(), timestamp)); api_->deviceUpdates(username_, DeviceId(), timestamp));
NewClosure(reply, SIGNAL(finished()), this, NewClosure(reply, SIGNAL(finished()), this,
SLOT(DeviceUpdatesFinished(mygpo::DeviceUpdatesPtr)), reply); SLOT(DeviceUpdatesFinished(mygpo::DeviceUpdatesPtr)), reply);
NewClosure(reply, SIGNAL(parseError()), this, connect(reply.data(), SIGNAL(parseError()), SLOT(DeviceUpdatesParseError()));
SLOT(DeviceUpdatesFailed(mygpo::DeviceUpdatesPtr)), reply); connect(reply.data(), SIGNAL(requestError(QNetworkReply::NetworkError)),
NewClosure(reply, SIGNAL(requestError(QNetworkReply::NetworkError)), this, SLOT(DeviceUpdatesRequestError(QNetworkReply::NetworkError)));
SLOT(DeviceUpdatesFailed(mygpo::DeviceUpdatesPtr)), reply);
} }
void GPodderSync::DeviceUpdatesFailed(mygpo::DeviceUpdatesPtr reply) { void GPodderSync::DeviceUpdatesParseError() {
qLog(Warning) << "Failed to get gpodder.net device updates"; qLog(Warning) << "Failed to get gpodder device updates: parse error";
}
void GPodderSync::DeviceUpdatesRequestError(QNetworkReply::NetworkError error) {
qLog(Warning) << "Failed to get gpodder device updates:" << error;
} }
void GPodderSync::DeviceUpdatesFinished(mygpo::DeviceUpdatesPtr reply) { void GPodderSync::DeviceUpdatesFinished(mygpo::DeviceUpdatesPtr reply) {
@ -344,15 +347,19 @@ void GPodderSync::FlushUpdateQueue() {
NewClosure(reply, SIGNAL(finished()), this, NewClosure(reply, SIGNAL(finished()), this,
SLOT(AddRemoveFinished(mygpo::AddRemoveResultPtr, QList<QUrl>)), SLOT(AddRemoveFinished(mygpo::AddRemoveResultPtr, QList<QUrl>)),
reply, all_urls.toList()); reply, all_urls.toList());
NewClosure(reply, SIGNAL(parseError()), this, connect(reply.data(), SIGNAL(parseError()), SLOT(AddRemoveParseError()));
SLOT(AddRemoveFailed(mygpo::AddRemoveResultPtr)), reply); connect(reply.data(), SIGNAL(requestError(QNetworkReply::NetworkError)),
NewClosure(reply, SIGNAL(requestError(QNetworkReply::NetworkError)), this, SLOT(AddRemoveRequestError(QNetworkReply::NetworkError)));
SLOT(AddRemoveFailed(mygpo::AddRemoveResultPtr)), reply);
} }
void GPodderSync::AddRemoveFailed(mygpo::AddRemoveResultPtr reply) { void GPodderSync::AddRemoveParseError() {
flushing_queue_ = false; flushing_queue_ = false;
qLog(Warning) << "Failed to update gpodder.net subscriptions"; qLog(Warning) << "Failed to update gpodder subscriptions: parse error";
}
void GPodderSync::AddRemoveRequestError(QNetworkReply::NetworkError err) {
flushing_queue_ = false;
qLog(Warning) << "Failed to update gpodder subscriptions:" << err;
} }
void GPodderSync::AddRemoveFinished(mygpo::AddRemoveResultPtr reply, void GPodderSync::AddRemoveFinished(mygpo::AddRemoveResultPtr reply,

View File

@ -77,7 +77,8 @@ class GPodderSync : public QObject {
const QString& password); const QString& password);
void DeviceUpdatesFinished(mygpo::DeviceUpdatesPtr reply); void DeviceUpdatesFinished(mygpo::DeviceUpdatesPtr reply);
void DeviceUpdatesFailed(mygpo::DeviceUpdatesPtr reply); void DeviceUpdatesParseError();
void DeviceUpdatesRequestError(QNetworkReply::NetworkError error);
void NewPodcastLoaded(PodcastUrlLoaderReply* reply, const QUrl& url, void NewPodcastLoaded(PodcastUrlLoaderReply* reply, const QUrl& url,
const QList<mygpo::EpisodePtr>& actions); const QList<mygpo::EpisodePtr>& actions);
@ -91,7 +92,8 @@ class GPodderSync : public QObject {
void AddRemoveFinished(mygpo::AddRemoveResultPtr reply, void AddRemoveFinished(mygpo::AddRemoveResultPtr reply,
const QList<QUrl>& affected_urls); const QList<QUrl>& affected_urls);
void AddRemoveFailed(mygpo::AddRemoveResultPtr reply); void AddRemoveParseError();
void AddRemoveRequestError(QNetworkReply::NetworkError error);
private: private:
void LoadQueue(); void LoadQueue();