diff options
author | Max Kellermann <max@duempel.org> | 2011-09-15 20:24:15 +0200 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2011-09-15 20:24:15 +0200 |
commit | 48a84ca23ef40b87056214ea03b5f141a4ed54c4 (patch) | |
tree | 579e5133640c02acb3e62ef48e617065728458fb | |
parent | c345c5ebae24086093252afc50ea15e4f0f21386 (diff) | |
download | mpd-48a84ca23ef40b87056214ea03b5f141a4ed54c4.tar.gz mpd-48a84ca23ef40b87056214ea03b5f141a4ed54c4.tar.xz mpd-48a84ca23ef40b87056214ea03b5f141a4ed54c4.zip |
input/rewind: copy the MIME type only once
Reduce heap usage by reducing the number of malloc() / free() calls.
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | src/input/rewind_input_plugin.c | 4 |
2 files changed, 5 insertions, 1 deletions
@@ -1,5 +1,7 @@ ver 0.16.5 (2010/??/??) * pcm_format: fix 32-to-24 bit conversion (the "silence" bug) +* input: + - rewind: reduce heap usage ver 0.16.4 (2011/09/01) diff --git a/src/input/rewind_input_plugin.c b/src/input/rewind_input_plugin.c index 6325a978e..f0d533bc8 100644 --- a/src/input/rewind_input_plugin.c +++ b/src/input/rewind_input_plugin.c @@ -83,12 +83,14 @@ copy_attributes(struct input_rewind *r) assert(dest != src); assert(src->mime == NULL || dest->mime != src->mime); + bool dest_ready = dest->ready; + dest->ready = src->ready; dest->seekable = src->seekable; dest->size = src->size; dest->offset = src->offset; - if (src->mime != NULL) { + if (!dest_ready && src->ready) { g_free(dest->mime); dest->mime = g_strdup(src->mime); } |