summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/xine-engine/events.c1
-rw-r--r--src/xine-engine/info_helper.c5
-rw-r--r--src/xine-engine/xine.c4
3 files changed, 6 insertions, 4 deletions
diff --git a/src/xine-engine/events.c b/src/xine-engine/events.c
index a51813adc..04a599c50 100644
--- a/src/xine-engine/events.c
+++ b/src/xine-engine/events.c
@@ -193,6 +193,7 @@ void xine_event_dispose_queue (xine_event_queue_t *queue) {
while ( (event = xine_event_get (queue)) ) {
xine_event_free (event);
}
+ xine_list_delete(queue->events);
pthread_mutex_destroy(&queue->lock);
pthread_cond_destroy(&queue->new_event);
diff --git a/src/xine-engine/info_helper.c b/src/xine-engine/info_helper.c
index e45336d98..9d0302cc1 100644
--- a/src/xine-engine/info_helper.c
+++ b/src/xine-engine/info_helper.c
@@ -241,9 +241,6 @@ static void meta_info_set_unlocked_encoding(xine_stream_t *stream, int info, con
xprintf(stream->xine, XINE_VERBOSITY_LOG,
_("info_helper: unsupported conversion %s -> UTF-8, no conversion performed\n"), enc);
- if (system_enc)
- free(system_enc);
-
if (cd != (iconv_t)-1) {
char *utf8_value;
ICONV_CONST char *inbuf;
@@ -273,6 +270,8 @@ static void meta_info_set_unlocked_encoding(xine_stream_t *stream, int info, con
return;
}
}
+
+ free(system_enc);
}
#endif
diff --git a/src/xine-engine/xine.c b/src/xine-engine/xine.c
index ea90e45a4..fad1785b4 100644
--- a/src/xine-engine/xine.c
+++ b/src/xine-engine/xine.c
@@ -654,6 +654,7 @@ xine_stream_t *xine_stream_new (xine_t *this,
pthread_mutexattr_init(&attr);
pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
pthread_mutex_init (&stream->frontend_lock, &attr);
+ pthread_mutexattr_destroy(&attr);
/*
* Clear meta/stream info
@@ -1488,6 +1489,8 @@ static void xine_dispose_internal (xine_stream_t *stream) {
stream->metronom->exit (stream->metronom);
+ xine_list_delete(stream->event_queues);
+
pthread_mutex_lock(&stream->xine->streams_lock);
ite = xine_list_find(stream->xine->streams, stream);
if (ite) {
@@ -1532,7 +1535,6 @@ void xine_dispose (xine_stream_t *stream) {
if (stream->osd_renderer)
stream->osd_renderer->close( stream->osd_renderer );
-
_x_refcounter_dec(stream->refcounter);
}