From c4bb227bdb99bf9157b53495bad2890a7f79529e Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 25 Jan 2009 18:47:23 +0100 Subject: database: eliminate "goto" usage http://xkcd.com/292/ --- src/database.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/database.c b/src/database.c index 412163145..1fed8ddcf 100644 --- a/src/database.c +++ b/src/database.c @@ -96,7 +96,7 @@ db_get_directory(const char *name) struct song * db_get_song(const char *file) { - struct song *song = NULL; + struct song *song; struct directory *directory; char *duplicated, *shortname, *dir; @@ -118,13 +118,14 @@ db_get_song(const char *file) dir = duplicated; } - if (!(directory = db_get_directory(dir))) - goto out; - if (!(song = songvec_find(&directory->songs, shortname))) - goto out; - assert(song->parent == directory); + directory = db_get_directory(dir); + if (directory != NULL) + song = songvec_find(&directory->songs, shortname); + else + song = NULL; + + assert(song == NULL || song->parent == directory); -out: g_free(duplicated); return song; } -- cgit v1.2.3