diff options
Diffstat (limited to 'ext/ereg/ereg.c')
-rw-r--r-- | ext/ereg/ereg.c | 25 |
1 files changed, 12 insertions, 13 deletions
diff --git a/ext/ereg/ereg.c b/ext/ereg/ereg.c index 6d67f17e40..b30d0d527b 100644 --- a/ext/ereg/ereg.c +++ b/ext/ereg/ereg.c @@ -26,11 +26,7 @@ #include "reg.h" #include "ext/standard/info.h" -#ifdef ZTS -int reg_globals_id; -#else -static php_reg_globals reg_globals; -#endif +ZEND_DECLARE_MODULE_GLOBALS(reg) typedef struct { regex_t preg; @@ -75,25 +71,28 @@ static void _free_reg_cache(reg_cache *rc) #undef regcomp #define regcomp(a, b, c) _php_regcomp(a, b, c) -static void php_reg_init_globals(php_reg_globals *reg_globals TSRMLS_DC) +static void php_reg_init_globals(zend_reg_globals *reg_globals TSRMLS_DC) { zend_hash_init(®_globals->ht_rc, 0, NULL, (void (*)(void *)) _free_reg_cache, 1); } -PHP_MINIT_FUNCTION(regex) +static void php_reg_destroy_globals(zend_reg_globals *reg_globals TSRMLS_DC) { -#ifdef ZTS - ts_allocate_id(®_globals_id, sizeof(php_reg_globals), (ts_allocate_ctor) php_reg_init_globals, NULL); -#else - php_reg_init_globals(®_globals TSRMLS_CC); -#endif + zend_hash_destroy(®_globals->ht_rc); +} +PHP_MINIT_FUNCTION(regex) +{ + ZEND_INIT_MODULE_GLOBALS(reg, php_reg_init_globals, php_reg_destroy_globals); return SUCCESS; } PHP_MSHUTDOWN_FUNCTION(regex) { - zend_hash_destroy(®(ht_rc)); +#ifndef ZTS + php_reg_destroy_globals(®_globals TSRMLS_CC); +#endif + return SUCCESS; } |