#include <libxml/parser.h>
#include <libxml/xmlversion.h>
+#ifndef LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS
static isc_mem_t *isc__xml_mctx = NULL;
static void *
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 */
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 */
}