zend_string'ify
[m6w6/ext-psi] / src / types / assert_stmt.c
index 084f9fc192431803b12d1c99d8875bf27fe4b93f..9ded0ee9910d3669bf45e05232c7f85f8658c7ef 100644 (file)
@@ -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;
                }
        }