From dc2c0374e09f2d79b50f24bd30c63508e947d966 Mon Sep 17 00:00:00 2001 From: Thibaut Mattern Date: Sun, 26 Oct 2003 23:51:36 +0000 Subject: Code review from Daniel. CVS patchset: 5612 CVS date: 2003/10/26 23:51:36 --- src/xine-engine/info_helper.c | 60 +++++++++++++++++++++++++++++++------------ src/xine-engine/info_helper.h | 4 +-- 2 files changed, 45 insertions(+), 19 deletions(-) diff --git a/src/xine-engine/info_helper.c b/src/xine-engine/info_helper.c index 39f5671c3..a9e0432f0 100644 --- a/src/xine-engine/info_helper.c +++ b/src/xine-engine/info_helper.c @@ -45,27 +45,53 @@ static void chomp (char *str) { } } -void xine_set_stream_info(xine_stream_t *stream, int info, int value) { - stream->stream_info [info] = value; +static int info_valid(int info) { + if ((info >= 0) && (info < XINE_STREAM_INFO_MAX)) { + return 1; + } else { + fprintf(stderr, "Error: invalid STREAM_INFO %d. Ignored.\n", info); + return 0; + } } -void xine_set_meta_info(xine_stream_t *stream, int info, char *str) { - if (stream->meta_info [info]) - free(stream->meta_info [info]); - stream->meta_info [info] = strdup(str); - chomp(stream->meta_info [info]); +static int meta_valid(int info) { + if ((info >= 0) && (info < XINE_STREAM_INFO_MAX)) { + return 1; + } else { + fprintf(stderr, "Error: invalid META_INFO %d. Ignored.\n", info); + return 0; + } } -void xine_set_meta_info2(xine_stream_t *stream, int info, char *buf, int len) { - char *tmp; - - if (stream->meta_info [info]) - free(stream->meta_info [info]); +void xine_set_stream_info(xine_stream_t *stream, int info, int value) { + if(info_valid(info)) + stream->stream_info [info] = value; +} - tmp = malloc(len + 1); - xine_fast_memcpy(tmp, buf, len); - tmp[len] = '\0'; +void xine_set_meta_info(xine_stream_t *stream, int info, const char *str) { + if(meta_valid(info)) { + if (stream->meta_info [info]) + free(stream->meta_info [info]); + stream->meta_info [info] = strdup(str); + chomp(stream->meta_info [info]); + } +} - stream->meta_info [info] = tmp; - chomp(stream->meta_info [info]); +void xine_set_metan_info(xine_stream_t *stream, int info, const char *buf, + int len) { + if(meta_valid(info)) { + char *tmp; + + if (stream->meta_info [info]) + free(stream->meta_info [info]); + + if(len) { + tmp = malloc(len + 1); + xine_fast_memcpy(tmp, buf, len); + tmp[len] = '\0'; + + stream->meta_info [info] = tmp; + chomp(stream->meta_info [info]); + } + } } diff --git a/src/xine-engine/info_helper.h b/src/xine-engine/info_helper.h index 11d74465c..20fcd8fda 100644 --- a/src/xine-engine/info_helper.h +++ b/src/xine-engine/info_helper.h @@ -48,7 +48,7 @@ void xine_set_stream_info(xine_stream_t *stream, int info, int value); * *str null-terminated string * */ -void xine_set_meta_info(xine_stream_t *stream, int info, char *str); +void xine_set_meta_info(xine_stream_t *stream, int info, const char *str); /* * set a stream meta info @@ -60,6 +60,6 @@ void xine_set_meta_info(xine_stream_t *stream, int info, char *str); * len length of the metainfo * */ -void xine_set_meta_info2(xine_stream_t *stream, int info, char *buf, int len); +void xine_set_metan_info(xine_stream_t *stream, int info, const char *buf, int len); #endif /* INFO_HELPER_H */ -- cgit v1.2.3