diff options
| author | Zeev Suraski <zeev@php.net> | 2000-09-25 18:10:45 +0000 |
|---|---|---|
| committer | Zeev Suraski <zeev@php.net> | 2000-09-25 18:10:45 +0000 |
| commit | 309827ec1dcc87886825edc057e816e5cb8eb3c5 (patch) | |
| tree | 3ed733d7af5c92df2fc6e4881a025f5feb9679ee /Zend/zend_extensions.c | |
| parent | 59d3eb5f2401997cbfa0d23951964f462eab069e (diff) | |
| download | php-git-309827ec1dcc87886825edc057e816e5cb8eb3c5.tar.gz | |
Fix previous update - move extension startup further down the startup sequence
Diffstat (limited to 'Zend/zend_extensions.c')
| -rw-r--r-- | Zend/zend_extensions.c | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/Zend/zend_extensions.c b/Zend/zend_extensions.c index ac44b533f3..1b88efdbec 100644 --- a/Zend/zend_extensions.c +++ b/Zend/zend_extensions.c @@ -114,13 +114,6 @@ int zend_register_extension(zend_extension *new_extension, DL_HANDLE handle) #if ZEND_EXTENSIONS_SUPPORT zend_extension extension; - if (new_extension->startup) { - if (new_extension->startup(new_extension)!=SUCCESS) { - DL_UNLOAD(handle); - return FAILURE; - } - } - extension = *new_extension; extension.handle = handle; @@ -146,14 +139,32 @@ static void zend_extension_shutdown(zend_extension *extension) } -int zend_startup_extensions() +static void zend_extension_startup(zend_extension *extension) +{ + if (extension->startup) { + if (extension->startup(extension)!=SUCCESS) { + DL_UNLOAD(extension->handle); + } + } +} + + +int zend_startup_extensions_mechanism() { + /* Startup extensions mechanism */ zend_llist_init(&zend_extensions, sizeof(zend_extension), (void (*)(void *)) zend_extension_dtor, 1); last_resource_number = 0; return SUCCESS; } +int zend_startup_extensions() +{ + zend_llist_apply(&zend_extensions, (void (*)(void *)) zend_extension_startup); + return SUCCESS; +} + + void zend_shutdown_extensions() { zend_llist_apply(&zend_extensions, (void (*)(void *)) zend_extension_shutdown); @@ -163,7 +174,7 @@ void zend_shutdown_extensions() void zend_extension_dtor(zend_extension *extension) { -#if ZEND_EXTENSIONS_SUPPORT +#if ZEND_EXTENSIONS_SUPPORT && !ZEND_DEBUG if (extension->handle) { DL_UNLOAD(extension->handle); } |
