Make categoricals own its interactions
authorJohn Darrington <john@darrington.wattle.id.au>
Fri, 3 Aug 2012 19:35:11 +0000 (21:35 +0200)
committerJohn Darrington <john@darrington.wattle.id.au>
Fri, 3 Aug 2012 19:35:11 +0000 (21:35 +0200)
src/language/stats/examine.c
src/language/stats/glm.c
src/math/categoricals.c

index 3288f5bd119f7441acefda3a5fc2c1e0be83d953..fc67ffaf2a4daba6a56d7f778292867e3f7aa059 100644 (file)
@@ -2236,6 +2236,7 @@ cmd_examine (struct lexer *lexer, struct dataset *ds)
     {
       examine.n_iacts--;
       examine.iacts = &iacts_mem[1];
+      interaction_destroy (iacts_mem[0]);
     }
 
 
@@ -2291,9 +2292,6 @@ cmd_examine (struct lexer *lexer, struct dataset *ds)
 
   caseproto_unref (examine.ex_proto);
 
-  for (i = 0; i < examine.n_iacts; ++i)
-    interaction_destroy (examine.iacts[i]);
-
   free (examine.ptiles);
   free (examine.dep_vars);
   pool_destroy (examine.pool);
index 82f1db7254d62f3a75072a84f366e42137acd249..6e4d31c4de0fd0e4560dfadbf2eb6ec68cfd9ab7 100644 (file)
@@ -324,8 +324,6 @@ cmd_glm (struct lexer *lexer, struct dataset *ds)
 
   const_var_set_destroy (factors);
   free (glm.factor_vars);
-  for (i = 0 ; i < glm.n_interactions; ++i)
-    interaction_destroy (glm.interactions[i]);
   free (glm.interactions);
   free (glm.dep_vars);
 
index a7cf3a114624d4de3a9ea5d184a516b85a1700fa..586037b585c3a7d91aabf94da12e61a35d0ad8dc 100644 (file)
@@ -261,6 +261,7 @@ categoricals_destroy (struct categoricals *cat)
       free (cat->iap[i].enc_sum);
       free (cat->iap[i].df_prod);
       hmap_destroy (&cat->iap[i].ivmap);
+      interaction_destroy (cat->iap[i].iact);
     }
 
   /* Interate over each variable and delete its value map */