[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