mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Refacto php_module_startup() (#8303)
It only ever uses at most 1 additional modules
This commit is contained in:
parent
09d313daac
commit
b5db594fd2
11 changed files with 18 additions and 51 deletions
27
main/main.c
27
main/main.c
|
@ -1960,24 +1960,6 @@ int php_register_extensions(zend_module_entry * const * ptr, int count)
|
|||
return SUCCESS;
|
||||
}
|
||||
|
||||
/* A very long time ago php_module_startup() was refactored in a way
|
||||
* which broke calling it with more than one additional module.
|
||||
* This alternative to php_register_extensions() works around that
|
||||
* by walking the shallower structure.
|
||||
*
|
||||
* See algo: https://bugs.php.net/bug.php?id=63159
|
||||
*/
|
||||
static int php_register_extensions_bc(zend_module_entry *ptr, int count)
|
||||
{
|
||||
while (count--) {
|
||||
if (zend_register_internal_module(ptr++) == NULL) {
|
||||
return FAILURE;
|
||||
}
|
||||
}
|
||||
return SUCCESS;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
#ifdef PHP_WIN32
|
||||
static _invalid_parameter_handler old_invalid_parameter_handler;
|
||||
|
||||
|
@ -2012,11 +1994,12 @@ void dummy_invalid_parameter_handler(
|
|||
#endif
|
||||
|
||||
/* {{{ php_module_startup */
|
||||
int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_modules, uint32_t num_additional_modules)
|
||||
zend_result php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_module)
|
||||
{
|
||||
zend_utility_functions zuf;
|
||||
zend_utility_values zuv;
|
||||
int retval = SUCCESS, module_number=0; /* for REGISTER_INI_ENTRIES() */
|
||||
zend_result retval = SUCCESS;
|
||||
int module_number = 0; /* for REGISTER_INI_ENTRIES() */
|
||||
char *php_os;
|
||||
zend_module_entry *module;
|
||||
|
||||
|
@ -2243,7 +2226,9 @@ int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_mod
|
|||
}
|
||||
|
||||
/* start additional PHP extensions */
|
||||
php_register_extensions_bc(additional_modules, num_additional_modules);
|
||||
if (additional_module && (zend_register_internal_module(additional_module) == NULL)) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
/* load and startup extensions compiled as shared objects (aka DLLs)
|
||||
as requested by php.ini entries
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
BEGIN_EXTERN_C()
|
||||
PHPAPI int php_request_startup(void);
|
||||
PHPAPI void php_request_shutdown(void *dummy);
|
||||
PHPAPI int php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_modules, uint32_t num_additional_modules);
|
||||
PHPAPI zend_result php_module_startup(sapi_module_struct *sf, zend_module_entry *additional_module);
|
||||
PHPAPI void php_module_shutdown(void);
|
||||
PHPAPI int php_module_shutdown_wrapper(sapi_module_struct *sapi_globals);
|
||||
|
||||
|
|
|
@ -378,10 +378,7 @@ extern zend_module_entry php_apache_module;
|
|||
|
||||
static int php_apache2_startup(sapi_module_struct *sapi_module)
|
||||
{
|
||||
if (php_module_startup(sapi_module, &php_apache_module, 1)==FAILURE) {
|
||||
return FAILURE;
|
||||
}
|
||||
return SUCCESS;
|
||||
return php_module_startup(sapi_module, &php_apache_module);
|
||||
}
|
||||
|
||||
static sapi_module_struct apache2_sapi_module = {
|
||||
|
|
|
@ -967,10 +967,7 @@ static int sapi_cgi_deactivate(void)
|
|||
|
||||
static int php_cgi_startup(sapi_module_struct *sapi_module)
|
||||
{
|
||||
if (php_module_startup(sapi_module, &cgi_module_entry, 1) == FAILURE) {
|
||||
return FAILURE;
|
||||
}
|
||||
return SUCCESS;
|
||||
return php_module_startup(sapi_module, &cgi_module_entry);
|
||||
}
|
||||
|
||||
/* {{{ sapi_module_struct cgi_sapi_module */
|
||||
|
|
|
@ -407,10 +407,7 @@ static void sapi_cli_send_header(sapi_header_struct *sapi_header, void *server_c
|
|||
|
||||
static int php_cli_startup(sapi_module_struct *sapi_module) /* {{{ */
|
||||
{
|
||||
if (php_module_startup(sapi_module, NULL, 0)==FAILURE) {
|
||||
return FAILURE;
|
||||
}
|
||||
return SUCCESS;
|
||||
return php_module_startup(sapi_module, NULL);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
|
|
@ -498,7 +498,7 @@ const zend_function_entry server_additional_functions[] = {
|
|||
|
||||
static int sapi_cli_server_startup(sapi_module_struct *sapi_module) /* {{{ */
|
||||
{
|
||||
return php_module_startup(sapi_module, &cli_server_module_entry, 1);
|
||||
return php_module_startup(sapi_module, &cli_server_module_entry);
|
||||
} /* }}} */
|
||||
|
||||
static size_t sapi_cli_server_ub_write(const char *str, size_t str_length) /* {{{ */
|
||||
|
|
|
@ -119,10 +119,7 @@ static void php_embed_register_variables(zval *track_vars_array)
|
|||
/* Module initialization (MINIT) */
|
||||
static int php_embed_startup(sapi_module_struct *sapi_module)
|
||||
{
|
||||
if (php_module_startup(sapi_module, NULL, 0) == FAILURE) {
|
||||
return FAILURE;
|
||||
}
|
||||
return SUCCESS;
|
||||
return php_module_startup(sapi_module, NULL);
|
||||
}
|
||||
|
||||
EMBED_SAPI_API sapi_module_struct php_embed_module = {
|
||||
|
|
|
@ -767,10 +767,7 @@ static int sapi_cgi_deactivate(void) /* {{{ */
|
|||
|
||||
static int php_cgi_startup(sapi_module_struct *sapi_module) /* {{{ */
|
||||
{
|
||||
if (php_module_startup(sapi_module, &cgi_module_entry, 1) == FAILURE) {
|
||||
return FAILURE;
|
||||
}
|
||||
return SUCCESS;
|
||||
return php_module_startup(sapi_module, &cgi_module_entry);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
|
|
@ -62,10 +62,7 @@ const char HARDCODED_INI[] =
|
|||
|
||||
static int startup(sapi_module_struct *sapi_module)
|
||||
{
|
||||
if (php_module_startup(sapi_module, NULL, 0)==FAILURE) {
|
||||
return FAILURE;
|
||||
}
|
||||
return SUCCESS;
|
||||
return php_module_startup(sapi_module, NULL);
|
||||
}
|
||||
|
||||
static size_t ub_write(const char *str, size_t str_length)
|
||||
|
|
|
@ -97,7 +97,7 @@ static void init_sapi_from_env(sapi_module_struct *sapi_module)
|
|||
/* {{{ php_lsapi_startup */
|
||||
static int php_lsapi_startup(sapi_module_struct *sapi_module)
|
||||
{
|
||||
if (php_module_startup(sapi_module, NULL, 0)==FAILURE) {
|
||||
if (php_module_startup(sapi_module, NULL)==FAILURE) {
|
||||
return FAILURE;
|
||||
}
|
||||
argv0 = sapi_module->executable_location;
|
||||
|
@ -1518,7 +1518,7 @@ int main( int argc, char * argv[] )
|
|||
|
||||
lsapi_sapi_module.ini_defaults = sapi_lsapi_ini_defaults;
|
||||
|
||||
if (php_module_startup(&lsapi_sapi_module, &litespeed_module_entry, 1) == FAILURE) {
|
||||
if (php_module_startup(&lsapi_sapi_module, &litespeed_module_entry) == FAILURE) {
|
||||
#ifdef ZTS
|
||||
tsrm_shutdown();
|
||||
#endif
|
||||
|
|
|
@ -706,7 +706,7 @@ static zend_module_entry sapi_phpdbg_module_entry = {
|
|||
|
||||
static inline int php_sapi_phpdbg_module_startup(sapi_module_struct *module) /* {{{ */
|
||||
{
|
||||
if (php_module_startup(module, &sapi_phpdbg_module_entry, 1) == FAILURE) {
|
||||
if (php_module_startup(module, &sapi_phpdbg_module_entry) == FAILURE) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue