Skip to content

Commit dbb462d

Browse files
committed
Merge branch 'PHP-7.4'
* PHP-7.4: Avoid reinitailization of ZTS cache pointer. Initialize it once in TSRM.c
2 parents 59e9545 + 04b67ba commit dbb462d

File tree

12 files changed

+15
-15
lines changed

12 files changed

+15
-15
lines changed

TSRM/TSRM.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@
1919

2020
typedef struct _tsrm_tls_entry tsrm_tls_entry;
2121

22-
#if defined(TSRM_WIN32)
2322
/* TSRMLS_CACHE_DEFINE; is already done in Zend, this is being always compiled statically. */
24-
#endif
23+
TSRMLS_CACHE_EXTERN();
2524

2625
struct _tsrm_tls_entry {
2726
void **storage;
@@ -300,6 +299,7 @@ static void allocate_new_resource(tsrm_tls_entry **thread_resources_ptr, THREAD_
300299

301300
/* Set thread local storage to this new thread resources structure */
302301
tsrm_tls_set(*thread_resources_ptr);
302+
TSRMLS_CACHE = *thread_resources_ptr;
303303

304304
if (tsrm_new_thread_begin_handler) {
305305
tsrm_new_thread_begin_handler(thread_id);

Zend/zend.c

-3
Original file line numberDiff line numberDiff line change
@@ -679,8 +679,6 @@ static void compiler_globals_dtor(zend_compiler_globals *compiler_globals) /* {{
679679

680680
static void executor_globals_ctor(zend_executor_globals *executor_globals) /* {{{ */
681681
{
682-
ZEND_TSRMLS_CACHE_UPDATE();
683-
684682
zend_startup_constants();
685683
zend_copy_constants(executor_globals->zend_constants, GLOBAL_CONSTANTS_TABLE);
686684
zend_init_rsrc_plist();
@@ -780,7 +778,6 @@ int zend_startup(zend_utility_functions *utility_functions) /* {{{ */
780778
zend_executor_globals *executor_globals;
781779
extern ZEND_API ts_rsrc_id ini_scanner_globals_id;
782780
extern ZEND_API ts_rsrc_id language_scanner_globals_id;
783-
ZEND_TSRMLS_CACHE_UPDATE();
784781
#else
785782
extern zend_ini_scanner_globals ini_scanner_globals;
786783
extern zend_php_scanner_globals language_scanner_globals;

Zend/zend_alloc.c

-1
Original file line numberDiff line numberDiff line change
@@ -2723,7 +2723,6 @@ static void alloc_globals_ctor(zend_alloc_globals *alloc_globals)
27232723
if (tmp && zend_atoi(tmp, 0)) {
27242724
zend_mm_use_huge_pages = 1;
27252725
}
2726-
ZEND_TSRMLS_CACHE_UPDATE();
27272726
alloc_globals->mm_heap = zend_mm_init();
27282727
}
27292728

Zend/zend_signal.c

-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@ void zend_signal_handler_defer(int signo, siginfo_t *siginfo, void *context)
8787
zend_bool is_handling_safe = 1;
8888

8989
#ifdef ZTS
90-
ZEND_TSRMLS_CACHE_UPDATE();
9190
/* A signal could hit after TSRM shutdown, in this case globals are already freed. */
9291
if (NULL == TSRMLS_CACHE || NULL == TSRMG_BULK_STATIC(zend_signal_globals_id, zend_signal_globals_t *)) {
9392
is_handling_safe = 0;

main/SAPI.c

-3
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,6 @@ static void _type_dtor(zval *zv)
5656

5757
static void sapi_globals_ctor(sapi_globals_struct *sapi_globals)
5858
{
59-
#ifdef ZTS
60-
ZEND_TSRMLS_CACHE_UPDATE();
61-
#endif
6259
memset(sapi_globals, 0, sizeof(*sapi_globals));
6360
zend_hash_init_ex(&sapi_globals->known_post_content_types, 8, NULL, _type_dtor, 1, 0);
6461
php_setup_sapi_content_types();

main/output.c

-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ static int php_output_handler_devnull_func(void **handler_context, php_output_co
7979
* Initialize the module globals on MINIT */
8080
static inline void php_output_init_globals(zend_output_globals *G)
8181
{
82-
ZEND_TSRMLS_CACHE_UPDATE();
8382
memset(G, 0, sizeof(*G));
8483
}
8584
/* }}} */

sapi/apache2handler/sapi_apache2.c

+4
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,9 @@ php_apache_server_startup(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *ptemp
476476
#ifdef ZTS
477477
tsrm_startup(1, 1, 0, NULL);
478478
(void)ts_resource(0);
479+
# ifdef PHP_WIN32
479480
ZEND_TSRMLS_CACHE_UPDATE();
481+
# endif
480482
#endif
481483

482484
zend_signal_startup();
@@ -574,7 +576,9 @@ static int php_handler(request_rec *r)
574576
#ifdef ZTS
575577
/* initial resource fetch */
576578
(void)ts_resource(0);
579+
# ifdef PHP_WIN32
577580
ZEND_TSRMLS_CACHE_UPDATE();
581+
# endif
578582
#endif
579583

580584
#define PHPAP_INI_OFF php_apache_ini_dtor(r, parent_req);

sapi/cgi/cgi_main.c

+3-1
Original file line numberDiff line numberDiff line change
@@ -1532,7 +1532,7 @@ PHP_INI_END()
15321532
*/
15331533
static void php_cgi_globals_ctor(php_cgi_globals_struct *php_cgi_globals)
15341534
{
1535-
#ifdef ZTS
1535+
#if defined(ZTS) && defined(PHP_WIN32)
15361536
ZEND_TSRMLS_CACHE_UPDATE();
15371537
#endif
15381538
php_cgi_globals->rfc2616_headers = 0;
@@ -1793,7 +1793,9 @@ int main(int argc, char *argv[])
17931793
#ifdef ZTS
17941794
tsrm_startup(1, 1, 0, NULL);
17951795
(void)ts_resource(0);
1796+
# ifdef PHP_WIN32
17961797
ZEND_TSRMLS_CACHE_UPDATE();
1798+
# endif
17971799
#endif
17981800

17991801
zend_signal_startup();

sapi/cli/php_cli.c

+2
Original file line numberDiff line numberDiff line change
@@ -1248,7 +1248,9 @@ int main(int argc, char *argv[])
12481248
#ifdef ZTS
12491249
tsrm_startup(1, 1, 0, NULL);
12501250
(void)ts_resource(0);
1251+
# ifdef PHP_WIN32
12511252
ZEND_TSRMLS_CACHE_UPDATE();
1253+
# endif
12521254
#endif
12531255

12541256
zend_signal_startup();

sapi/cli/php_cli_server.c

-3
Original file line numberDiff line numberDiff line change
@@ -1296,9 +1296,6 @@ static php_socket_t php_network_listen_socket(const char *host, int *port, int s
12961296

12971297
static int php_cli_server_request_ctor(php_cli_server_request *req) /* {{{ */
12981298
{
1299-
#ifdef ZTS
1300-
ZEND_TSRMLS_CACHE_UPDATE();
1301-
#endif
13021299
req->protocol_version = 0;
13031300
req->request_uri = NULL;
13041301
req->request_uri_len = 0;

sapi/embed/php_embed.c

+2
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,9 @@ EMBED_SAPI_API int php_embed_init(int argc, char **argv)
173173
#ifdef ZTS
174174
tsrm_startup(1, 1, 0, NULL);
175175
(void)ts_resource(0);
176+
# ifdef PHP_WIN32
176177
ZEND_TSRMLS_CACHE_UPDATE();
178+
# endif
177179
#endif
178180

179181
zend_signal_startup();

sapi/phpdbg/phpdbg.c

+2
Original file line numberDiff line numberDiff line change
@@ -1418,7 +1418,9 @@ int main(int argc, char **argv) /* {{{ */
14181418
#ifdef ZTS
14191419
tsrm_startup(1, 1, 0, NULL);
14201420
(void)ts_resource(0);
1421+
# ifdef PHP_WIN32
14211422
ZEND_TSRMLS_CACHE_UPDATE();
1423+
# endif
14221424
#endif
14231425

14241426
zend_signal_startup();

0 commit comments

Comments
 (0)