X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Ftypes%2Ffree_stmt.c;h=4e5a10c528c71452de7d69e4fd76091663051493;hp=980b134220aef7658ca4a5df0f6a373af57f5c34;hb=c9384515a81cb64d345b299908b2852f51bb8e6e;hpb=9bcb1df0786a8193d65949c857baaba2f4296e84 diff --git a/src/types/free_stmt.c b/src/types/free_stmt.c index 980b134..4e5a10c 100644 --- a/src/types/free_stmt.c +++ b/src/types/free_stmt.c @@ -39,6 +39,9 @@ void psi_free_stmt_free(struct psi_free_stmt **f_ptr) struct psi_free_stmt *f = *f_ptr; *f_ptr = NULL; + if (f->token) { + free(f->token); + } psi_plist_free(f->exps); free(f); } @@ -59,18 +62,18 @@ void psi_free_stmt_dump(int fd, struct psi_free_stmt *fre) dprintf(fd, ";\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; } }