} decl_type;
static inline decl_type *init_decl_type(token_t type, char *name) {
- decl_type *t = malloc(sizeof(*t));
+ decl_type *t = calloc(1, sizeof(*t));
t->type = type;
t->name = strdup(name);
- t->real = NULL;
return t;
}
static inline void free_decl(decl *d) {
free_decl_abi(d->abi);
free_decl_arg(d->func);
- free_decl_args(d->args);
+ if (d->args) {
+ free_decl_args(d->args);
+ }
free(d);
}
}
static inline void free_decl_struct(decl_struct *s) {
- free_decl_args(s->args);
+ if (s->args) {
+ free_decl_args(s->args);
+ }
free(s->name);
free(s);
}