const ae_flag flag;
};
+ANN static inline void func_checker_clean(const Gwi gwi, struct func_checker *ck) {
+ if(ck->tmpl)
+ free_id_list(gwi->gwion->mp, ck->tmpl);
+}
+
ANN static m_bool check_typename_def(const Gwi gwi, struct func_checker *ck) {
const m_str base = ck->name;
const m_str c = strchr(ck->name, '>');
CHECK_BB(check_typename_def(gwi, &ck))
if(gwi_func_valid(gwi, &ck) > 0)
return GW_OK;
- if(ck.tmpl)
- free_id_list(gwi->gwion->mp, ck.tmpl);
+ func_checker_clean(gwi, &ck);
return GW_ERROR;
}
base->tmpl = new_tmpl(gwi->gwion->mp, ck.tmpl, -1);
return new_fptr_def(env->gwion->mp, base, flag | ae_flag_builtin);
}
- if(ck.tmpl)
- free_id_list(gwi->gwion->mp, ck.tmpl);
+ func_checker_clean(gwi, &ck);
return NULL;
}
free_type_def(gwi->gwion->mp, tdef);
return t;
}
- if(ck.tmpl)
- free_id_list(gwi->gwion->mp, ck.tmpl);
+ func_checker_clean(gwi, &ck);
return NULL;
}