[vlc-devel] commit: Allow libxml 2.7. Leak memory. ( Rémi Denis-Courmont )
git version control
git at videolan.org
Sun Mar 15 18:21:15 CET 2009
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Sun Mar 15 19:04:54 2009 +0200| [db8219ed6443a6d21df6bf28bca2be0426e6cdc5] | committer: Rémi Denis-Courmont
Allow libxml 2.7. Leak memory.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=db8219ed6443a6d21df6bf28bca2be0426e6cdc5
---
configure.ac | 4 ++--
modules/misc/xml/libxml.c | 14 ++++----------
2 files changed, 6 insertions(+), 12 deletions(-)
diff --git a/configure.ac b/configure.ac
index 1d8c127..eb0fbf6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4311,13 +4311,13 @@ dnl
AC_ARG_ENABLE(libxml2,
[ --enable-libxml2 libxml2 support (default enabled)])
AS_IF([test "${enable_libxml2}" != "no"], [
- PKG_CHECK_MODULES([XML2], [libxml-2.0 >= 2.5 libxml-2.0 < 2.7], [
+ PKG_CHECK_MODULES([XML2], [libxml-2.0 >= 2.5], [
VLC_ADD_CPPFLAGS([xml],[${XML2_CFLAGS}])
VLC_ADD_LIBS([xml],[${XML2_LIBS}])
VLC_ADD_PLUGIN([xml])
], [
AS_IF([test "x${enable_xml2}" != "x"], [
- AC_MSG_ERROR([Could not find libxml version 2.5 or 2.6])
+ AC_MSG_ERROR([Could not find libxml version 2.5 or higher])
])
])
])
diff --git a/modules/misc/xml/libxml.c b/modules/misc/xml/libxml.c
index 09c200e..266c5ee 100644
--- a/modules/misc/xml/libxml.c
+++ b/modules/misc/xml/libxml.c
@@ -35,10 +35,6 @@
#include <libxml/xmlreader.h>
#include <libxml/catalog.h>
-#if !defined (LIBXML_VERSION) || (LIBXML_VERSION > 20700)
-# error Stale config.cache detected. Erase it and re-run configure.
-#endif
-
/*****************************************************************************
* Module descriptor
*****************************************************************************/
@@ -71,7 +67,6 @@ static void CatalogLoad( xml_t *, const char * );
static void CatalogAdd( xml_t *, const char *, const char *, const char * );
static int StreamRead( void *p_context, char *p_buffer, int i_buffer );
-static unsigned refs = 0;
static vlc_mutex_t lock = VLC_STATIC_MUTEX;
/*****************************************************************************
@@ -85,8 +80,7 @@ static int Open( vlc_object_t *p_this )
return VLC_EGENERIC;
vlc_mutex_lock( &lock );
- if( refs++ == 0 )
- xmlInitParser();
+ xmlInitParser();
vlc_mutex_unlock( &lock );
p_xml->pf_reader_create = ReaderCreate;
@@ -103,11 +97,11 @@ static int Open( vlc_object_t *p_this )
*****************************************************************************/
static void Close( vlc_object_t *p_this )
{
+#ifdef LIBXML_GETS_A_CLUE_ABOUT_REENTRANCY_AND_MEMORY_LEAKS
vlc_mutex_lock( &lock );
- if( --refs == 0 )
- xmlCleanupParser();
+ xmlCleanupParser();
vlc_mutex_unlock( &lock );
-
+#endif
VLC_UNUSED(p_this);
return;
}
More information about the vlc-devel
mailing list