From e4d0293a31f30c01142202ee433cd28115b73343 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 20 Jun 2015 16:06:01 +0200 Subject: DecoderAPI: "move" the Tag object Reduce runtime overhead. --- src/decoder/DecoderAPI.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/decoder/DecoderAPI.cxx') diff --git a/src/decoder/DecoderAPI.cxx b/src/decoder/DecoderAPI.cxx index 4794d60e7..366c4af6d 100644 --- a/src/decoder/DecoderAPI.cxx +++ b/src/decoder/DecoderAPI.cxx @@ -566,7 +566,7 @@ decoder_tag(Decoder &decoder, InputStream *is, /* save the tag */ delete decoder.decoder_tag; - decoder.decoder_tag = new Tag(tag); + decoder.decoder_tag = new Tag(std::move(tag)); /* check for a new stream tag */ -- cgit v1.2.3 From 6d6f2746485d8234110858e5e3621b0ce03c6c8a Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sun, 21 Jun 2015 15:09:50 +0200 Subject: DecoderAPI: discard unused song tag early If there's a stream tag, don't let the song tag override it in the next update_stream_tag() call. --- src/decoder/DecoderAPI.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/decoder/DecoderAPI.cxx') diff --git a/src/decoder/DecoderAPI.cxx b/src/decoder/DecoderAPI.cxx index 366c4af6d..941d3a70d 100644 --- a/src/decoder/DecoderAPI.cxx +++ b/src/decoder/DecoderAPI.cxx @@ -433,8 +433,11 @@ update_stream_tag(Decoder &decoder, InputStream *is) /* no stream tag present - submit the song tag instead */ - decoder.song_tag = nullptr; - } + } else + /* discard the song tag; we don't need it */ + delete decoder.song_tag; + + decoder.song_tag = nullptr; delete decoder.stream_tag; decoder.stream_tag = tag; -- cgit v1.2.3