X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Ftypes%2Flet_stmt.c;h=77375e881b85a13cedb93e10f32f95c60824894a;hb=4bf8ff5e477da2fa4f82518bb947055c2c0374d6;hp=9ada4635e63696a128cbf33ac348fb59852b12cd;hpb=c9384515a81cb64d345b299908b2852f51bb8e6e;p=m6w6%2Fext-psi diff --git a/src/types/let_stmt.c b/src/types/let_stmt.c index 9ada463..77375e8 100644 --- a/src/types/let_stmt.c +++ b/src/types/let_stmt.c @@ -23,12 +23,16 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *******************************************************************************/ -#include "php_psi_stdinc.h" +#ifdef HAVE_CONFIG_H +# include "config.h" +#else +# include "php_config.h" +#endif #include "data.h" struct psi_let_stmt *psi_let_stmt_init(struct psi_let_exp *exp) { - struct psi_let_stmt *let = calloc(1, sizeof(*let)); + struct psi_let_stmt *let = pecalloc(1, sizeof(*let), 1); let->exp = exp; return let; @@ -43,18 +47,16 @@ void psi_let_stmt_free(struct psi_let_stmt **stmt_ptr) if (stmt->exp) { psi_let_exp_free(&stmt->exp); } - if (stmt->token) { - free(stmt->token); - } + psi_token_free(&stmt->token); free(stmt); } } -void psi_let_stmt_dump(int fd, struct psi_let_stmt *let) +void psi_let_stmt_dump(struct psi_dump *dump, struct psi_let_stmt *let) { - dprintf(fd, "\t%s ", let->exp->kind == PSI_LET_TMP ? "temp" : "let"); - psi_let_exp_dump(fd, let->exp, 1, 1); - dprintf(fd, "\n"); + PSI_DUMP(dump, "\t%s ", let->exp->kind == PSI_LET_TMP ? "temp" : "let"); + psi_let_exp_dump(dump, let->exp, 1, 1); + PSI_DUMP(dump, "\n"); } bool psi_let_stmts_validate(struct psi_data *data, struct psi_validate_scope *scope) @@ -77,14 +79,14 @@ bool psi_let_stmts_validate(struct psi_data *data, struct psi_validate_scope *sc if (!let->exp->var) { data->error(data, let->token, PSI_WARNING, "Missing variable in `let` statement for implementation %s", - scope->impl->func->name); + scope->impl->func->name->val); return false; } if (!psi_impl_get_decl_arg(scope->impl, let_var)) { data->error(data, let_var->token, PSI_WARNING, "Unknown variable '%s' in `let` statement of implementation '%s'", - let_var->name, scope->impl->func->name); + let_var->name->val, scope->impl->func->name->val); return false; } switch (let->exp->kind) { @@ -100,7 +102,7 @@ bool psi_let_stmts_validate(struct psi_data *data, struct psi_validate_scope *sc if (let_ivar && !psi_impl_get_arg(scope->impl, let_ivar)) { data->error(data, let_var->token, PSI_WARNING, "Unknown variable '%s' in `let` statement of implementation '%s'", - let_ivar->name, scope->impl->func->name); + let_ivar->name->val, scope->impl->func->name->val); return false; } @@ -120,10 +122,11 @@ bool psi_let_stmts_validate(struct psi_data *data, struct psi_validate_scope *sc data->error(data, scope->impl->func->token, PSI_WARNING, "Missing `let` statement for arg '%s %s%s'" " of declaration '%s' for implementation '%s'", - darg->type->name, + darg->type->name->val, psi_t_indirection(darg->var->pointer_level), - darg->var->name, scope->impl->decl->func->var->name, - scope->impl->func->name); + darg->var->name->val, + scope->impl->decl->func->var->name->val, + scope->impl->func->name->val); return false; } }