Commit 738d6f10 authored by Max Kellermann's avatar Max Kellermann

db/proxy: simplify error handling in GetSong()

Check mpd_response_finish() before using mpd_song. Don't skip this check even if the mpd_song is non-nullptr.
parent ba372197
...@@ -440,22 +440,20 @@ ProxyDatabase::GetSong(const char *uri, Error &error) const ...@@ -440,22 +440,20 @@ ProxyDatabase::GetSong(const char *uri, Error &error) const
} }
struct mpd_song *song = mpd_recv_song(connection); struct mpd_song *song = mpd_recv_song(connection);
Song *song2 = song != nullptr if (!mpd_response_finish(connection) &&
? Convert(song) !CheckError(connection, error)) {
: nullptr;
if (song != nullptr) if (song != nullptr)
mpd_song_free(song); mpd_song_free(song);
if (!mpd_response_finish(connection)) {
if (song2 != nullptr)
song2->Free();
CheckError(connection, error);
return nullptr; return nullptr;
} }
if (song2 == nullptr) if (song == nullptr) {
error.Format(db_domain, DB_NOT_FOUND, "No such song: %s", uri); error.Format(db_domain, DB_NOT_FOUND, "No such song: %s", uri);
return nullptr;
}
Song *song2 = Convert(song);
mpd_song_free(song);
return song2; return song2;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment