summaryrefslogtreecommitdiff
path: root/Zend/zend_API.c
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-03-20 12:07:05 +0100
committerNikita Popov <nikita.ppv@gmail.com>2019-03-20 12:07:05 +0100
commit8971728383e77cfb646559b744b65383a95b6108 (patch)
tree2a03d2bb15d6df8605b16047e003c550fa19c811 /Zend/zend_API.c
parentc1c554744d236c38f1b980d2e5aeb32c2807375c (diff)
parentabc457fe1ddba07b1574744593f81ce1005025cd (diff)
downloadphp-git-8971728383e77cfb646559b744b65383a95b6108.tar.gz
Merge branch 'PHP-7.4'
Diffstat (limited to 'Zend/zend_API.c')
-rw-r--r--Zend/zend_API.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index ad15a38cf6..00161da07e 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -2792,7 +2792,7 @@ static int zend_is_callable_check_class(zend_string *name, zend_class_entry *sco
}
/* }}} */
-static void free_fcc(zend_fcall_info_cache *fcc) {
+ZEND_API void zend_release_fcall_info_cache(zend_fcall_info_cache *fcc) {
if (fcc->function_handler &&
(fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE)) {
if (fcc->function_handler->common.function_name) {
@@ -2800,6 +2800,7 @@ static void free_fcc(zend_fcall_info_cache *fcc) {
}
zend_free_trampoline(fcc->function_handler);
}
+ fcc->function_handler = NULL;
}
static zend_always_inline int zend_is_callable_check_func(int check_flags, zval *callable, zend_fcall_info_cache *fcc, int strict_class, char **error) /* {{{ */
@@ -3142,7 +3143,7 @@ again:
check_func:
ret = zend_is_callable_check_func(check_flags, callable, fcc, strict_class, error);
if (fcc == &fcc_local) {
- free_fcc(fcc);
+ zend_release_fcall_info_cache(fcc);
}
return ret;
@@ -3211,7 +3212,7 @@ check_func:
if (Z_OBJ_HANDLER_P(callable, get_closure) && Z_OBJ_HANDLER_P(callable, get_closure)(Z_OBJ_P(callable), &fcc->calling_scope, &fcc->function_handler, &fcc->object) == SUCCESS) {
fcc->called_scope = fcc->calling_scope;
if (fcc == &fcc_local) {
- free_fcc(fcc);
+ zend_release_fcall_info_cache(fcc);
}
return 1;
}
@@ -3253,7 +3254,7 @@ ZEND_API zend_bool zend_make_callable(zval *callable, zend_string **callable_nam
add_next_index_str(callable, zend_string_copy(fcc.calling_scope->name));
add_next_index_str(callable, zend_string_copy(fcc.function_handler->common.function_name));
}
- free_fcc(&fcc);
+ zend_release_fcall_info_cache(&fcc);
return 1;
}
return 0;