diff options
Diffstat (limited to 'src/songvec.c')
-rw-r--r-- | src/songvec.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/songvec.c b/src/songvec.c index 4160f14bc..49486bb54 100644 --- a/src/songvec.c +++ b/src/songvec.c @@ -29,6 +29,14 @@ static GMutex *nr_lock = NULL; +static const char * +tag_get_value_checked(const struct tag *tag, enum tag_type type) +{ + return tag != NULL + ? tag_get_value(tag, type) + : NULL; +} + /** * Compare two tag values which should contain an integer value * (e.g. disc or track number). Either one may be NULL. @@ -51,14 +59,8 @@ compare_number_string(const char *a, const char *b) static int compare_tag_item(const struct tag *a, const struct tag *b, enum tag_type type) { - if (a == NULL) - return b == NULL ? 0 : -1; - - if (b == NULL) - return 1; - - return compare_number_string(tag_get_value(a, type), - tag_get_value(b, type)); + return compare_number_string(tag_get_value_checked(a, type), + tag_get_value_checked(b, type)); } /* Only used for sorting/searchin a songvec, not general purpose compares */ |