diff options
author | Keyur Govande <keyur_govande@yahoo.com> | 2014-08-23 14:17:37 +0000 |
---|---|---|
committer | Keyur Govande <keyur_govande@yahoo.com> | 2014-08-23 14:17:37 +0000 |
commit | 437612f65615a93fe338fd5c25acb82d3e81a6f7 (patch) | |
tree | c272124e01ef5489fa0d3b8f0ad30ef689317e40 | |
parent | 5e338836ff4f52107ae722322ffe92b8cd7d3aa3 (diff) | |
download | php-git-437612f65615a93fe338fd5c25acb82d3e81a6f7.tar.gz |
Only destruct if EG(active) in zend_shutdown(). (bug #65463, #66036)
-rw-r--r-- | Zend/zend.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/Zend/zend.c b/Zend/zend.c index e0f400ab22..35f215f320 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -818,15 +818,18 @@ void zend_shutdown(TSRMLS_D) /* {{{ */ #endif zend_destroy_rsrc_list(&EG(persistent_list) TSRMLS_CC); - /* - * The order of destruction is important here. - * See bugs #65463 and 66036. - */ - zend_hash_reverse_apply(GLOBAL_FUNCTION_TABLE, (apply_func_t) zend_cleanup_function_data_full TSRMLS_CC); - zend_hash_reverse_apply(GLOBAL_CLASS_TABLE, (apply_func_t) zend_cleanup_user_class_data TSRMLS_CC); - zend_cleanup_internal_classes(TSRMLS_C); - zend_hash_reverse_apply(GLOBAL_FUNCTION_TABLE, (apply_func_t) clean_non_persistent_function_full TSRMLS_CC); - zend_hash_reverse_apply(GLOBAL_CLASS_TABLE, (apply_func_t) clean_non_persistent_class_full TSRMLS_CC); + if (EG(active)) + { + /* + * The order of destruction is important here. + * See bugs #65463 and 66036. + */ + zend_hash_reverse_apply(GLOBAL_FUNCTION_TABLE, (apply_func_t) zend_cleanup_function_data_full TSRMLS_CC); + zend_hash_reverse_apply(GLOBAL_CLASS_TABLE, (apply_func_t) zend_cleanup_user_class_data TSRMLS_CC); + zend_cleanup_internal_classes(TSRMLS_C); + zend_hash_reverse_apply(GLOBAL_FUNCTION_TABLE, (apply_func_t) clean_non_persistent_function_full TSRMLS_CC); + zend_hash_reverse_apply(GLOBAL_CLASS_TABLE, (apply_func_t) clean_non_persistent_class_full TSRMLS_CC); + } zend_destroy_modules(); |