From e6f87e34ee65c805bde5805f89ac362095e9df4c Mon Sep 17 00:00:00 2001 From: Matthias Ringwald Date: Thu, 6 Mar 2008 21:59:28 +0000 Subject: Fix compilation for installed libintl.h in include paths Compilation of xine-lib-1.2 hg failed for me as libintl.h does this: #define textdomain libintl_textdomain This causes trouble accessing fields in structures which are accidentally named "textdomain". The patch renames textdomain to text_domain in xine headers and xine- engine/xine.c and xine/load_plugins.c --- src/xine-engine/load_plugins.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/xine-engine/load_plugins.c') diff --git a/src/xine-engine/load_plugins.c b/src/xine-engine/load_plugins.c index 8e4a10a60..46535ef33 100644 --- a/src/xine-engine/load_plugins.c +++ b/src/xine-engine/load_plugins.c @@ -2403,7 +2403,7 @@ const char *const *xine_list_post_plugins_typed(xine_t *xine, uint32_t type) { else \ return NULL; \ } \ - return dgettext(ic->textdomain ? : XINE_TEXTDOMAIN, ic->description); \ + return dgettext(ic->text_domain ? : XINE_TEXTDOMAIN, ic->description); \ } \ } \ return NULL; \ -- cgit v1.2.3 From 8405a6c9ce882f09c11963fcc0fbc2dcbac57c4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reinhard=20Ni=C3=9Fl?= Date: Tue, 11 Mar 2008 22:21:15 +0100 Subject: Fix accessing plugin node after disposing plugin in plugin free functions. --- src/xine-engine/load_plugins.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'src/xine-engine/load_plugins.c') diff --git a/src/xine-engine/load_plugins.c b/src/xine-engine/load_plugins.c index 46535ef33..710e6dfbf 100644 --- a/src/xine-engine/load_plugins.c +++ b/src/xine-engine/load_plugins.c @@ -1339,11 +1339,13 @@ input_plugin_t *_x_find_input_plugin (xine_stream_t *stream, const char *mrl) { void _x_free_input_plugin (xine_stream_t *stream, input_plugin_t *input) { plugin_catalog_t *catalog = stream->xine->plugin_catalog; + plugin_node_t *node = input->node; input->dispose(input); - if (input->node) { + + if (node) { pthread_mutex_lock(&catalog->lock); - dec_node_ref(input->node); + dec_node_ref(node); pthread_mutex_unlock(&catalog->lock); } } @@ -1560,11 +1562,13 @@ demux_plugin_t *_x_find_demux_plugin_last_probe(xine_stream_t *stream, const cha void _x_free_demux_plugin (xine_stream_t *stream, demux_plugin_t *demux) { plugin_catalog_t *catalog = stream->xine->plugin_catalog; + plugin_node_t *node = demux->node; demux->dispose(demux); - if (demux->node) { + + if (node) { pthread_mutex_lock(&catalog->lock); - dec_node_ref(demux->node); + dec_node_ref(node); pthread_mutex_unlock(&catalog->lock); } } @@ -2054,12 +2058,13 @@ video_decoder_t *_x_get_video_decoder (xine_stream_t *stream, uint8_t stream_typ void _x_free_video_decoder (xine_stream_t *stream, video_decoder_t *vd) { plugin_catalog_t *catalog = stream->xine->plugin_catalog; + plugin_node_t *node = vd->node; vd->dispose (vd); - if (vd->node) { + if (node) { pthread_mutex_lock (&catalog->lock); - dec_node_ref(vd->node); + dec_node_ref(node); pthread_mutex_unlock (&catalog->lock); } } -- cgit v1.2.3