From 71b329c7037552a7adb45adf08a868cf94c3d0e7 Mon Sep 17 00:00:00 2001 From: Jani Taskinen Date: Thu, 14 May 2009 18:34:27 +0000 Subject: [PATCH] MFH: Fixed module loading order and made request shutdown functions also to be loaded in reverse like all other shutdowns are. --- Zend/zend.c | 2 +- build/order_by_dep.awk | 3 +-- ext/date/{config.m4 => config0.m4} | 0 ext/date/php_date.c | 10 +++------- 4 files changed, 5 insertions(+), 10 deletions(-) rename ext/date/{config.m4 => config0.m4} (100%) diff --git a/Zend/zend.c b/Zend/zend.c index 47fb5e8c24..78dcfc8ece 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -835,7 +835,7 @@ void zend_deactivate_modules(TSRMLS_D) EG(opline_ptr) = NULL; /* we're no longer executing anything */ zend_try { - zend_hash_apply(&module_registry, (apply_func_t) module_registry_cleanup TSRMLS_CC); + zend_hash_reverse_apply(&module_registry, (apply_func_t) module_registry_cleanup TSRMLS_CC); } zend_end_try(); } diff --git a/build/order_by_dep.awk b/build/order_by_dep.awk index 38128b2e1b..487d055723 100644 --- a/build/order_by_dep.awk +++ b/build/order_by_dep.awk @@ -79,8 +79,7 @@ END { out_count = 0; while (count(mods)) { - # count down, since we need to assemble it in reverse order - for (i = mod_count-1; i >= 0; --i) { + for (i = 0; i <= mod_count; i++) { if (i in mods) { do_deps(i); } diff --git a/ext/date/config.m4 b/ext/date/config0.m4 similarity index 100% rename from ext/date/config.m4 rename to ext/date/config0.m4 diff --git a/ext/date/php_date.c b/ext/date/php_date.c index 8e53cc0f43..8618ab0abb 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -18,6 +18,8 @@ /* $Id$ */ +#define _ISOC9X_SOURCE + #include "php.h" #include "php_streams.h" #include "php_main.h" @@ -316,17 +318,11 @@ static zend_object_value date_object_clone_date(zval *this_ptr TSRMLS_DC); static int date_object_compare_date(zval *d1, zval *d2 TSRMLS_DC); static zend_object_value date_object_clone_timezone(zval *this_ptr TSRMLS_DC); -/* This is need to ensure that session extension request shutdown occurs 1st, because it uses the date extension */ -static zend_module_dep date_deps[] = { - ZEND_MOD_OPTIONAL("session") - {NULL, NULL, NULL} -}; - /* {{{ Module struct */ zend_module_entry date_module_entry = { STANDARD_MODULE_HEADER_EX, NULL, - date_deps, + NULL, "date", /* extension name */ date_functions, /* function list */ PHP_MINIT(date), /* process startup */ -- 2.50.1