diff --git a/xcache.c b/xcache.c index e0b00b1..ab0a4d8 100644 --- a/xcache.c +++ b/xcache.c @@ -1062,29 +1062,41 @@ static void xc_request_shutdown(TSRMLS_D) /* {{{ */ #endif } /* }}} */ -static void xc_init_globals(zend_xcache_globals* xc_globals TSRMLS_DC) /* {{{ */ +/* {{{ PHP_GINIT_FUNCTION(xcache) */ +static +#ifdef PHP_GINIT_FUNCTION +PHP_GINIT_FUNCTION(xcache) +#else +void xc_init_globals(zend_xcache_globals* xcache_globals TSRMLS_DC) +#endif { - memset(xc_globals, 0, sizeof(zend_xcache_globals)); + memset(xcache_globals, 0, sizeof(zend_xcache_globals)); } /* }}} */ -static void xc_shutdown_globals(zend_xcache_globals* xc_globals TSRMLS_DC) /* {{{ */ +/* {{{ PHP_GSHUTDOWN_FUNCTION(xcache) */ +static +#ifdef PHP_GSHUTDOWN_FUNCTION +PHP_GSHUTDOWN_FUNCTION(xcache) +#else +void xc_shutdown_globals(zend_xcache_globals* xcache_globals TSRMLS_DC) +#endif { int i; - if (xc_globals->php_holds != NULL) { + if (xcache_globals->php_holds != NULL) { for (i = 0; i < xc_php_hcache.size; i ++) { - xc_stack_destroy(&xc_globals->php_holds[i]); + xc_stack_destroy(&xcache_globals->php_holds[i]); } - free(xc_globals->php_holds); - xc_globals->php_holds = NULL; + free(xcache_globals->php_holds); + xcache_globals->php_holds = NULL; } - if (xc_globals->var_holds != NULL) { + if (xcache_globals->var_holds != NULL) { for (i = 0; i < xc_var_hcache.size; i ++) { - xc_stack_destroy(&xc_globals->var_holds[i]); + xc_stack_destroy(&xcache_globals->var_holds[i]); } - free(xc_globals->var_holds); - xc_globals->var_holds = NULL; + free(xcache_globals->var_holds); + xcache_globals->var_holds = NULL; } } /* }}} */ @@ -1984,7 +1996,9 @@ static PHP_MINIT_FUNCTION(xcache) } } +#ifndef PHP_GINIT ZEND_INIT_MODULE_GLOBALS(xcache, xc_init_globals, xc_shutdown_globals); +#endif REGISTER_INI_ENTRIES(); if (strcmp(sapi_module.name, "cli") == 0) { @@ -2059,10 +2073,12 @@ static PHP_MSHUTDOWN_FUNCTION(xcache) pefree(xc_coredump_dir, 1); xc_coredump_dir = NULL; } -#ifdef ZTS +#ifndef PHP_GINIT +# ifdef ZTS ts_free_id(xcache_globals_id); -#else +# else xc_shutdown_globals(&xcache_globals TSRMLS_CC); +# endif #endif UNREGISTER_INI_ENTRIES(); @@ -2107,6 +2123,11 @@ zend_module_entry xcache_module_entry = { #endif PHP_MINFO(xcache), XCACHE_VERSION, +#ifdef PHP_GINIT + PHP_MODULE_GLOBALS(xcache), + PHP_GINIT(xcache), + PHP_GSHUTDOWN(xcache), +#endif #ifdef ZEND_ENGINE_2 ZEND_MODULE_POST_ZEND_DEACTIVATE_N(xcache), #else