X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcontext.c;h=35cedeeb22f661ce3a920c892a30389ade7b8047;hb=d9a7378b795f32b91e110bd163c019aa30e79084;hp=83a1a28f34b03f26842d89708972ea4f73fdd007;hpb=7e4c03791c729bce5ebe6226a72786191bc67f8f;p=m6w6%2Fext-psi diff --git a/src/context.c b/src/context.c index 83a1a28..35cedee 100644 --- a/src/context.c +++ b/src/context.c @@ -169,7 +169,7 @@ static inline int validate_decl_struct(PSI_Data *data, decl_struct *s) { return 0; } - ZEND_ASSERT(!darg->var->arg); + ZEND_ASSERT(!darg->var->arg || darg->var->arg == darg); darg->var->arg = darg; if (!darg->layout) { @@ -254,7 +254,9 @@ static inline int validate_decl(PSI_Data *data, void *dl, decl *decl) { } return 1; } - +static inline int validate_set_value(PSI_Data *data, set_value *set) { + set-> +} static inline decl *locate_impl_decl(decls *decls, return_stmt *ret) { size_t i; @@ -280,6 +282,9 @@ static inline int validate_impl_ret_stmt(PSI_Data *data, impl *impl) { } return 0; } + if (!validate_impl_set_value(data, impl->stmts->ret.list[0]->set)) { + return 0; + } if (!(impl->decl = locate_impl_decl(data->decls, impl->stmts->ret.list[0]))) { data->error(PSI_WARNING, "Missing declaration for implementation %s", impl->func->name);