decoder_control: use g_free() to manage mixramp allocations

Be consistent with the rest of MPD, and don't use the non-portable
header "malloc.h".
This commit is contained in:
Max Kellermann 2010-09-23 08:49:21 +02:00
parent 922e51e8a9
commit 635cfbae13
3 changed files with 10 additions and 20 deletions

View File

@ -87,7 +87,7 @@ flac_find_string_comment(const FLAC__StreamMetadata *block,
int offset; int offset;
size_t pos; size_t pos;
int len; int len;
unsigned char tmp, *p; const unsigned char *p;
*str = NULL; *str = NULL;
offset = FLAC__metadata_object_vorbiscomment_find_entry_from(block, 0, offset = FLAC__metadata_object_vorbiscomment_find_entry_from(block, 0,
@ -101,10 +101,7 @@ flac_find_string_comment(const FLAC__StreamMetadata *block,
return false; return false;
p = &block->data.vorbis_comment.comments[offset].entry[pos]; p = &block->data.vorbis_comment.comments[offset].entry[pos];
tmp = p[len]; *str = g_strndup((const char *)p, len);
p[len] = '\0';
*str = strdup((char *)p);
p[len] = tmp;
return true; return true;
} }

View File

@ -285,10 +285,10 @@ parse_id3_mixramp(char **mixramp_start, char **mixramp_end,
(&frame->fields[2])); (&frame->fields[2]));
if (g_ascii_strcasecmp(key, "mixramp_start") == 0) { if (g_ascii_strcasecmp(key, "mixramp_start") == 0) {
*mixramp_start = strdup(value); *mixramp_start = g_strdup(value);
found = true; found = true;
} else if (g_ascii_strcasecmp(key, "mixramp_end") == 0) { } else if (g_ascii_strcasecmp(key, "mixramp_end") == 0) {
*mixramp_end = strdup(value); *mixramp_end = g_strdup(value);
found = true; found = true;
} }

View File

@ -22,7 +22,6 @@
#include "player_control.h" #include "player_control.h"
#include <assert.h> #include <assert.h>
#include <malloc.h>
#undef G_LOG_DOMAIN #undef G_LOG_DOMAIN
#define G_LOG_DOMAIN "decoder_control" #define G_LOG_DOMAIN "decoder_control"
@ -50,12 +49,9 @@ dc_deinit(struct decoder_control *dc)
{ {
g_cond_free(dc->cond); g_cond_free(dc->cond);
g_mutex_free(dc->mutex); g_mutex_free(dc->mutex);
if (dc->mixramp_start) g_free(dc->mixramp_start);
free(dc->mixramp_start); g_free(dc->mixramp_end);
if (dc->mixramp_end) g_free(dc->mixramp_prev_end);
free(dc->mixramp_end);
if (dc->mixramp_prev_end)
free(dc->mixramp_prev_end);
dc->mixramp_start = NULL; dc->mixramp_start = NULL;
dc->mixramp_end = NULL; dc->mixramp_end = NULL;
dc->mixramp_prev_end = NULL; dc->mixramp_prev_end = NULL;
@ -172,8 +168,7 @@ dc_mixramp_start(struct decoder_control *dc, char *mixramp_start)
{ {
assert(dc != NULL); assert(dc != NULL);
if (dc->mixramp_start) g_free(dc->mixramp_start);
free(dc->mixramp_start);
dc->mixramp_start = mixramp_start; dc->mixramp_start = mixramp_start;
g_debug("mixramp_start = %s", mixramp_start ? mixramp_start : "NULL"); g_debug("mixramp_start = %s", mixramp_start ? mixramp_start : "NULL");
} }
@ -183,8 +178,7 @@ dc_mixramp_end(struct decoder_control *dc, char *mixramp_end)
{ {
assert(dc != NULL); assert(dc != NULL);
if (dc->mixramp_end) g_free(dc->mixramp_end);
free(dc->mixramp_end);
dc->mixramp_end = mixramp_end; dc->mixramp_end = mixramp_end;
g_debug("mixramp_end = %s", mixramp_end ? mixramp_end : "NULL"); g_debug("mixramp_end = %s", mixramp_end ? mixramp_end : "NULL");
} }
@ -194,8 +188,7 @@ dc_mixramp_prev_end(struct decoder_control *dc, char *mixramp_prev_end)
{ {
assert(dc != NULL); assert(dc != NULL);
if (dc->mixramp_prev_end) g_free(dc->mixramp_prev_end);
free(dc->mixramp_prev_end);
dc->mixramp_prev_end = mixramp_prev_end; dc->mixramp_prev_end = mixramp_prev_end;
g_debug("mixramp_prev_end = %s", mixramp_prev_end ? mixramp_prev_end : "NULL"); g_debug("mixramp_prev_end = %s", mixramp_prev_end ? mixramp_prev_end : "NULL");
} }