aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2011-09-15 20:24:15 +0200
committerMax Kellermann <max@duempel.org>2011-09-15 20:24:15 +0200
commit48a84ca23ef40b87056214ea03b5f141a4ed54c4 (patch)
tree579e5133640c02acb3e62ef48e617065728458fb
parentc345c5ebae24086093252afc50ea15e4f0f21386 (diff)
downloadmpd-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--NEWS2
-rw-r--r--src/input/rewind_input_plugin.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index ea128337e..5f0d030cd 100644
--- a/NEWS
+++ b/NEWS
@@ -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);
}