DecoderAPI: pass rvalue reference to decoder_tag()
Avoid duplicating the tag.
This commit is contained in:
@@ -174,7 +174,7 @@ flac_decoder_loop(struct flac_data *data, FLAC__StreamDecoder *flac_dec,
|
||||
while (true) {
|
||||
if (data->tag != nullptr && !data->tag->IsEmpty()) {
|
||||
cmd = decoder_tag(data->decoder, data->input_stream,
|
||||
data->tag);
|
||||
std::move(*data->tag));
|
||||
delete data->tag;
|
||||
data->tag = new Tag();
|
||||
} else
|
||||
|
@@ -1084,7 +1084,8 @@ MadDecoder::Read()
|
||||
ret = DecodeNextFrameHeader(&tag);
|
||||
|
||||
if (tag != nullptr) {
|
||||
decoder_tag(decoder, input_stream, tag);
|
||||
decoder_tag(decoder, input_stream,
|
||||
std::move(*tag));
|
||||
delete tag;
|
||||
}
|
||||
} while (ret == DECODE_CONT);
|
||||
@@ -1142,7 +1143,7 @@ mp3_decode(struct decoder *decoder, struct input_stream *input_stream)
|
||||
data.total_time);
|
||||
|
||||
if (tag != nullptr) {
|
||||
decoder_tag(decoder, input_stream, tag);
|
||||
decoder_tag(decoder, input_stream, std::move(*tag));
|
||||
delete tag;
|
||||
}
|
||||
|
||||
|
@@ -228,7 +228,7 @@ MPDOpusDecoder::HandleTags(const ogg_packet &packet)
|
||||
if (ScanOpusTags(packet.packet, packet.bytes,
|
||||
&add_tag_handler, &tag) &&
|
||||
!tag.IsEmpty())
|
||||
cmd = decoder_tag(decoder, input_stream, &tag);
|
||||
cmd = decoder_tag(decoder, input_stream, std::move(tag));
|
||||
else
|
||||
cmd = decoder_get_command(decoder);
|
||||
|
||||
|
@@ -158,7 +158,7 @@ vorbis_send_comments(struct decoder *decoder, struct input_stream *is,
|
||||
if (!tag)
|
||||
return;
|
||||
|
||||
decoder_tag(decoder, is, tag);
|
||||
decoder_tag(decoder, is, std::move(*tag));
|
||||
delete tag;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user