diff --git a/src/internet/groovesharkservice.cpp b/src/internet/groovesharkservice.cpp
index 2810cea1b..5139ab1d2 100644
--- a/src/internet/groovesharkservice.cpp
+++ b/src/internet/groovesharkservice.cpp
@@ -292,10 +292,10 @@ void GroovesharkService::InitCountry() {
return;
// Get country info
QNetworkReply *reply_country = CreateRequest("getCountry", QList());
- if (!WaitForReply(reply_country))
- return;
-
- country_ = ExtractResult(reply_country);
+ if (WaitForReply(reply_country)) {
+ country_ = ExtractResult(reply_country);
+ }
+ reply_country->deleteLater();
}
QUrl GroovesharkService::GetStreamingUrlFromSongId(const QString& song_id, const QString& artist_id,
@@ -306,8 +306,13 @@ QUrl GroovesharkService::GetStreamingUrlFromSongId(const QString& song_id, const
parameters << Param("songID", song_id)
<< Param("country", country_);
QNetworkReply* reply = CreateRequest("getSubscriberStreamKey", parameters);
- if (!WaitForReply(reply))
+
+ // Wait for the reply
+ bool reply_has_timeouted = !WaitForReply(reply);
+ reply->deleteLater();
+ if (reply_has_timeouted)
return QUrl();
+
QVariantMap result = ExtractResult(reply);
server_id->clear();
server_id->append(result["StreamServerID"].toString());
@@ -821,9 +826,12 @@ Song GroovesharkService::StartAutoplayTag(int tag_id, QVariantMap& autoplay_stat
QList parameters;
parameters << Param("tagID", tag_id);
QNetworkReply* reply = CreateRequest("startAutoplayTag", parameters);
- if (!WaitForReply(reply))
- return Song();
+
+ bool reply_has_timeouted = !WaitForReply(reply);
reply->deleteLater();
+ if (reply_has_timeouted)
+ return Song();
+
QVariantMap result = ExtractResult(reply);
autoplay_state = result["autoplayState"].toMap();
return ExtractSong(result["nextSong"].toMap());
@@ -842,9 +850,12 @@ Song GroovesharkService::StartAutoplay(QVariantMap& autoplay_state) {
parameters << Param("artistIDs", artists_ids_qvariant)
<< Param("songIDs", songs_ids_qvariant);
QNetworkReply* reply = CreateRequest("startAutoplay", parameters);
- if (!WaitForReply(reply))
- return Song();
+
+ bool reply_has_timeouted = !WaitForReply(reply);
reply->deleteLater();
+ if (reply_has_timeouted)
+ return Song();
+
QVariantMap result = ExtractResult(reply);
autoplay_state = result["autoplayState"].toMap();
return ExtractSong(result["nextSong"].toMap());
@@ -854,9 +865,12 @@ Song GroovesharkService::GetAutoplaySong(QVariantMap& autoplay_state) {
QList parameters;
parameters << Param("autoplayState", autoplay_state);
QNetworkReply* reply = CreateRequest("getAutoplaySong", parameters);
- if (!WaitForReply(reply))
- return Song();
+
+ bool reply_has_timeouted = !WaitForReply(reply);
reply->deleteLater();
+ if (reply_has_timeouted)
+ return Song();
+
QVariantMap result = ExtractResult(reply);
autoplay_state = result["autoplayState"].toMap();
return ExtractSong(result["nextSong"].toMap());