]> Nishi Git Mirror - gwion.git/commitdiff
:art: Improve free_type() logic
authorJérémie Astor <astor.jeremie@wanadoo.fr>
Mon, 9 Dec 2019 21:07:36 +0000 (22:07 +0100)
committerJérémie Astor <astor.jeremie@wanadoo.fr>
Mon, 9 Dec 2019 21:07:36 +0000 (22:07 +0100)
src/oo/type.c

index 900bd2b2b3f66f10831f82e95fd455239d94cebc..8f47596fd95e1ef15eb103f753f2c4a3d49c845a 100644 (file)
@@ -7,8 +7,13 @@
 #include "gwion.h"
 #include "tuple.h"
 
+ANN static inline m_bool freeable(const Type t) {
+  return !GET_FLAG(a, nonnull) &&
+    GET_FLAG(a, template) || GET_FLAG(a, global);
+}
+
 ANN static void free_type(Type a, Gwion gwion) {
-  if(GET_FLAG(a, template) || GET_FLAG(a, global)) {
+  if(freeable(a))
     if(GET_FLAG(a, union)) {
       if(a->e->def->union_def) {
         if(!GET_FLAG(a, pure))  { // <=> decl_list