summaryrefslogtreecommitdiff
path: root/ext/xml/xml.c
diff options
context:
space:
mode:
authorRob Richards <rrichards@php.net>2003-06-14 15:08:48 +0000
committerRob Richards <rrichards@php.net>2003-06-14 15:08:48 +0000
commite6502514fb04d49d6333f847e7f114c0bf3b5787 (patch)
tree5fb0b0d68db2451d78974d89284cba96f14b2c11 /ext/xml/xml.c
parent93a5238465f77616b76132eea112dfab9d8a6bd7 (diff)
downloadphp-git-e6502514fb04d49d6333f847e7f114c0bf3b5787.tar.gz
fix common libxml init and deinit routines
Diffstat (limited to 'ext/xml/xml.c')
-rw-r--r--ext/xml/xml.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/ext/xml/xml.c b/ext/xml/xml.c
index 181a208fd7..af0d25dc2d 100644
--- a/ext/xml/xml.c
+++ b/ext/xml/xml.c
@@ -231,7 +231,10 @@ PHP_MINIT_FUNCTION(xml)
php_xml_mem_hdlrs.free_fcn = php_xml_free_wrapper;
#ifdef LIBXML_EXPAT_COMPAT
- xmlInitThreads();
+ if (!xml_parser_inited) {
+ xmlInitThreads();
+ xml_parser_inited = 1;
+ }
#endif
return SUCCESS;
}
@@ -245,18 +248,18 @@ PHP_RINIT_FUNCTION(xml)
PHP_MSHUTDOWN_FUNCTION(xml)
{
+#ifdef LIBXML_EXPAT_COMPAT
+ if (xml_parser_inited) {
+ xmlCleanupParser();
+ xml_parser_inited = 0;
+ }
+#endif
return SUCCESS;
}
PHP_RSHUTDOWN_FUNCTION(xml)
{
-#ifdef LIBXML_EXPAT_COMPAT
- if (xml_parser_inited) {
- xmlCleanupParser();
- xml_parser_inited = 0;
- }
-#endif
return SUCCESS;
}