summaryrefslogtreecommitdiff
path: root/ext/soap
diff options
context:
space:
mode:
Diffstat (limited to 'ext/soap')
-rw-r--r--ext/soap/config.m42
-rw-r--r--ext/soap/config.w322
-rw-r--r--ext/soap/php_soap.h5
-rw-r--r--ext/soap/soap.c6
4 files changed, 12 insertions, 3 deletions
diff --git a/ext/soap/config.m4 b/ext/soap/config.m4
index 7fa8c6f0ec..5fcb8bd447 100644
--- a/ext/soap/config.m4
+++ b/ext/soap/config.m4
@@ -17,7 +17,7 @@ if test "$PHP_SOAP" != "no"; then
PHP_SETUP_LIBXML(SOAP_SHARED_LIBADD, [
AC_DEFINE(HAVE_SOAP,1,[ ])
- PHP_NEW_EXTENSION(soap, soap.c php_encoding.c php_http.c php_packet_soap.c php_schema.c php_sdl.c php_xml.c, $ext_shared)
+ PHP_NEW_EXTENSION(soap, soap.c php_encoding.c php_http.c php_packet_soap.c php_schema.c php_sdl.c php_xml.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
PHP_SUBST(SOAP_SHARED_LIBADD)
], [
AC_MSG_ERROR([xml2-config not found. Please check your libxml2 installation.])
diff --git a/ext/soap/config.w32 b/ext/soap/config.w32
index 7aa73b5838..bb26a90471 100644
--- a/ext/soap/config.w32
+++ b/ext/soap/config.w32
@@ -5,7 +5,7 @@ ARG_ENABLE("soap", "SOAP support", "no");
if (PHP_SOAP != "no") {
if (PHP_LIBXML == "yes" && ADD_EXTENSION_DEP('soap', 'libxml')) {
- EXTENSION('soap', 'soap.c php_encoding.c php_http.c php_packet_soap.c php_schema.c php_sdl.c php_xml.c');
+ EXTENSION('soap', 'soap.c php_encoding.c php_http.c php_packet_soap.c php_schema.c php_sdl.c php_xml.c', null, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
AC_DEFINE('HAVE_PHP_SOAP', 1, "SOAP support");
if (!PHP_SOAP_SHARED) {
diff --git a/ext/soap/php_soap.h b/ext/soap/php_soap.h
index f32555cd93..e636ef39e7 100644
--- a/ext/soap/php_soap.h
+++ b/ext/soap/php_soap.h
@@ -193,7 +193,10 @@ extern zend_module_entry soap_module_entry;
ZEND_EXTERN_MODULE_GLOBALS(soap)
#ifdef ZTS
-# define SOAP_GLOBAL(v) TSRMG(soap_globals_id, zend_soap_globals *, v)
+# define SOAP_GLOBAL(v) ZEND_TSRMG(soap_globals_id, zend_soap_globals *, v)
+# ifdef COMPILE_DL_SOAP
+ZEND_TSRMLS_CACHE_EXTERN;
+# endif
#else
# define SOAP_GLOBAL(v) (soap_globals.v)
#endif
diff --git a/ext/soap/soap.c b/ext/soap/soap.c
index 0e7d004564..cf409cedf2 100644
--- a/ext/soap/soap.c
+++ b/ext/soap/soap.c
@@ -466,6 +466,9 @@ zend_module_entry soap_module_entry = {
};
#ifdef COMPILE_DL_SOAP
+#ifdef ZTS
+ZEND_TSRMLS_CACHE_DEFINE;
+#endif
ZEND_GET_MODULE(soap)
#endif
@@ -602,6 +605,9 @@ PHP_MSHUTDOWN_FUNCTION(soap)
PHP_RINIT_FUNCTION(soap)
{
+#if defined(COMPILE_DL_SOAP) && defined(ZTS)
+ ZEND_TSRMLS_CACHE_UPDATE;
+#endif
SOAP_GLOBAL(typemap) = NULL;
SOAP_GLOBAL(use_soap_error_handler) = 0;
SOAP_GLOBAL(error_code) = NULL;