summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeyur Govande <keyur_govande@yahoo.com>2014-08-23 14:17:37 +0000
committerKeyur Govande <keyur_govande@yahoo.com>2014-08-23 14:17:37 +0000
commit437612f65615a93fe338fd5c25acb82d3e81a6f7 (patch)
treec272124e01ef5489fa0d3b8f0ad30ef689317e40
parent5e338836ff4f52107ae722322ffe92b8cd7d3aa3 (diff)
downloadphp-git-437612f65615a93fe338fd5c25acb82d3e81a6f7.tar.gz
Only destruct if EG(active) in zend_shutdown(). (bug #65463, #66036)
-rw-r--r--Zend/zend.c21
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();