summaryrefslogtreecommitdiff
path: root/ext/xml/compat.c
diff options
context:
space:
mode:
authorMoriyoshi Koizumi <moriyoshi@php.net>2003-06-15 20:40:45 +0000
committerMoriyoshi Koizumi <moriyoshi@php.net>2003-06-15 20:40:45 +0000
commitf9b194f609464a2001d5881770c1d04bfb7a681c (patch)
treec37d2e13f3dcc262cdbff972b1bd866abef966da /ext/xml/compat.c
parent445c7107335c93f0a9c189bb608d0ae016404a88 (diff)
downloadphp-git-f9b194f609464a2001d5881770c1d04bfb7a681c.tar.gz
Removed xmlMemSetup() code as it doesn't help at all.
Diffstat (limited to 'ext/xml/compat.c')
-rw-r--r--ext/xml/compat.c30
1 files changed, 3 insertions, 27 deletions
diff --git a/ext/xml/compat.c b/ext/xml/compat.c
index 85515df6aa..aab4a4f8be 100644
--- a/ext/xml/compat.c
+++ b/ext/xml/compat.c
@@ -291,42 +291,18 @@ XML_ParserCreateNS(const XML_Char *encoding, const XML_Char sep)
return XML_ParserCreate_MM(encoding, NULL, tmp);
}
-static void *(*_expat_cpt_malloc_fcn)(size_t sz);
-
-static char *_expat_cpt_intn_strdup(const char *str)
-{
- size_t len;
- char *retval;
-
- len = strlen(str);
- if ((retval = _expat_cpt_malloc_fcn(len + 1)) == NULL) {
- return NULL;
- }
- memcpy(retval, str, len + 1);
-
- return retval;
-}
-
XML_Parser
XML_ParserCreate_MM(const XML_Char *encoding, const XML_Memory_Handling_Suite *memsuite, const XML_Char *sep)
{
XML_Parser parser;
- static XML_Memory_Handling_Suite mtemp_i = { malloc, realloc, free };
-
- if (memsuite == NULL) {
- memsuite = &mtemp_i;
- }
-
- _expat_cpt_malloc_fcn = memsuite->malloc_fcn; /* FIXME: not reentrant ! */
-
- xmlMemSetup(memsuite->free_fcn, memsuite->malloc_fcn, memsuite->realloc_fcn, _expat_cpt_intn_strdup); /* WHOCANFIXME: not reentrant ! */
- parser = (XML_Parser) memsuite->malloc_fcn(sizeof(struct _XML_Parser));
+ parser = (XML_Parser) emalloc(sizeof(struct _XML_Parser));
memset(parser, 0, sizeof(struct _XML_Parser));
parser->use_namespace = 0;
parser->mem_hdlrs = *memsuite;
parser->parser = xmlCreatePushParserCtxt((xmlSAXHandlerPtr) &php_xml_compat_handlers, (void *) parser, NULL, 0, NULL);
if (parser->parser == NULL) {
+ efree(parser);
return NULL;
}
if (encoding != NULL) {
@@ -572,7 +548,7 @@ XML_ParserFree(XML_Parser parser)
xmlHashFree(parser->_reverse_ns_map, _free_ns_name);
}
xmlFreeParserCtxt(parser->parser);
- parser->mem_hdlrs.free_fcn(parser);
+ efree(parser);
}
#endif /* LIBXML_EXPAT_COMPAT */