From: Dmitry Stogov Date: Wed, 8 Nov 2006 11:04:42 +0000 (+0000) Subject: Fixed bug #39344 (Unnecessary calls to OnModify callback routine for an extension... X-Git-Tag: RELEASE_1_0_0RC1~1103 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=15aca2c17d8bb421cf0d39a393eac3b4e2f37870;p=php Fixed bug #39344 (Unnecessary calls to OnModify callback routine for an extension INI directive). (wharmby at uk dot ibm dot com, Dmitry) --- diff --git a/Zend/zend.c b/Zend/zend.c index f5c66a18da..fe0446de3a 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -900,8 +900,9 @@ static void executor_globals_dtor(zend_executor_globals *executor_globals TSRMLS static void zend_new_thread_end_handler(THREAD_T thread_id TSRMLS_DC) { - zend_copy_ini_directives(TSRMLS_C); - zend_ini_refresh_caches(ZEND_INI_STAGE_STARTUP TSRMLS_CC); + if (zend_copy_ini_directives(TSRMLS_C) == SUCCESS) { + zend_ini_refresh_caches(ZEND_INI_STAGE_STARTUP TSRMLS_CC); + } } #endif @@ -1178,7 +1179,7 @@ void zend_post_startup(TSRMLS_D) free(EG(zend_constants)); executor_globals_ctor(executor_globals, tsrm_ls); global_persistent_list = &EG(persistent_list); - zend_new_thread_end_handler(tsrm_thread_id() TSRMLS_CC); + zend_copy_ini_directives(TSRMLS_C); #endif } diff --git a/Zend/zend_ini.c b/Zend/zend_ini.c index d3a9c5ed76..d46cd9db46 100644 --- a/Zend/zend_ini.c +++ b/Zend/zend_ini.c @@ -126,7 +126,6 @@ ZEND_API int zend_copy_ini_directives(TSRMLS_D) return FAILURE; } zend_hash_copy(EG(ini_directives), registered_zend_ini_directives, NULL, &ini_entry, sizeof(zend_ini_entry)); - zend_ini_refresh_caches(ZEND_INI_STAGE_STARTUP TSRMLS_CC); return SUCCESS; } #endif @@ -215,6 +214,7 @@ ZEND_API void zend_unregister_ini_entries(int module_number TSRMLS_DC) } +#ifdef ZTS static int zend_ini_refresh_cache(zend_ini_entry *p, int stage TSRMLS_DC) { if (p->on_modify) { @@ -228,6 +228,7 @@ ZEND_API void zend_ini_refresh_caches(int stage TSRMLS_DC) { zend_hash_apply_with_argument(EG(ini_directives), (apply_func_arg_t) zend_ini_refresh_cache, (void *)(long) stage TSRMLS_CC); } +#endif ZEND_API int zend_alter_ini_entry(char *name, uint name_length, char *new_value, uint new_value_length, int modify_type, int stage)