diff --git a/ext/tokenizer/config.m4 b/ext/tokenizer/config.m4 index 7a4955fe23d9..55f594bb7818 100644 --- a/ext/tokenizer/config.m4 +++ b/ext/tokenizer/config.m4 @@ -5,6 +5,7 @@ PHP_ARG_ENABLE([tokenizer], [yes]) if test "$PHP_TOKENIZER" != "no"; then - PHP_NEW_EXTENSION([tokenizer], [tokenizer.c tokenizer_data.c], [$ext_shared]) + PHP_NEW_EXTENSION([tokenizer], [tokenizer.c tokenizer_data.c], [$ext_shared],, + [-DZEND_ENABLE_STATIC_TSRMLS_CACHE=1]) PHP_ADD_MAKEFILE_FRAGMENT fi diff --git a/ext/tokenizer/config.w32 b/ext/tokenizer/config.w32 index 5d933c3c31b7..2132d1290372 100644 --- a/ext/tokenizer/config.w32 +++ b/ext/tokenizer/config.w32 @@ -3,5 +3,5 @@ ARG_ENABLE("tokenizer", "tokenizer support", "yes"); if (PHP_TOKENIZER == "yes") { - EXTENSION("tokenizer", "tokenizer.c tokenizer_data.c"); + EXTENSION("tokenizer", "tokenizer.c tokenizer_data.c", null, "/DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"); } diff --git a/ext/tokenizer/php_tokenizer.h b/ext/tokenizer/php_tokenizer.h index 3acdebc4ac66..293feaea0cfe 100644 --- a/ext/tokenizer/php_tokenizer.h +++ b/ext/tokenizer/php_tokenizer.h @@ -31,6 +31,7 @@ char *get_token_type_name(int token_type); PHP_MINIT_FUNCTION(tokenizer); +PHP_RINIT_FUNCTION(tokenizer); PHP_MINFO_FUNCTION(tokenizer); #endif /* PHP_TOKENIZER_H */ diff --git a/ext/tokenizer/tokenizer.c b/ext/tokenizer/tokenizer.c index fdbdd5ddfb61..dfdd336c9b73 100644 --- a/ext/tokenizer/tokenizer.c +++ b/ext/tokenizer/tokenizer.c @@ -44,7 +44,7 @@ zend_module_entry tokenizer_module_entry = { ext_functions, PHP_MINIT(tokenizer), NULL, - NULL, + PHP_RINIT(tokenizer), NULL, PHP_MINFO(tokenizer), PHP_TOKENIZER_VERSION, @@ -53,6 +53,9 @@ zend_module_entry tokenizer_module_entry = { /* }}} */ #ifdef COMPILE_DL_TOKENIZER +#ifdef ZTS +ZEND_TSRMLS_CACHE_DEFINE() +#endif ZEND_GET_MODULE(tokenizer) #endif @@ -252,6 +255,17 @@ PHP_MINIT_FUNCTION(tokenizer) } /* }}} */ +/* {{{ PHP_RINIT_FUNCTION */ +PHP_RINIT_FUNCTION(tokenizer) +{ +#if defined(ZTS) && defined(COMPILE_DL_TOKENIZER) + ZEND_TSRMLS_CACHE_UPDATE(); +#endif + + return SUCCESS; +} +/* }}} */ + /* {{{ PHP_MINFO_FUNCTION */ PHP_MINFO_FUNCTION(tokenizer) {