]> Nishi Git Mirror - gwion.git/commitdiff
:art: improve nspc cleaning
authorfennecdjay <fennecdjay@gmail.com>
Sun, 14 Aug 2022 18:56:10 +0000 (20:56 +0200)
committerfennecdjay <fennecdjay@gmail.com>
Sun, 14 Aug 2022 18:56:10 +0000 (20:56 +0200)
src/env/nspc.c

index ff9a00f5b41647d385d94b893a09762f39b0c464..a00c62728874061b9c24d8d909da5abbe5b62787 100644 (file)
@@ -48,10 +48,11 @@ ANN static void free_nspc_value(const Nspc a, Gwion gwion) {
   struct scope_iter iter = {a->info->value, 0, 0};
   Value             v;
   while (scope_iter(&iter, &v) > 0) {
-    if (isa(v->type, gwion->type[et_object]) > 0)
-      nspc_release_object(a, v, gwion);
-    else if (tflag(v->type, tflag_struct))
-      nspc_release_struct(a, v, gwion);
+    if (tflag(v->type, tflag_cdef)) {
+      if (!tflag(v->type, tflag_struct))
+        nspc_release_object(a, v, gwion);
+      else nspc_release_struct(a, v, gwion);
+    }
     value_remref(v, gwion);
   }
   free_scope(gwion->mp, a->info->value);