summaryrefslogtreecommitdiff
path: root/Zend/zend_extensions.c
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2000-03-29 19:26:34 +0000
committerZeev Suraski <zeev@php.net>2000-03-29 19:26:34 +0000
commitfcf0afce176ead51d7012b897ad030e870de631b (patch)
tree575ce40bdb01797f53f39a469d5a223ed0b49bdf /Zend/zend_extensions.c
parent6c8f9bf3b499f481062b02f7039b07062bb6644c (diff)
downloadphp-git-fcf0afce176ead51d7012b897ad030e870de631b.tar.gz
*** empty log message ***
Diffstat (limited to 'Zend/zend_extensions.c')
-rw-r--r--Zend/zend_extensions.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/Zend/zend_extensions.c b/Zend/zend_extensions.c
index 51264b3c8e..50b3dd47e5 100644
--- a/Zend/zend_extensions.c
+++ b/Zend/zend_extensions.c
@@ -44,7 +44,7 @@ int zend_load_extension(char *path)
{
#if ZEND_EXTENSIONS_SUPPORT
DL_HANDLE handle;
- zend_extension extension, *new_extension;
+ zend_extension *new_extension;
zend_extension_version_info *extension_version_info;
handle = DL_LOAD(path);
@@ -106,21 +106,30 @@ int zend_load_extension(char *path)
return FAILURE;
}
}
+ return zend_register_extension(new_extension, handle);
+#else
+ fprintf(stderr, "Extensions are not supported on this platform.\n");
+ return FAILURE;
+#endif
+}
+
+
+int zend_register_extension(zend_extension *new_extension, DL_HANDLE handle)
+{
+ zend_extension extension;
+
extension = *new_extension;
extension.handle = handle;
zend_llist_add_element(&zend_extensions, &extension);
+ zend_append_version_info(&extension);
/*fprintf(stderr, "Loaded %s, version %s\n", extension.name, extension.version);*/
- zend_append_version_info(&extension);
return SUCCESS;
-#else
- fprintf(stderr, "Extensions are not supported on this platform.\n");
- return FAILURE;
-#endif
}
+
static void zend_extension_shutdown(zend_extension *extension)
{
#if ZEND_EXTENSIONS_SUPPORT
@@ -141,7 +150,9 @@ void zend_shutdown_extensions()
void zend_extension_dtor(zend_extension *extension)
{
#if ZEND_EXTENSIONS_SUPPORT
- DL_UNLOAD(extension->handle);
+ if (extension->handle) {
+ DL_UNLOAD(extension->handle);
+ }
#endif
}