projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
session: Fix two memory leaks.
[pspp]
/
src
/
language
/
stats
/
oneway.c
diff --git
a/src/language/stats/oneway.c
b/src/language/stats/oneway.c
index 9d31b4201f20ca2c0d552a110e74c2d2ff69aad9..a30026e8b4c38c283fcc74a7524fdec9d8caed3b 100644
(file)
--- a/
src/language/stats/oneway.c
+++ b/
src/language/stats/oneway.c
@@
-52,6
+52,7
@@
/* Workspace variable for each dependent variable */
struct per_var_ws
{
/* Workspace variable for each dependent variable */
struct per_var_ws
{
+ struct interaction *iact;
struct categoricals *cat;
struct covariance *cov;
struct levene *nl;
struct categoricals *cat;
struct covariance *cov;
struct levene *nl;
@@
-702,15
+703,14
@@
run_oneway (const struct oneway_spec *cmd,
for (v = 0; v < cmd->n_vars; ++v)
{
for (v = 0; v < cmd->n_vars; ++v)
{
- struct interaction *inter = interaction_create (cmd->indep_var);
-
struct payload payload;
payload.create = makeit;
payload.update = updateit;
payload.calculate = NULL;
payload.destroy = killit;
struct payload payload;
payload.create = makeit;
payload.update = updateit;
payload.calculate = NULL;
payload.destroy = killit;
- ws.vws[v].cat = categoricals_create (&inter, 1, cmd->wv,
+ ws.vws[v].iact = interaction_create (cmd->indep_var);
+ ws.vws[v].cat = categoricals_create (&ws.vws[v].iact, 1, cmd->wv,
cmd->exclude, cmd->exclude);
categoricals_set_payload (ws.vws[v].cat, &payload,
cmd->exclude, cmd->exclude);
categoricals_set_payload (ws.vws[v].cat, &payload,
@@
-874,7
+874,9
@@
run_oneway (const struct oneway_spec *cmd,
covariance_destroy (ws.vws[v].cov);
levene_destroy (ws.vws[v].nl);
dd_destroy (ws.dd_total[v]);
covariance_destroy (ws.vws[v].cov);
levene_destroy (ws.vws[v].nl);
dd_destroy (ws.dd_total[v]);
+ interaction_destroy (ws.vws[v].iact);
}
}
+
free (ws.vws);
free (ws.dd_total);
}
free (ws.vws);
free (ws.dd_total);
}