summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2015-08-11 12:32:00 +0200
committerAnatol Belski <ab@php.net>2015-08-11 12:32:00 +0200
commitb0893344df1946c842d06a8d2c576abb4f7c78e7 (patch)
tree2993bd04db106d82f55a3348d899f1073995a388
parentf15ec180ade4d6ffc83ca1894ea6b37c2e41299f (diff)
downloadphp-git-b0893344df1946c842d06a8d2c576abb4f7c78e7.tar.gz
integrate static tsrmls cache with ext/mcrypt
-rw-r--r--ext/mcrypt/config.m42
-rw-r--r--ext/mcrypt/config.w322
-rw-r--r--ext/mcrypt/mcrypt.c6
-rw-r--r--ext/mcrypt/php_mcrypt.h6
4 files changed, 9 insertions, 7 deletions
diff --git a/ext/mcrypt/config.m4 b/ext/mcrypt/config.m4
index ab954e649e..eb5598313a 100644
--- a/ext/mcrypt/config.m4
+++ b/ext/mcrypt/config.m4
@@ -55,5 +55,5 @@ if test "$PHP_MCRYPT" != "no"; then
PHP_ADD_INCLUDE($MCRYPT_DIR/include)
PHP_SUBST(MCRYPT_SHARED_LIBADD)
- PHP_NEW_EXTENSION(mcrypt, mcrypt.c mcrypt_filter.c, $ext_shared)
+ PHP_NEW_EXTENSION(mcrypt, mcrypt.c mcrypt_filter.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
fi
diff --git a/ext/mcrypt/config.w32 b/ext/mcrypt/config.w32
index 8d30db7ce2..169781eeda 100644
--- a/ext/mcrypt/config.w32
+++ b/ext/mcrypt/config.w32
@@ -10,7 +10,7 @@ if (PHP_MCRYPT != "no") {
CHECK_LIB('Advapi32.lib', 'mcrypt')
) {
- EXTENSION('mcrypt', 'mcrypt.c mcrypt_filter.c', false);
+ EXTENSION('mcrypt', 'mcrypt.c mcrypt_filter.c', false, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1");
AC_DEFINE('HAVE_LIBMCRYPT', 1);
AC_DEFINE('HAVE_LIBMCRYPT24', 1);
} else {
diff --git a/ext/mcrypt/mcrypt.c b/ext/mcrypt/mcrypt.c
index ea26e48b59..bdb119fd41 100644
--- a/ext/mcrypt/mcrypt.c
+++ b/ext/mcrypt/mcrypt.c
@@ -272,6 +272,9 @@ zend_module_entry mcrypt_module_entry = {
};
#ifdef COMPILE_DL_MCRYPT
+#ifdef ZTS
+ZEND_TSRMLS_CACHE_DEFINE();
+#endif
ZEND_GET_MODULE(mcrypt)
#endif
@@ -350,6 +353,9 @@ static void php_mcrypt_module_dtor(zend_resource *rsrc) /* {{{ */
static PHP_GINIT_FUNCTION(mcrypt)
{/*{{{*/
+#if defined(COMPILE_DL_MCRYPT) && defined(ZTS)
+ ZEND_TSRMLS_CACHE_UPDATE();
+#endif
mcrypt_globals->fd[RANDOM] = -1;
mcrypt_globals->fd[URANDOM] = -1;
}/*}}}*/
diff --git a/ext/mcrypt/php_mcrypt.h b/ext/mcrypt/php_mcrypt.h
index 1fc9e41fe8..9135f86233 100644
--- a/ext/mcrypt/php_mcrypt.h
+++ b/ext/mcrypt/php_mcrypt.h
@@ -83,11 +83,7 @@ ZEND_BEGIN_MODULE_GLOBALS(mcrypt)
int fd[2]; // RANDOM = 0, URANDOM = 1
ZEND_END_MODULE_GLOBALS(mcrypt)
-#ifdef ZTS
-# define MCG(v) TSRMG(mcrypt_globals_id, zend_mcrypt_globals *, v)
-#else
-# define MCG(v) (mcrypt_globals.v)
-#endif
+#define MCG(v) ZEND_MODULE_GLOBALS_ACCESSOR(mcrypt, v)
#else
#define mcrypt_module_ptr NULL