diff --git a/lib/isc/xml.c b/lib/isc/xml.c index cbff418904..495c294689 100644 --- a/lib/isc/xml.c +++ b/lib/isc/xml.c @@ -19,6 +19,7 @@ #include #include +#ifndef LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS static isc_mem_t *isc__xml_mctx = NULL; static void * @@ -44,17 +45,20 @@ isc__xml_free(void *ptr) { isc_mem_free(isc__xml_mctx, ptr); } +#endif /* !LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS) */ #endif /* HAVE_LIBXML2 */ void isc__xml_initialize(void) { #ifdef HAVE_LIBXML2 +#ifndef LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS isc_mem_create(&isc__xml_mctx); isc_mem_setname(isc__xml_mctx, "libxml2"); isc_mem_setdestroycheck(isc__xml_mctx, false); RUNTIME_CHECK(xmlMemSetup(isc__xml_free, isc__xml_malloc, isc__xml_realloc, isc__xml_strdup) == 0); +#endif /* !LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS */ xmlInitParser(); #endif /* HAVE_LIBXML2 */ @@ -64,15 +68,18 @@ void isc__xml_shutdown(void) { #ifdef HAVE_LIBXML2 xmlCleanupParser(); + +#ifndef LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS isc_mem_detach(&isc__xml_mctx); +#endif /* !LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS */ #endif /* HAVE_LIBXML2 */ } void -isc__xml_setdestroycheck(bool check) { -#if HAVE_LIBXML2 +isc__xml_setdestroycheck(bool check ISC_ATTR_UNUSED) { +#ifdef HAVE_LIBXML2 +#ifndef LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS isc_mem_setdestroycheck(isc__xml_mctx, check); -#else - UNUSED(check); -#endif +#endif /* LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS */ +#endif /* HAVE_LIBXML2 */ }