Merge branch 'slimconfigure'
[m6w6/ext-psi] / src / types / impl_arg.c
index 8c0f82d7773a29abf34038738637666e217aef71..adbc021f9e84aeeac8f87387bf0fbaec7b7a6b48 100644 (file)
  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 <stdlib.h>
-#include <stdio.h>
-
-#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);
+       }
+
 }