X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Ftypes%2Flet_callback.c;h=f5c7a46299f63e44818d8bb00bda4e53388d03ab;hb=698841dfdd4d70d24e0b7af25ac7100bc2cb26a4;hp=45639f82449dbded4f8c76252f6a796915ea9e9d;hpb=c9384515a81cb64d345b299908b2852f51bb8e6e;p=m6w6%2Fext-psi diff --git a/src/types/let_callback.c b/src/types/let_callback.c index 45639f8..f5c7a46 100644 --- a/src/types/let_callback.c +++ b/src/types/let_callback.c @@ -23,13 +23,17 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *******************************************************************************/ -#include "php_psi_stdinc.h" +#ifdef HAVE_CONFIG_H +# include "config.h" +#else +# include "php_config.h" +#endif #include "data.h" struct psi_let_callback *psi_let_callback_init(struct psi_let_func *func, struct psi_plist *args, struct psi_plist *cb_args) { - struct psi_let_callback *cb = calloc(1, sizeof(*cb)); + struct psi_let_callback *cb = pecalloc(1, sizeof(*cb), 1); cb->func = func; cb->args = args; cb->cb_args = cb_args; @@ -47,9 +51,7 @@ void psi_let_callback_free(struct psi_let_callback **cb_ptr) if (cb->cb_args) { psi_plist_free(cb->cb_args); } - if (cb->token) { - free(cb->token); - } + psi_token_free(&cb->token); free(cb); } } @@ -67,7 +69,7 @@ static inline bool psi_let_callback_validate_decl_args(struct psi_data *data, data->error(data, cb->token, PSI_WARNING, "Argument count of callback statement of implementation '%s'" "does not match argument count of callback declaration '%s'", - impl->func->name, cb_decl->func->var->name); + impl->func->name->val, cb_decl->func->var->name->val); return false; } @@ -91,7 +93,7 @@ bool psi_let_callback_validate(struct psi_data *data, struct psi_let_callback *c if (cb_type->type != PSI_T_FUNCTION) { data->error(data, cb_var->token, PSI_WARNING, "Expected a function: %s", - cb_var->name); + cb_var->name->val); return false; } cb->decl = cb_type->real.func; @@ -127,37 +129,37 @@ bool psi_let_callback_validate(struct psi_data *data, struct psi_let_callback *c return true; } -void psi_let_callback_dump(int fd, struct psi_let_callback *callback, +void psi_let_callback_dump(struct psi_dump *dump, struct psi_let_callback *callback, unsigned level) { - dprintf(fd, "callback("); + PSI_DUMP(dump, "callback("); if (callback->cb_args) { size_t i = 0; struct psi_decl_var *cb_arg; while (psi_plist_get(callback->cb_args, i++, &cb_arg)) { if (i > 1) { - dprintf(fd, ", "); + PSI_DUMP(dump, ", "); } - psi_decl_var_dump(fd, cb_arg); + psi_decl_var_dump(dump, cb_arg); } } - dprintf(fd, ") as %s(%s(", - callback->func->name, - callback->func->var->name); + PSI_DUMP(dump, ") as %s(%s(", + callback->func->name->val, + callback->func->var->name->val); if (callback->args) { size_t i = 0, last = psi_plist_count(callback->args); struct psi_set_exp *set; - dprintf(fd, "\n"); + PSI_DUMP(dump, "\n"); ++level; while (psi_plist_get(callback->args, i++, &set)) { - psi_set_exp_dump(fd, set, level, i == last); - dprintf(fd, "\n"); + psi_set_exp_dump(dump, set, level, i == last); + PSI_DUMP(dump, "\n"); } --level; - dprintf(fd, "%s", psi_t_indent(level)); + PSI_DUMP(dump, "%s", psi_t_indent(level)); } - dprintf(fd, "))"); + PSI_DUMP(dump, "))"); }