X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Ftypes%2Ffree_stmt.c;h=b6254b393eaeb26e809469566da7986f17679fca;hb=d9f1274417f65d980e143700726d1527462123d3;hp=980b134220aef7658ca4a5df0f6a373af57f5c34;hpb=9bcb1df0786a8193d65949c857baaba2f4296e84;p=m6w6%2Fext-psi diff --git a/src/types/free_stmt.c b/src/types/free_stmt.c index 980b134..b6254b3 100644 --- a/src/types/free_stmt.c +++ b/src/types/free_stmt.c @@ -28,7 +28,7 @@ struct psi_free_stmt *psi_free_stmt_init(struct psi_plist *exps) { - struct psi_free_stmt *f = calloc(1, sizeof(*f)); + struct psi_free_stmt *f = pecalloc(1, sizeof(*f), 1); f->exps = exps; return f; } @@ -39,38 +39,39 @@ void psi_free_stmt_free(struct psi_free_stmt **f_ptr) struct psi_free_stmt *f = *f_ptr; *f_ptr = NULL; + psi_token_free(&f->token); psi_plist_free(f->exps); free(f); } } -void psi_free_stmt_dump(int fd, struct psi_free_stmt *fre) +void psi_free_stmt_dump(struct psi_dump *dump, struct psi_free_stmt *fre) { size_t i; struct psi_free_exp *exp; - dprintf(fd, "\tfree "); + PSI_DUMP(dump, "\tfree "); for (i = 0; psi_plist_get(fre->exps, i, &exp); ++i) { if (i) { - dprintf(fd, ", "); + PSI_DUMP(dump, ", "); } - psi_free_exp_dump(fd, exp); + psi_free_exp_dump(dump, exp); } - dprintf(fd, ";\n"); + PSI_DUMP(dump, ";\n"); } -bool psi_free_stmts_validate(struct psi_data *data, struct psi_impl *impl) +bool psi_free_stmts_validate(struct psi_data *data, struct psi_validate_scope *scope) { size_t i; struct psi_free_stmt *fre; /* we can have any count of free stmts; freeing any out vars */ - for (i = 0; psi_plist_get(impl->stmts.fre, i, &fre); ++i) { + for (i = 0; psi_plist_get(scope->impl->stmts.fre, i, &fre); ++i) { size_t j; struct psi_free_exp *exp; for (j = 0; psi_plist_get(fre->exps, j, &exp); ++j) { - if (!psi_free_exp_validate(data, exp, impl)) { + if (!psi_free_exp_validate(data, exp, scope)) { return false; } }