mirror of
https://github.com/php/php-src.git
synced 2024-11-24 10:24:11 +08:00
Fix possible exit_counters memory leak in ZTS build
This commit is contained in:
parent
49551d7c29
commit
a21195650e
@ -4759,6 +4759,13 @@ static void zend_jit_globals_ctor(zend_jit_globals *jit_globals)
|
||||
zend_jit_trace_init_caches();
|
||||
}
|
||||
|
||||
#ifdef ZTS
|
||||
static void zend_jit_globals_dtor(zend_jit_globals *jit_globals)
|
||||
{
|
||||
zend_jit_trace_free_caches();
|
||||
}
|
||||
#endif
|
||||
|
||||
static int zend_jit_parse_config_num(zend_long jit)
|
||||
{
|
||||
if (jit == 0) {
|
||||
@ -4871,7 +4878,7 @@ ZEND_EXT_API int zend_jit_debug_config(zend_long old_val, zend_long new_val, int
|
||||
ZEND_EXT_API void zend_jit_init(void)
|
||||
{
|
||||
#ifdef ZTS
|
||||
jit_globals_id = ts_allocate_id(&jit_globals_id, sizeof(zend_jit_globals), (ts_allocate_ctor) zend_jit_globals_ctor, NULL);
|
||||
jit_globals_id = ts_allocate_id(&jit_globals_id, sizeof(zend_jit_globals), (ts_allocate_ctor) zend_jit_globals_ctor, zend_jit_globals_dtor);
|
||||
#else
|
||||
zend_jit_globals_ctor(&jit_globals);
|
||||
#endif
|
||||
@ -5071,9 +5078,9 @@ ZEND_EXT_API void zend_jit_shutdown(void)
|
||||
zend_jit_perf_jitdump_close();
|
||||
}
|
||||
#endif
|
||||
if (JIT_G(exit_counters)) {
|
||||
free(JIT_G(exit_counters));
|
||||
}
|
||||
#ifndef ZTS
|
||||
zend_jit_trace_free_caches();
|
||||
#endif
|
||||
}
|
||||
|
||||
static void zend_jit_reset_counters(void)
|
||||
|
@ -8324,6 +8324,13 @@ static void zend_jit_trace_reset_caches(void)
|
||||
#endif
|
||||
}
|
||||
|
||||
static void zend_jit_trace_free_caches(void)
|
||||
{
|
||||
if (JIT_G(exit_counters)) {
|
||||
free(JIT_G(exit_counters));
|
||||
}
|
||||
}
|
||||
|
||||
static void zend_jit_trace_restart(void)
|
||||
{
|
||||
ZEND_JIT_TRACE_NUM = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user