diff options
author | Max Kellermann <max@duempel.org> | 2012-08-09 20:55:18 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2012-08-15 23:08:39 +0200 |
commit | eb54337c40cbedc79177b48d2feaea9d12e95c0f (patch) | |
tree | 605176f21d8784541ea1965e4be7b7a2dcf6f4a3 /src/decoder_control.h | |
parent | 916a02017333ac32b8058d3c397eeb4ec85b742b (diff) | |
download | mpd-eb54337c40cbedc79177b48d2feaea9d12e95c0f.tar.gz mpd-eb54337c40cbedc79177b48d2feaea9d12e95c0f.tar.xz mpd-eb54337c40cbedc79177b48d2feaea9d12e95c0f.zip |
decoder_control: duplicate the song object
Make sure the decoder "owns" the song object, so nobody else can free
it.
Diffstat (limited to '')
-rw-r--r-- | src/decoder_control.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/decoder_control.h b/src/decoder_control.h index 7305e5813..9ecbde73e 100644 --- a/src/decoder_control.h +++ b/src/decoder_control.h @@ -90,8 +90,11 @@ struct decoder_control { * The song currently being decoded. This attribute is set by * the player thread, when it sends the #DECODE_COMMAND_START * command. + * + * This is a duplicate, and must be freed when this attribute + * is cleared. */ - const struct song *song; + struct song *song; /** * The initial seek position (in milliseconds), e.g. to the @@ -303,7 +306,8 @@ decoder_lock_is_current_song(struct decoder_control *dc, * Start the decoder. * * @param the decoder - * @param song the song to be decoded + * @param song the song to be decoded; the given instance will be + * owned and freed by the decoder * @param start_ms see #decoder_control * @param end_ms see #decoder_control * @param pipe the pipe which receives the decoded chunks (owned by |