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));
NewClosure(reply, SIGNAL(finished()), this,
SLOT(DeviceUpdatesFinished(mygpo::DeviceUpdatesPtr)), reply);
NewClosure(reply, SIGNAL(parseError()), this,
SLOT(DeviceUpdatesFailed(mygpo::DeviceUpdatesPtr)), reply);
NewClosure(reply, SIGNAL(requestError(QNetworkReply::NetworkError)), this,
SLOT(DeviceUpdatesFailed(mygpo::DeviceUpdatesPtr)), reply);
connect(reply.data(), SIGNAL(parseError()), SLOT(DeviceUpdatesParseError()));
connect(reply.data(), SIGNAL(requestError(QNetworkReply::NetworkError)),
SLOT(DeviceUpdatesRequestError(QNetworkReply::NetworkError)));
}
void GPodderSync::DeviceUpdatesFailed(mygpo::DeviceUpdatesPtr reply) {
qLog(Warning) << "Failed to get gpodder.net device updates";
void GPodderSync::DeviceUpdatesParseError() {
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) {
@ -344,15 +347,19 @@ void GPodderSync::FlushUpdateQueue() {
NewClosure(reply, SIGNAL(finished()), this,
SLOT(AddRemoveFinished(mygpo::AddRemoveResultPtr, QList<QUrl>)),
reply, all_urls.toList());
NewClosure(reply, SIGNAL(parseError()), this,
SLOT(AddRemoveFailed(mygpo::AddRemoveResultPtr)), reply);
NewClosure(reply, SIGNAL(requestError(QNetworkReply::NetworkError)), this,
SLOT(AddRemoveFailed(mygpo::AddRemoveResultPtr)), reply);
connect(reply.data(), SIGNAL(parseError()), SLOT(AddRemoveParseError()));
connect(reply.data(), SIGNAL(requestError(QNetworkReply::NetworkError)),
SLOT(AddRemoveRequestError(QNetworkReply::NetworkError)));
}
void GPodderSync::AddRemoveFailed(mygpo::AddRemoveResultPtr reply) {
void GPodderSync::AddRemoveParseError() {
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,

View File

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