diff options
| author | Zeev Suraski <zeev@php.net> | 2000-04-29 10:20:40 +0000 |
|---|---|---|
| committer | Zeev Suraski <zeev@php.net> | 2000-04-29 10:20:40 +0000 |
| commit | 8aac6e7d3d94b2a180de0c13ea4fa6aee1a02605 (patch) | |
| tree | 4480c65a36f915e79f77b537e64796ae3eda0656 /Zend/zend_extensions.c | |
| parent | 0118f62195a1a5a4c0c4ce0313e9deb201dfaa15 (diff) | |
| download | php-git-8aac6e7d3d94b2a180de0c13ea4fa6aee1a02605.tar.gz | |
- Add zend_llist_apply_with_arguments()
- Add a message handler to the extensions
Diffstat (limited to 'Zend/zend_extensions.c')
| -rw-r--r-- | Zend/zend_extensions.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Zend/zend_extensions.c b/Zend/zend_extensions.c index de5df36157..f7f7c76ced 100644 --- a/Zend/zend_extensions.c +++ b/Zend/zend_extensions.c @@ -123,6 +123,8 @@ int zend_register_extension(zend_extension *new_extension, DL_HANDLE handle) extension = *new_extension; extension.handle = handle; + zend_extension_dispatch_message(ZEND_EXTMSG_NEW_EXTENSION, &extension); + zend_llist_add_element(&zend_extensions, &extension); zend_append_version_info(&extension); @@ -168,6 +170,26 @@ void zend_extension_dtor(zend_extension *extension) } +static void zend_extension_message_dispatcher(zend_extension *extension, int num_args, va_list args) +{ + int message; + void *arg; + + if (num_args!=2) { + return; + } + message = va_arg(args, int); + arg = va_arg(args, void *); + extension->message_handler(message, arg); +} + + +ZEND_API void zend_extension_dispatch_message(int message, void *arg) +{ + zend_llist_apply_with_arguments(&zend_extensions, (llist_apply_with_args_func_t) zend_extension_message_dispatcher, 2, message, arg); +} + + ZEND_API int zend_get_resource_handle(zend_extension *extension) { if (last_resource_number<ZEND_MAX_RESERVED_RESOURCES) { |
