projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
interned strings++
[m6w6/ext-psi]
/
src
/
types
/
let_func.c
diff --git
a/src/types/let_func.c
b/src/types/let_func.c
index 468d215ae3cdf8559488e78a780fe5b32762ce6e..fd8b49f968ed709610a41d156a84453260064137 100644
(file)
--- a/
src/types/let_func.c
+++ b/
src/types/let_func.c
@@
-35,7
+35,7
@@
struct psi_let_func *psi_let_func_init(token_t type, zend_string *name,
struct psi_impl_var *var)
{
struct psi_let_func *psi_let_func_init(token_t type, zend_string *name,
struct psi_impl_var *var)
{
- struct psi_let_func *func =
calloc(1, sizeof(*func)
);
+ struct psi_let_func *func =
pecalloc(1, sizeof(*func), 1
);
func->type = type;
func->name = zend_string_copy(name);
func->var = var;
func->type = type;
func->name = zend_string_copy(name);
func->var = var;
@@
-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);
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 */
}
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)) {
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);
exec_let_func_arrval_inner(func, darg, darg_member, frame_arg,
inner, container, frame);
+ zend_string_release(var_name);
}
}
} else if (func->inner) {
}
}
} else if (func->inner) {