From f19a5291ec3eb5596fa17ecdf14496a784f79fe0 Mon Sep 17 00:00:00 2001 From: Karl Waclawek Date: Thu, 16 Jan 2003 22:03:42 +0000 Subject: [PATCH] Patch for bug/feature request #651754. Implemented with two API additions: 1) For element declaration handler support: XML_FreeContentModel 2) Exposing Expat's memory allocation functions: XML_MemMalloc XML_MemRealloc XML_MemFree --- expat/lib/expat.h | 16 +++++++++++++++- expat/lib/libexpat.def | 8 +++++++- expat/lib/libexpatw.def | 8 +++++++- expat/lib/xmlparse.c | 24 ++++++++++++++++++++++++ 4 files changed, 53 insertions(+), 3 deletions(-) diff --git a/expat/lib/expat.h b/expat/lib/expat.h index 1e49c2c9..0b70302d 100644 --- a/expat/lib/expat.h +++ b/expat/lib/expat.h @@ -208,7 +208,7 @@ XMLPARSEAPI(XML_Parser) XML_ParserCreateNS(const XML_Char *encoding, XML_Char namespaceSeparator); -/* Constructs a new parser using the memory management suit referred to +/* Constructs a new parser using the memory management suite referred to by memsuite. If memsuite is NULL, then use the standard library memory suite. If namespaceSeparator is non-NULL it creates a parser with namespace processing as described above. The character pointed at @@ -849,6 +849,20 @@ XML_GetInputContext(XML_Parser parser, #define XML_GetErrorColumnNumber XML_GetCurrentColumnNumber #define XML_GetErrorByteIndex XML_GetCurrentByteIndex +/* Frees the content model passed to the element declaration handler */ +XMLPARSEAPI(void) +XML_FreeContentModel(XML_Parser parser, XML_Content *model); + +/* Exposing the memory handling functions used in Expat */ +XMLPARSEAPI(void *) +XML_MemMalloc(XML_Parser parser, size_t size); + +XMLPARSEAPI(void *) +XML_MemRealloc(XML_Parser parser, void *ptr, size_t size); + +XMLPARSEAPI(void) +XML_MemFree(XML_Parser parser, void *ptr); + /* Frees memory used by the parser. */ XMLPARSEAPI(void) XML_ParserFree(XML_Parser parser); diff --git a/expat/lib/libexpat.def b/expat/lib/libexpat.def index db73471c..372076ad 100644 --- a/expat/lib/libexpat.def +++ b/expat/lib/libexpat.def @@ -56,8 +56,14 @@ EXPORTS XML_SetUserData @52 XML_SetXmlDeclHandler @53 XML_UseParserAsHandlerArg @54 -; added with version 1.95.4 +; added with version 1.95.3 XML_ParserReset @55 XML_SetSkippedEntityHandler @56 +; added with version 1.95.4 XML_GetFeatureList @57 XML_UseForeignDTD @58 +; added with version 1.95.6 + XML_FreeContentModel @59 + XML_MemMalloc @60 + XML_MemRealloc @61 + XML_MemFree @62 diff --git a/expat/lib/libexpatw.def b/expat/lib/libexpatw.def index a7520e58..1eedc6ad 100644 --- a/expat/lib/libexpatw.def +++ b/expat/lib/libexpatw.def @@ -56,8 +56,14 @@ EXPORTS XML_SetUserData @52 XML_SetXmlDeclHandler @53 XML_UseParserAsHandlerArg @54 -; added with version 1.95.4 +; added with version 1.95.3 XML_ParserReset @55 XML_SetSkippedEntityHandler @56 +; added with version 1.95.4 XML_GetFeatureList @57 XML_UseForeignDTD @58 +; added with version 1.95.6 + XML_FreeContentModel @59 + XML_MemMalloc @60 + XML_MemRealloc @61 + XML_MemFree @62 diff --git a/expat/lib/xmlparse.c b/expat/lib/xmlparse.c index 2c1080bf..43e50bf9 100644 --- a/expat/lib/xmlparse.c +++ b/expat/lib/xmlparse.c @@ -1583,6 +1583,30 @@ XML_GetCurrentColumnNumber(XML_Parser parser) return position.columnNumber; } +void +XML_FreeContentModel(XML_Parser parser, XML_Content *model) +{ + FREE(model); +} + +void * +XML_MemMalloc(XML_Parser parser, size_t size) +{ + return MALLOC(size); +} + +void * +XML_MemRealloc(XML_Parser parser, void *ptr, size_t size) +{ + return REALLOC(ptr, size); +} + +void +XML_MemFree(XML_Parser parser, void *ptr) +{ + FREE(ptr); +} + void XML_DefaultCurrent(XML_Parser parser) { -- 2.40.0