X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Ftypes%2Fassert_stmt.c;h=9ded0ee9910d3669bf45e05232c7f85f8658c7ef;hp=084f9fc192431803b12d1c99d8875bf27fe4b93f;hb=2fa436074ca9a5e87f39b696de832fa2188fcfc6;hpb=f15288e185e65bcdfde87c217fb6bd7ff12eb653 diff --git a/src/types/assert_stmt.c b/src/types/assert_stmt.c index 084f9fc..9ded0ee 100644 --- a/src/types/assert_stmt.c +++ b/src/types/assert_stmt.c @@ -43,12 +43,10 @@ void psi_assert_stmt_free(struct psi_assert_stmt **stmt_ptr) if (*stmt_ptr) { struct psi_assert_stmt *stmt = *stmt_ptr; + *stmt_ptr = NULL; psi_num_exp_free(&stmt->exp); - if (stmt->token) { - free(stmt->token); - } + psi_token_free(&stmt->token); free(stmt); - *stmt_ptr = NULL; } } @@ -62,20 +60,20 @@ void psi_assert_stmt_dump(int fd, struct psi_assert_stmt *stmt) bool psi_assert_stmt_exec(struct psi_assert_stmt *stmt, struct psi_call_frame *frame) { impl_val res, chk; - token_t res_type = psi_num_exp_exec(stmt->exp, &res, frame); + token_t res_type = psi_num_exp_exec(stmt->exp, &res, frame, NULL); psi_calc_cast(res_type, &res, PSI_T_UINT8, &chk); return chk.u8; } -bool psi_assert_stmts_validate(struct psi_data *data, struct psi_impl *impl) +bool psi_assert_stmts_validate(struct psi_data *data, struct psi_validate_scope *scope) { size_t i = 0; struct psi_assert_stmt *ass; /* we can have multiple assert stmts */ - while (psi_plist_get(impl->stmts.ass, i++, &ass)) { - if (!psi_num_exp_validate(data, ass->exp, impl, NULL, NULL, NULL, NULL)) { + while (psi_plist_get(scope->impl->stmts.ass, i++, &ass)) { + if (!psi_num_exp_validate(data, ass->exp, scope)) { return false; } }