Index: main/main.c =================================================================== RCS file: /repository/php-src/main/main.c,v retrieving revision 1.512.2.62 diff -u -p -d -r1.512.2.62 main.c --- main/main.c 27 Apr 2005 21:22:18 -0000 1.512.2.62 +++ main/main.c 12 May 2005 07:51:40 -0000 @@ -1000,6 +1000,10 @@ void php_request_shutdown(void *dummy) sapi_deactivate(TSRMLS_C); } zend_end_try(); + zend_try { + php_shutdown_stream_hashes(TSRMLS_C); + } zend_end_try(); + zend_try { shutdown_memory_manager(CG(unclean_shutdown), 0 TSRMLS_CC); } zend_end_try(); Index: main/php_streams.h =================================================================== RCS file: /repository/php-src/main/php_streams.h,v retrieving revision 1.61.2.17 diff -u -p -d -r1.61.2.17 php_streams.h --- main/php_streams.h 21 Jun 2004 19:33:48 -0000 1.61.2.17 +++ main/php_streams.h 12 May 2005 07:51:40 -0000 @@ -526,6 +526,7 @@ PHPAPI int _php_stream_cast(php_stream * int php_init_stream_wrappers(int module_number TSRMLS_DC); int php_shutdown_stream_wrappers(int module_number TSRMLS_DC); +void php_shutdown_stream_hashes(TSRMLS_D); PHP_RSHUTDOWN_FUNCTION(streams); PHPAPI int php_register_url_stream_wrapper(char *protocol, php_stream_wrapper *wrapper TSRMLS_DC); Index: main/streams.c =================================================================== RCS file: /repository/php-src/main/Attic/streams.c,v retrieving revision 1.125.2.95 diff -u -p -d -r1.125.2.95 streams.c --- main/streams.c 7 Apr 2005 07:28:08 -0000 1.125.2.95 +++ main/streams.c 12 May 2005 07:51:41 -0000 @@ -2330,6 +2330,15 @@ static void stream_resource_persistent_d FG(pclose_ret) = php_stream_free(stream, PHP_STREAM_FREE_CLOSE | PHP_STREAM_FREE_RSRC_DTOR); } +void php_shutdown_stream_hashes(TSRMLS_D) +{ + if (FG(stream_wrappers)) { + zend_hash_destroy(FG(stream_wrappers)); + efree(FG(stream_wrappers)); + FG(stream_wrappers) = NULL; + } +} + int php_init_stream_wrappers(int module_number TSRMLS_DC) { le_stream = zend_register_list_destructors_ex(stream_resource_regular_dtor, NULL, "stream", module_number); Index: ext/standard/basic_functions.c =================================================================== RCS file: /repository/php-src/ext/standard/basic_functions.c,v retrieving revision 1.543.2.50 diff -u -p -d -r1.543.2.50 basic_functions.c --- ext/standard/basic_functions.c 9 May 2005 07:08:42 -0000 1.543.2.50 +++ ext/standard/basic_functions.c 12 May 2005 07:51:41 -0000 @@ -1239,12 +1239,6 @@ PHP_RSHUTDOWN_FUNCTION(basic) } STR_FREE(BG(locale_string)); - if (FG(stream_wrappers)) { - zend_hash_destroy(FG(stream_wrappers)); - efree(FG(stream_wrappers)); - FG(stream_wrappers) = NULL; - } - PHP_RSHUTDOWN(fsock) (SHUTDOWN_FUNC_ARGS_PASSTHRU); PHP_RSHUTDOWN(filestat) (SHUTDOWN_FUNC_ARGS_PASSTHRU); PHP_RSHUTDOWN(syslog) (SHUTDOWN_FUNC_ARGS_PASSTHRU);