From b3922cc731061c359b92463f8048f669e1798f91 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 15 May 2016 09:47:05 -0400 Subject: [PATCH] core/tags/artist: Add an artist_lookup() function For looking up artist tags without allocating a new one. Signed-off-by: Anna Schumaker --- core/tags/artist.c | 5 +++++ include/core/tags/artist.h | 7 ++++++- tests/core/tags/artist.c | 4 +++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/core/tags/artist.c b/core/tags/artist.c index 68f0d668..36397e47 100644 --- a/core/tags/artist.c +++ b/core/tags/artist.c @@ -73,6 +73,11 @@ struct artist *artist_find(const gchar *name) return ARTIST(db_find(&artist_db, name)); } +struct artist *artist_lookup(const gchar *name) +{ + return ARTIST(db_get(&artist_db, name)); +} + struct artist *artist_get(const unsigned int index) { return ARTIST(db_at(&artist_db, index)); diff --git a/include/core/tags/artist.h b/include/core/tags/artist.h index e0f76c88..898ea0c5 100644 --- a/include/core/tags/artist.h +++ b/include/core/tags/artist.h @@ -31,8 +31,13 @@ void artist_db_init(); /* Called to clean up the artist database. */ void artist_db_deinit(); -/* Called to find an artist tag by name. */ +/* + * Called to find an artist tag by name. The difference is that artist_find() + * will allocate a new artiststruct if the requested one doesn't exist yet, + * but library_lookup() will return NULL in this situation. + */ struct artist *artist_find(const gchar *); +struct artist *artist_lookup(const gchar *); /* Called to get an artist tag with a specific index. */ struct artist *artist_get(const unsigned int); diff --git a/tests/core/tags/artist.c b/tests/core/tags/artist.c index c35ad242..ae8bd700 100644 --- a/tests/core/tags/artist.c +++ b/tests/core/tags/artist.c @@ -80,10 +80,12 @@ static void test_artist_db() struct artist *artist; artist_db_init(); + artist = artist_lookup("Koji Kondo"); + test_equal((void *)artist, NULL); artist = artist_find("Koji Kondo"); - test_verify_koji(artist); + test_equal((void *)artist_lookup("Koji Kondo"), (void *)artist); test_equal((void *)artist_find("Koji Kondo"), (void *)artist); test_equal((void *)artist_get(0), (void *)artist); test_equal((void *)artist_get(1), (void *)NULL);