zend_collect_module_handlers() has to be called after zend_extensions startup, becaus...
authorDmitry Stogov <dmitry@php.net>
Fri, 15 Oct 2010 07:30:24 +0000 (07:30 +0000)
committerDmitry Stogov <dmitry@php.net>
Fri, 15 Oct 2010 07:30:24 +0000 (07:30 +0000)
Zend/zend_API.c
Zend/zend_API.h
main/main.c

index 7a021f783876fef108274430cc9b8f284b1f1dae..b89f8aaaa5acb80977a265a0da9d7584db2267ec 100644 (file)
@@ -1688,7 +1688,7 @@ try_again:
 }
 /* }}} */
 
-static void zend_collect_module_handlers(TSRMLS_D) /* {{{ */
+ZEND_API void zend_collect_module_handlers(TSRMLS_D) /* {{{ */
 {
        HashPosition pos;
        zend_module_entry *module;
@@ -1770,7 +1770,6 @@ ZEND_API int zend_startup_modules(TSRMLS_D) /* {{{ */
 {
        zend_hash_sort(&module_registry, zend_sort_modules, NULL, 0 TSRMLS_CC);
        zend_hash_apply(&module_registry, (apply_func_t)zend_startup_module_ex TSRMLS_CC);
-       zend_collect_module_handlers(TSRMLS_C);
        return SUCCESS;
 }
 /* }}} */
index 220e1ac43f5e26bb61cfac75979beba9aedbf5d3..1c81e30babd742aa9318f966d1c6ed2ab97e361e 100644 (file)
@@ -260,6 +260,7 @@ ZEND_API zend_module_entry* zend_register_internal_module(zend_module_entry *mod
 ZEND_API zend_module_entry* zend_register_module_ex(zend_module_entry *module TSRMLS_DC);
 ZEND_API int zend_startup_module_ex(zend_module_entry *module TSRMLS_DC);
 ZEND_API int zend_startup_modules(TSRMLS_D);
+ZEND_API void zend_collect_module_handlers(TSRMLS_D);
 ZEND_API void zend_destroy_modules(void);
 ZEND_API void zend_check_magic_method_implementation(const zend_class_entry *ce, const zend_function *fptr, int error_type TSRMLS_DC);
 
index 56bc3a3b2cc69883e29d3f79624971a90027b2ae..d3edcdc1c50aa23462ebcd9da49d78a2111b9495 100644 (file)
@@ -2059,6 +2059,8 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod
        /* start Zend extensions */
        zend_startup_extensions();
 
+       zend_collect_module_handlers(TSRMLS_C);
+
        /* register additional functions */
        if (sapi_module.additional_functions) {
                if (zend_hash_find(&module_registry, "standard", sizeof("standard"), (void**)&module)==SUCCESS) {