X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Ftypes%2Fimpl_arg.c;h=adbc021f9e84aeeac8f87387bf0fbaec7b7a6b48;hp=8c0f82d7773a29abf34038738637666e217aef71;hb=c9384515a81cb64d345b299908b2852f51bb8e6e;hpb=2f5af21b263403997e154658635d6b6e6eaab453 diff --git a/src/types/impl_arg.c b/src/types/impl_arg.c index 8c0f82d..adbc021 100644 --- a/src/types/impl_arg.c +++ b/src/types/impl_arg.c @@ -23,19 +23,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *******************************************************************************/ -#ifdef HAVE_CONFIG_H -# include "config.h" -#else -# include "php_config.h" -#endif +#include "php_psi_stdinc.h" +#include "data.h" -#include -#include - -#include "impl_arg.h" - -impl_arg *init_impl_arg(impl_type *type, impl_var *var, impl_def_val *def) { - impl_arg *arg = calloc(1, sizeof(*arg)); +struct psi_impl_arg *psi_impl_arg_init(struct psi_impl_type *type, + struct psi_impl_var *var, struct psi_impl_def_val *def) +{ + struct psi_impl_arg *arg = calloc(1, sizeof(*arg)); arg->type = type; arg->var = var; arg->var->arg = arg; @@ -43,11 +37,29 @@ impl_arg *init_impl_arg(impl_type *type, impl_var *var, impl_def_val *def) { return arg; } -void free_impl_arg(impl_arg *arg) { - free_impl_type(arg->type); - free_impl_var(arg->var); - if (arg->def) { - free_impl_def_val(arg->def); +void psi_impl_arg_free(struct psi_impl_arg **arg_ptr) +{ + if (*arg_ptr) { + struct psi_impl_arg *arg = *arg_ptr; + + *arg_ptr = NULL; + psi_impl_type_free(&arg->type); + psi_impl_var_free(&arg->var); + if (arg->def) { + psi_impl_def_val_free(&arg->def); + } + free(arg); } - free(arg); +} + +void psi_impl_arg_dump(int fd, struct psi_impl_arg *iarg, bool vararg) +{ + psi_impl_type_dump(fd, iarg->type); + dprintf(fd, " "); + psi_impl_var_dump(fd, iarg->var, vararg); + if (iarg->def) { + dprintf(fd, " = "); + psi_impl_def_val_dump(fd, iarg->def); + } + }