diff options
-rw-r--r-- | ext/standard/basic_functions.c | 8 | ||||
-rw-r--r-- | ext/standard/basic_functions.h | 1 | ||||
-rw-r--r-- | ext/standard/user_filters.c | 11 |
3 files changed, 14 insertions, 6 deletions
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index a6c380428e..24c2fe5b89 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -1248,12 +1248,8 @@ PHP_RSHUTDOWN_FUNCTION(basic) BG(user_tick_functions) = NULL; } - if (BG(user_filter_map)) { - zend_hash_destroy(BG(user_filter_map)); - efree(BG(user_filter_map)); - BG(user_filter_map) = NULL; - } - + PHP_RSHUTDOWN(user_filters)(SHUTDOWN_FUNC_ARGS_PASSTHRU); + return SUCCESS; } diff --git a/ext/standard/basic_functions.h b/ext/standard/basic_functions.h index 4d60602366..4c8f53f29a 100644 --- a/ext/standard/basic_functions.h +++ b/ext/standard/basic_functions.h @@ -114,6 +114,7 @@ PHP_FUNCTION(stream_bucket_prepend); PHP_FUNCTION(stream_bucket_append); PHP_FUNCTION(stream_bucket_new); PHP_MINIT_FUNCTION(user_filters); +PHP_RSHUTDOWN_FUNCTION(user_filters); #ifdef PHP_WIN32 typedef unsigned int php_stat_len; diff --git a/ext/standard/user_filters.c b/ext/standard/user_filters.c index c7491eb42e..f8933ead01 100644 --- a/ext/standard/user_filters.c +++ b/ext/standard/user_filters.c @@ -100,6 +100,17 @@ PHP_MINIT_FUNCTION(user_filters) return SUCCESS; } +PHP_RSHUTDOWN_FUNCTION(user_filters) +{ + if (BG(user_filter_map)) { + zend_hash_destroy(BG(user_filter_map)); + efree(BG(user_filter_map)); + BG(user_filter_map) = NULL; + } + + return SUCCESS; +} + static void userfilter_dtor(php_stream_filter *thisfilter TSRMLS_DC) { zval *obj = (zval*)thisfilter->abstract; |