projects
/
m6w6
/
ext-psi
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
fix leaks
[m6w6/ext-psi]
/
src
/
types
/
impl.c
diff --git
a/src/types/impl.c
b/src/types/impl.c
index e9bd39bebec5723c636a5731e10e7043cca91e5e..d2c87b9eff47818ab3fa386b57d7de9cb7b315cc 100644
(file)
--- a/
src/types/impl.c
+++ b/
src/types/impl.c
@@
-116,24
+116,27
@@
void psi_impl_dump(int fd, struct psi_impl *impl)
dprintf(fd, "}\n");
}
dprintf(fd, "}\n");
}
-bool psi_impl_validate(struct psi_data *data, struct psi_impl *impl)
+bool psi_impl_validate(struct psi_data *data, struct psi_impl *impl,
+ struct psi_validate_scope *scope)
{
{
- if (!psi_impl_func_validate(data, impl->func)) {
+ scope->impl = impl;
+
+ if (!psi_impl_func_validate(data, impl->func, scope)) {
return false;
}
return false;
}
- if (!psi_return_stmt_validate(data,
impl
)) {
+ if (!psi_return_stmt_validate(data,
scope
)) {
return false;
}
return false;
}
- if (!psi_let_stmts_validate(data,
impl
)) {
+ if (!psi_let_stmts_validate(data,
scope
)) {
return false;
}
return false;
}
- if (!psi_set_stmts_validate(data,
impl
)) {
+ if (!psi_set_stmts_validate(data,
scope
)) {
return false;
}
return false;
}
- if (!psi_assert_stmts_validate(data,
impl
)) {
+ if (!psi_assert_stmts_validate(data,
scope
)) {
return false;
}
return false;
}
- if (!psi_free_stmts_validate(data,
impl
)) {
+ if (!psi_free_stmts_validate(data,
scope
)) {
return false;
}
return true;
return false;
}
return true;
@@
-187,7
+190,7
@@
struct psi_decl_arg *psi_impl_get_decl_arg(struct psi_impl *impl,
struct psi_decl_var *arg;
while (psi_plist_get(ret->exp->args, i++, &arg)) {
struct psi_decl_var *arg;
while (psi_plist_get(ret->exp->args, i++, &arg)) {
- if (
!strcmp
(var->name, arg->name)) {
+ if (
zend_string_equals
(var->name, arg->name)) {
return var->arg = arg->arg;
}
}
return var->arg = arg->arg;
}
}
@@
-218,7
+221,7
@@
struct psi_impl_arg *psi_impl_get_arg(struct psi_impl *impl,
struct psi_impl_arg *iarg;
while (psi_plist_get(impl->func->args, i++, &iarg)) {
struct psi_impl_arg *iarg;
while (psi_plist_get(impl->func->args, i++, &iarg)) {
- if (
!strcmp
(var->name, iarg->var->name)) {
+ if (
zend_string_equals
(var->name, iarg->var->name)) {
return var->arg = iarg;
}
}
return var->arg = iarg;
}
}
@@
-235,7
+238,7
@@
struct psi_decl_arg *psi_impl_get_temp_let_arg(struct psi_impl *impl,
if (let->exp->kind != PSI_LET_TMP) {
continue;
}
if (let->exp->kind != PSI_LET_TMP) {
continue;
}
- if (
strcmp
(let->exp->var->name, var->name)) {
+ if (
!zend_string_equals
(let->exp->var->name, var->name)) {
continue;
}
return var->arg = let->exp->var->arg;
continue;
}
return var->arg = let->exp->var->arg;