intersecting pcomputes
[pspp] / src / language / stats / ctables.c
index eed3a8e3c8b57554403b20ea46d01cf1d61b3ca9..25908eb65d5fa14626fd3b34e771ef7f2b909645 100644 (file)
@@ -1395,6 +1395,7 @@ ctables_destroy (struct ctables *ct)
       hmap_delete (&ct->postcomputes, &pc->hmap_node);
       free (pc);
     }
+  hmap_destroy (&ct->postcomputes);
 
   fmt_settings_uninit (&ct->ctables_formats);
   pivot_table_look_unref (ct->look);
@@ -4239,6 +4240,8 @@ ctables_pcexpr_evaluate (const struct ctables_pcexpr_evaluate_ctx *ctx,
 
     case CTPO_CAT_NRANGE:
     case CTPO_CAT_SRANGE:
+    case CTPO_CAT_MISSING:
+    case CTPO_CAT_OTHERNM:
       {
         struct ctables_cell_value cv = {
           .category = ctables_find_category_for_postcompute (ctx->section->table->ctables->dict, ctx->cats, ctx->parse_format, e)
@@ -4260,8 +4263,6 @@ ctables_pcexpr_evaluate (const struct ctables_pcexpr_evaluate_ctx *ctx,
       }
 
     case CTPO_CAT_NUMBER:
-    case CTPO_CAT_MISSING:
-    case CTPO_CAT_OTHERNM:
     case CTPO_CAT_SUBTOTAL:
     case CTPO_CAT_TOTAL:
       {