summaryrefslogtreecommitdiff
path: root/ext/xml
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2014-10-17 14:31:17 +0200
committerAnatol Belski <ab@php.net>2014-10-17 14:31:17 +0200
commit5749b4a9979cd3ff85996323bed9adc1bd182f76 (patch)
treeaa14675bcd4d43bd6c7d7ba2dff595cb970b54b0 /ext/xml
parentfea10f6a5e5ff4d22adea5fd04476a88d4f76db8 (diff)
downloadphp-git-5749b4a9979cd3ff85996323bed9adc1bd182f76.tar.gz
ext/libxml, ext/xml and ext/soap use static tsrmls pointer
Diffstat (limited to 'ext/xml')
-rw-r--r--ext/xml/config.m42
-rw-r--r--ext/xml/config.w322
-rw-r--r--ext/xml/php_xml.h5
-rw-r--r--ext/xml/xml.c6
4 files changed, 12 insertions, 3 deletions
diff --git a/ext/xml/config.m4 b/ext/xml/config.m4
index ebfc0471e0..1019d91a1a 100644
--- a/ext/xml/config.m4
+++ b/ext/xml/config.m4
@@ -52,7 +52,7 @@ if test "$PHP_XML" != "no"; then
AC_DEFINE(HAVE_LIBEXPAT, 1, [ ])
fi
- PHP_NEW_EXTENSION(xml, xml.c $xml_extra_sources, $ext_shared)
+ PHP_NEW_EXTENSION(xml, xml.c $xml_extra_sources, $ext_shared, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
PHP_SUBST(XML_SHARED_LIBADD)
PHP_INSTALL_HEADERS([ext/xml/])
AC_DEFINE(HAVE_XML, 1, [ ])
diff --git a/ext/xml/config.w32 b/ext/xml/config.w32
index 4ee0bd1602..20b5c8dfe5 100644
--- a/ext/xml/config.w32
+++ b/ext/xml/config.w32
@@ -6,7 +6,7 @@ ARG_WITH("xml", "XML support", "yes");
if (PHP_XML == "yes") {
if (PHP_LIBXML == "yes"
&& ADD_EXTENSION_DEP('xml', 'libxml')) {
- EXTENSION("xml", "xml.c compat.c");
+ EXTENSION("xml", "xml.c compat.c", null, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
AC_DEFINE("HAVE_XML", 1, "XML support");
if (!PHP_XML_SHARED) {
ADD_FLAG("CFLAGS_XML", "/D LIBXML_STATIC ");
diff --git a/ext/xml/php_xml.h b/ext/xml/php_xml.h
index cdb08f812e..d7f0d6d046 100644
--- a/ext/xml/php_xml.h
+++ b/ext/xml/php_xml.h
@@ -142,7 +142,10 @@ PHPAPI zend_string *xml_utf8_encode(const char *, size_t, const XML_Char *);
#define phpext_xml_ptr xml_module_ptr
#ifdef ZTS
-#define XML(v) TSRMG(xml_globals_id, zend_xml_globals *, v)
+#define XML(v) ZEND_TSRMG(xml_globals_id, zend_xml_globals *, v)
+#ifdef COMPILE_DL_XML
+ZEND_TSRMLS_CACHE_EXTERN;
+#endif
#else
#define XML(v) (xml_globals.v)
#endif
diff --git a/ext/xml/xml.c b/ext/xml/xml.c
index f1a3442b6d..6959424376 100644
--- a/ext/xml/xml.c
+++ b/ext/xml/xml.c
@@ -62,6 +62,9 @@ ZEND_DECLARE_MODULE_GLOBALS(xml)
/* {{{ dynamically loadable module stuff */
#ifdef COMPILE_DL_XML
+#ifdef ZTS
+ZEND_TSRMLS_CACHE_DEFINE;
+#endif
ZEND_GET_MODULE(xml)
#endif /* COMPILE_DL_XML */
/* }}} */
@@ -290,6 +293,9 @@ static int le_xml_parser;
/* {{{ startup, shutdown and info functions */
static PHP_GINIT_FUNCTION(xml)
{
+#if defined(COMPILE_DL_XML) && defined(ZTS)
+ ZEND_TSRMLS_CACHE_UPDATE;
+#endif
xml_globals->default_encoding = (XML_Char*)"UTF-8";
}