From: Anatol Belski Date: Thu, 23 Jun 2016 14:47:04 +0000 (+0200) Subject: improve ZEND_MODULE_GLOBALS_BULK macro, fix data type X-Git-Tag: php-7.1.0alpha3~95 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c9a538cdb441437181913c09bdc4425596e51f46;p=php improve ZEND_MODULE_GLOBALS_BULK macro, fix data type --- diff --git a/Zend/zend_API.h b/Zend/zend_API.h index 34612f879f..77127afa4b 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -158,7 +158,11 @@ typedef struct _zend_fcall_info_cache { #define ZEND_INIT_MODULE_GLOBALS(module_name, globals_ctor, globals_dtor) \ ts_allocate_id(&module_name##_globals_id, sizeof(zend_##module_name##_globals), (ts_allocate_ctor) globals_ctor, (ts_allocate_dtor) globals_dtor); #define ZEND_MODULE_GLOBALS_ACCESSOR(module_name, v) ZEND_TSRMG(module_name##_globals_id, zend_##module_name##_globals *, v) +#if ZEND_ENABLE_STATIC_TSRMLS_CACHE +#define ZEND_MODULE_GLOBALS_BULK(module_name) TSRMG_BULK_STATIC(module_name##_globals_id, zend_##module_name##_globals *) +#else #define ZEND_MODULE_GLOBALS_BULK(module_name) TSRMG_BULK(module_name##_globals_id, zend_##module_name##_globals *) +#endif #else diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index a914ae221a..d3dac690ca 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -1262,7 +1262,7 @@ VOID CALLBACK tq_timer_cb(PVOID arg, BOOLEAN timed_out) static void zend_set_timeout_ex(zend_long seconds, int reset_signals) /* {{{ */ { - zend_execute_data *eg; + zend_executor_globals *eg; #ifdef ZEND_WIN32 if(!seconds) { @@ -1282,13 +1282,7 @@ static void zend_set_timeout_ex(zend_long seconds, int reset_signals) /* {{{ */ } /* XXX passing NULL means the default timer queue provided by the system is used */ -#ifndef ZTS - eg = &execute_data; -#elif defined(ZEND_ENABLE_STATIC_TSRMLS_CACHE) - eg = TSRMG_BULK_STATIC(executor_globals_id, zend_executor_globals *) -#else - eg = TSRMG_BULK(executor_globals_id, zend_executor_globals *) -#endif + eg = ZEND_MODULE_GLOBALS_BULK(executor); if (!CreateTimerQueueTimer(&tq_timer, NULL, (WAITORTIMERCALLBACK)tq_timer_cb, (VOID*)eg, seconds*1000, 0, WT_EXECUTEONLYONCE)) { tq_timer = NULL; zend_error_noreturn(E_ERROR, "Could not queue new timer");