summaryrefslogtreecommitdiff
path: root/Zend/zend_extensions.c
diff options
context:
space:
mode:
authorAndi Gutmans <andi@php.net>2000-10-18 20:15:53 +0000
committerAndi Gutmans <andi@php.net>2000-10-18 20:15:53 +0000
commit928da7104699a28ad1a934306d9d6cb7e63ddb18 (patch)
tree4da1ae984161562db7070d9da204d448ca3e2100 /Zend/zend_extensions.c
parentffc6e72604cf3401c65f2856445cb69a3f40471a (diff)
downloadphp-git-928da7104699a28ad1a934306d9d6cb7e63ddb18.tar.gz
- Try #2. Wasn't allowed to delete in the previous manner because we were
in the middle of an llist_apply()
Diffstat (limited to 'Zend/zend_extensions.c')
-rw-r--r--Zend/zend_extensions.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/Zend/zend_extensions.c b/Zend/zend_extensions.c
index 6859f5f0c5..794728adb5 100644
--- a/Zend/zend_extensions.c
+++ b/Zend/zend_extensions.c
@@ -138,20 +138,16 @@ static void zend_extension_shutdown(zend_extension *extension)
#endif
}
-static int zend_compare_extensions(zend_extension *extension1, zend_extension *extension2)
-{
- return (extension1->handle == extension2->handle);
-}
-
-static void zend_extension_startup(zend_extension *extension)
+static int zend_extension_startup(zend_extension *extension)
{
#if ZEND_EXTENSIONS_SUPPORT
if (extension->startup) {
if (extension->startup(extension)!=SUCCESS) {
- zend_llist_del_element(&zend_extensions, extension, (int(*)(void *, void *)) zend_compare_extensions);
+ return 1;
}
}
#endif
+ return 0;
}
@@ -166,7 +162,7 @@ int zend_startup_extensions_mechanism()
int zend_startup_extensions()
{
- zend_llist_apply(&zend_extensions, (void (*)(void *)) zend_extension_startup);
+ zend_llist_apply_with_del(&zend_extensions, (int (*)(void *)) zend_extension_startup);
return SUCCESS;
}