]> granicus.if.org Git - php/commitdiff
integrate static tsrmls cache with ext/mcrypt
authorAnatol Belski <ab@php.net>
Tue, 11 Aug 2015 10:32:00 +0000 (12:32 +0200)
committerAnatol Belski <ab@php.net>
Tue, 11 Aug 2015 10:32:00 +0000 (12:32 +0200)
ext/mcrypt/config.m4
ext/mcrypt/config.w32
ext/mcrypt/mcrypt.c
ext/mcrypt/php_mcrypt.h

index ab954e649ec0a7e268f0f814f031c0db9a5cc934..eb5598313a96889d66cc983c9b58f2547401377f 100644 (file)
@@ -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
index 8d30db7ce25fef092d47f86b14934eea610c6b59..169781eeda9b33dd46e7986d42299403ab43aa6b 100644 (file)
@@ -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 {
index ea26e48b59984c1a9b87cd9056cdbeccff6b1311..bdb119fd4129a74cbe3fbaf99d402f5b0d823f99 100644 (file)
@@ -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;
 }/*}}}*/
index 1fc9e41fe8de66e3f4c70e61a325ac484a2a305f..9135f86233f2bd795c49b506b333358e355bd51f 100644 (file)
@@ -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