From d2cf74027c2c252181ab16c1348281c252665353 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 18 Jan 2014 19:08:39 +0100 Subject: Song: embed the Tag object statically into class Song Reduces overhead because we need to manage only one memory allocation. According to valgrind/massif, we save 7%. --- src/SongSort.cxx | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) (limited to 'src/SongSort.cxx') diff --git a/src/SongSort.cxx b/src/SongSort.cxx index 6eac97f10..dcea033b6 100644 --- a/src/SongSort.cxx +++ b/src/SongSort.cxx @@ -30,14 +30,6 @@ extern "C" { #include -static const char * -tag_get_value_checked(const Tag *tag, TagType type) -{ - return tag != nullptr - ? tag->GetValue(type) - : nullptr; -} - static int compare_utf8_string(const char *a, const char *b) { @@ -55,11 +47,11 @@ compare_utf8_string(const char *a, const char *b) * nullptr. */ static int -compare_string_tag_item(const Tag *a, const Tag *b, +compare_string_tag_item(const Tag &a, const Tag &b, TagType type) { - return compare_utf8_string(tag_get_value_checked(a, type), - tag_get_value_checked(b, type)); + return compare_utf8_string(a.GetValue(type), + b.GetValue(type)); } /** @@ -82,10 +74,10 @@ compare_number_string(const char *a, const char *b) } static int -compare_tag_item(const Tag *a, const Tag *b, TagType type) +compare_tag_item(const Tag &a, const Tag &b, TagType type) { - return compare_number_string(tag_get_value_checked(a, type), - tag_get_value_checked(b, type)); + return compare_number_string(a.GetValue(type), + b.GetValue(type)); } /* Only used for sorting/searchin a songvec, not general purpose compares */ -- cgit v1.2.3