Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Zend/zend_API.h
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,7 @@ typedef struct _zend_fcall_info_cache {
#define ZEND_MODULE_INFO_N(module) zm_info_##module
#define ZEND_MODULE_GLOBALS_CTOR_N(module) zm_globals_ctor_##module
#define ZEND_MODULE_GLOBALS_DTOR_N(module) zm_globals_dtor_##module
#define ZEND_MODULE_CHILD_INIT_N(module) zm_child_init_##module

/* Declaration macros */
#define ZEND_MODULE_STARTUP_D(module) zend_result ZEND_MODULE_STARTUP_N(module)(INIT_FUNC_ARGS)
Expand All @@ -239,6 +240,7 @@ typedef struct _zend_fcall_info_cache {
#define ZEND_MODULE_INFO_D(module) ZEND_COLD void ZEND_MODULE_INFO_N(module)(ZEND_MODULE_INFO_FUNC_ARGS)
#define ZEND_MODULE_GLOBALS_CTOR_D(module) void ZEND_MODULE_GLOBALS_CTOR_N(module)(zend_##module##_globals *module##_globals)
#define ZEND_MODULE_GLOBALS_DTOR_D(module) void ZEND_MODULE_GLOBALS_DTOR_N(module)(zend_##module##_globals *module##_globals)
#define ZEND_MODULE_CHILD_INIT_D(module) void ZEND_MODULE_CHILD_INIT_N(module)(void)

#define ZEND_GET_MODULE(name) \
BEGIN_EXTERN_C()\
Expand Down Expand Up @@ -1159,6 +1161,7 @@ static zend_always_inline bool ZVAL_FSTRING(zval *z, const char *s) {
#define ZEND_MINFO ZEND_MODULE_INFO_N
#define ZEND_GINIT(module) ((void (*)(void*))(ZEND_MODULE_GLOBALS_CTOR_N(module)))
#define ZEND_GSHUTDOWN(module) ((void (*)(void*))(ZEND_MODULE_GLOBALS_DTOR_N(module)))
#define ZEND_CINIT ZEND_MODULE_CHILD_INIT_N

#define ZEND_MINIT_FUNCTION ZEND_MODULE_STARTUP_D
#define ZEND_MSHUTDOWN_FUNCTION ZEND_MODULE_SHUTDOWN_D
Expand All @@ -1167,6 +1170,7 @@ static zend_always_inline bool ZVAL_FSTRING(zval *z, const char *s) {
#define ZEND_MINFO_FUNCTION ZEND_MODULE_INFO_D
#define ZEND_GINIT_FUNCTION ZEND_MODULE_GLOBALS_CTOR_D
#define ZEND_GSHUTDOWN_FUNCTION ZEND_MODULE_GLOBALS_DTOR_D
#define ZEND_CINIT_FUNCTION ZEND_MODULE_CHILD_INIT_D

/* May modify arg in-place. Will free arg in failure case (and take ownership in success case).
* Prefer using the ZEND_TRY_ASSIGN_* macros over these APIs. */
Expand Down
33 changes: 28 additions & 5 deletions Zend/zend_modules.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,21 @@
#define USING_ZTS 0
#endif

#define STANDARD_MODULE_HEADER_EX sizeof(zend_module_entry), ZEND_MODULE_API_NO, ZEND_DEBUG, USING_ZTS
#define STANDARD_MODULE_HEADER_EX \
.size = sizeof(zend_module_entry), \
.zend_api = ZEND_MODULE_API_NO, \
.zend_debug = ZEND_DEBUG, \
.zts = USING_ZTS \

#define STANDARD_MODULE_HEADER \
STANDARD_MODULE_HEADER_EX, NULL, NULL
STANDARD_MODULE_HEADER_EX, \
.ini_entry = NULL, \
.deps = NULL

#define ZE2_STANDARD_MODULE_HEADER \
STANDARD_MODULE_HEADER_EX, ini_entries, NULL
STANDARD_MODULE_HEADER_EX, \
.ini_entry = ini_entries, \
.deps = NULL

#define ZEND_MODULE_BUILD_ID "API" ZEND_TOSTR(ZEND_MODULE_API_NO) ZEND_BUILD_TS ZEND_BUILD_DEBUG ZEND_BUILD_SYSTEM ZEND_BUILD_EXTRA

Expand All @@ -52,7 +62,17 @@
.module_number = 0, \
.build_id = ZEND_MODULE_BUILD_ID

#define NO_MODULE_GLOBALS 0, NULL, NULL, NULL
#ifdef ZTS
# define GLOBALS_PTR_INITIALIZER .globals_id_ptr = NULL
#else
# define GLOBALS_PTR_INITIALIZER .globals_ptr = NULL
#endif

#define NO_MODULE_GLOBALS \
.globals_size = 0, \
GLOBALS_PTR_INITIALIZER, \
.globals_ctor = NULL, \
.globals_dtor = NULL

#ifdef ZTS
# define ZEND_MODULE_GLOBALS(module_name) sizeof(zend_##module_name##_globals), &module_name##_globals_id
Expand All @@ -61,7 +81,10 @@
#endif

#define STANDARD_MODULE_PROPERTIES \
NO_MODULE_GLOBALS, NULL, STANDARD_MODULE_PROPERTIES_EX
NO_MODULE_GLOBALS, \
.post_deactivate_func = NULL, \
.child_init_func = NULL, \
STANDARD_MODULE_PROPERTIES_EX

#define NO_VERSION_YET NULL

Expand Down
2 changes: 1 addition & 1 deletion ext/session/session.c
Original file line number Diff line number Diff line change
Expand Up @@ -3450,7 +3450,7 @@ static zend_result php_session_rfc1867_callback(unsigned int event, void *event_
return retval;
}

PHP_CINIT_FUNCTION(session)
static PHP_CINIT_FUNCTION(session)
{
/* Give each child a distinct, widely separated GC sequence without requesting new entropy. */
uint64_t advance = (uint64_t) getpid() << 32;
Expand Down
4 changes: 2 additions & 2 deletions ext/zend_test/test.c
Original file line number Diff line number Diff line change
Expand Up @@ -2599,7 +2599,7 @@ PHP_MINFO_FUNCTION(zend_test)
DISPLAY_INI_ENTRIES();
}

static void zend_test_child_init(void)
static PHP_CINIT_FUNCTION(zend_test)
{
ZT_G(child_init_count)++;
}
Expand All @@ -2619,7 +2619,7 @@ zend_module_entry zend_test_module_entry = {
PHP_GSHUTDOWN(zend_test),
NULL,
STANDARD_MODULE_PROPERTIES_EX,
.child_init_func = zend_test_child_init
.child_init_func = PHP_CINIT(zend_test)
};

#ifdef COMPILE_DL_ZEND_TEST
Expand Down
4 changes: 2 additions & 2 deletions main/php.h
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ END_EXTERN_C()
#define PHP_MINFO ZEND_MODULE_INFO_N
#define PHP_GINIT ZEND_GINIT
#define PHP_GSHUTDOWN ZEND_GSHUTDOWN
#define PHP_CINIT(module) php_##module##_child_init
#define PHP_CINIT ZEND_CINIT

#define PHP_MINIT_FUNCTION ZEND_MODULE_STARTUP_D
#define PHP_MSHUTDOWN_FUNCTION ZEND_MODULE_SHUTDOWN_D
Expand All @@ -378,7 +378,7 @@ END_EXTERN_C()
#define PHP_MINFO_FUNCTION ZEND_MODULE_INFO_D
#define PHP_GINIT_FUNCTION ZEND_GINIT_FUNCTION
#define PHP_GSHUTDOWN_FUNCTION ZEND_GSHUTDOWN_FUNCTION
#define PHP_CINIT_FUNCTION(module) static void php_##module##_child_init(void)
#define PHP_CINIT_FUNCTION ZEND_CINIT_FUNCTION

#define PHP_MODULE_GLOBALS ZEND_MODULE_GLOBALS

Expand Down
Loading