X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;ds=sidebyside;f=src%2Ftypes%2Ffree_stmt.c;h=18677af8038cc788fd01da252437fd8f9a010d63;hb=09529efcde471127419e141807b83b37077003a0;hp=9b6544c70d7b462c9e50c5dd987c113a83fdab42;hpb=7df12c88a4e14611a2585d6e7c994c59e8d7485a;p=m6w6%2Fext-psi diff --git a/src/types/free_stmt.c b/src/types/free_stmt.c index 9b6544c..18677af 100644 --- a/src/types/free_stmt.c +++ b/src/types/free_stmt.c @@ -39,9 +39,7 @@ 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_token_free(&f->token); psi_plist_free(f->exps); free(f); } @@ -62,18 +60,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; } }