X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Ftypes%2Flet_func.c;h=ea2f371907ef46c973fdafdad429c2417516e1d0;hp=468d215ae3cdf8559488e78a780fe5b32762ce6e;hb=4cf4913076ea959f298caefb4b9d60510c1bf48b;hpb=2fa436074ca9a5e87f39b696de832fa2188fcfc6 diff --git a/src/types/let_func.c b/src/types/let_func.c index 468d215..ea2f371 100644 --- a/src/types/let_func.c +++ b/src/types/let_func.c @@ -139,6 +139,7 @@ static inline bool validate_let_func_inner(struct psi_data *data, if (name) { sub_arg = psi_decl_arg_get_by_name(sub_args, name); + zend_string_release(name); } if (!name || !sub_arg) { /* remove expr for portability with different struct members */ @@ -349,11 +350,12 @@ static void *exec_let_func_arrval(struct psi_let_exp *val, if (frame_arg->zval_ptr) { while (psi_plist_get(func->inner, i++, &inner)) { - darg_member = psi_decl_arg_get_by_name(darg_members, - psi_let_exp_get_decl_var_name(inner)); + zend_string *var_name = psi_let_exp_get_decl_var_name(inner); + darg_member = psi_decl_arg_get_by_name(darg_members, var_name); exec_let_func_arrval_inner(func, darg, darg_member, frame_arg, inner, container, frame); + zend_string_release(var_name); } } } else if (func->inner) {