From 52ee132d92d4a04d31bbbdeb7c6c0077bd2a2828 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 5 Sep 2013 19:11:50 +0200 Subject: TagHandler: use a TagBuilder internally Reduce heap allocator overhead. --- src/tag/TagId3.cxx | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'src/tag/TagId3.cxx') diff --git a/src/tag/TagId3.cxx b/src/tag/TagId3.cxx index 0bea92bb7..0fc1b01db 100644 --- a/src/tag/TagId3.cxx +++ b/src/tag/TagId3.cxx @@ -22,6 +22,7 @@ #include "TagHandler.hxx" #include "TagTable.hxx" #include "Tag.hxx" +#include "TagBuilder.hxx" #include "util/Error.hxx" #include "ConfigGlobal.hxx" @@ -387,16 +388,11 @@ scan_id3_tag(struct id3_tag *tag, Tag * tag_id3_import(struct id3_tag *tag) { - Tag *ret = new Tag(); - - scan_id3_tag(tag, &add_tag_handler, ret); - - if (ret->IsEmpty()) { - delete ret; - ret = nullptr; - } - - return ret; + TagBuilder tag_builder; + scan_id3_tag(tag, &add_tag_handler, &tag_builder); + return tag_builder.IsEmpty() + ? nullptr + : tag_builder.Commit(); } static int -- cgit v1.2.3