X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fmath%2Fcategoricals.c;h=83326c3f006789814c4930feed8d85d15db95155;hb=a0ee1f3ba1dd37945983ea651c98b49b318d3e2f;hp=30c4c567ce607bc1baaeaceeab599c86ba2fd1f5;hpb=5cab4cf3322f29c0ed7134d23740e07382914f20;p=pspp diff --git a/src/math/categoricals.c b/src/math/categoricals.c index 30c4c567ce..83326c3f00 100644 --- a/src/math/categoricals.c +++ b/src/math/categoricals.c @@ -276,6 +276,7 @@ categoricals_destroy (struct categoricals *cat) free (cat->iap[i].enc_sum); hmap_destroy (&cat->iap[i].ivmap); } + free (cat->iap); /* Interate over each variable and delete its value map. @@ -322,7 +323,7 @@ struct categoricals * categoricals_create (struct interaction *const *inter, size_t n_inter, const struct variable *wv, enum mv_class fctr_excl) { - struct categoricals *cat = xzalloc (sizeof *cat); + struct categoricals *cat = XZALLOC (struct categoricals); cat->iap = pool_calloc (cat->pool, n_inter, sizeof *cat->iap); cat->n_iap = n_inter; cat->wv = wv; @@ -366,7 +367,7 @@ categoricals_update (struct categoricals *cat, const struct ccase *c) assert (!cat->cat_to_iact); double weight; - weight = cat->wv ? case_data (c, cat->wv)->f : 1.0; + weight = cat->wv ? case_num (c, cat->wv) : 1.0; weight = var_force_valid_weight (cat->wv, weight, NULL); /* Update the frequency table for each variable. */ @@ -382,7 +383,7 @@ categoricals_update (struct categoricals *cat, const struct ccase *c) { valn = pool_malloc (cat->pool, sizeof *valn); valn->index = -1; - value_init (&valn->val, width); + value_init_pool (cat->pool, &valn->val, width); value_copy (&valn->val, val, width); hmap_insert (&vn->valmap, &valn->node, hash); } @@ -479,7 +480,7 @@ categoricals_done (const struct categoricals *cat_) return; } - struct value_node **nodes = xcalloc (sizeof *nodes, n_vals); + struct value_node **nodes = XCALLOC (n_vals, struct value_node *); int x = 0; struct value_node *valnd; HMAP_FOR_EACH (valnd, struct value_node, node, &vn->valmap)