mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-28 04:34:54 -04:00
Disable own memory context for libxml2 on macOS 15.4 Sequoia
The custom allocation API for libxml2 is deprecated starting in macOS Sequoia 15.4, iOS 18.4, tvOS 18.4, visionOS 2.4, and tvOS 18.4. Disable the memory function override for libxml2 when LIBXML_HAS_DEPRECATED_MEMORY_ALLOCATION_FUNCTIONS is defined as Apple broke the system-wide libxml2 starting with macOS Sequoia 15.4.
This commit is contained in:
parent
7211ba147a
commit
bf1b8824ac
1 changed files with 12 additions and 5 deletions
|
|
@ -19,6 +19,7 @@
|
|||
#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 *
|
||||
|
|
@ -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 */
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue