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;
}
}
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;
}
}