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.
This commit is contained in:
parent
ba372197fb
commit
738d6f1040
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue