diff --git a/ext.go b/ext.go index 8d565d4bf..1c0656c82 100644 --- a/ext.go +++ b/ext.go @@ -23,7 +23,7 @@ func registerExtensions() { } registerOnce.Do(func() { - C.register_extensions(extensions[0], C.int(len(extensions))) + C.register_extensions((**C.zend_module_entry)(unsafe.Pointer(&extensions[0])), C.int(len(extensions))) extensions = nil }) } diff --git a/frankenphp.c b/frankenphp.c index d048e576b..fd487edb8 100644 --- a/frankenphp.c +++ b/frankenphp.c @@ -1262,7 +1262,7 @@ int frankenphp_reset_opcache(void) { int frankenphp_get_current_memory_limit() { return PG(memory_limit); } -static zend_module_entry *modules = NULL; +static zend_module_entry **modules = NULL; static int modules_len = 0; static int (*original_php_register_internal_extensions_func)(void) = NULL; @@ -1273,7 +1273,7 @@ PHPAPI int register_internal_extensions(void) { } for (int i = 0; i < modules_len; i++) { - if (zend_register_internal_module(&modules[i]) == NULL) { + if (zend_register_internal_module(modules[i]) == NULL) { return FAILURE; } } @@ -1284,7 +1284,7 @@ PHPAPI int register_internal_extensions(void) { return SUCCESS; } -void register_extensions(zend_module_entry *m, int len) { +void register_extensions(zend_module_entry **m, int len) { modules = m; modules_len = len; diff --git a/frankenphp.h b/frankenphp.h index efbd5fc48..c833c44f9 100644 --- a/frankenphp.h +++ b/frankenphp.h @@ -76,6 +76,6 @@ void frankenphp_register_bulk( ht_key_value_pair auth_type, ht_key_value_pair remote_ident, ht_key_value_pair request_uri, ht_key_value_pair ssl_cipher); -void register_extensions(zend_module_entry *m, int len); +void register_extensions(zend_module_entry **m, int len); #endif