projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix memory leak in data_in
[pspp]
/
src
/
math
/
covariance.c
diff --git
a/src/math/covariance.c
b/src/math/covariance.c
index dc3166923d7ddff670d903274caef1dfe548beb4..61f54f50752704e7e9717378574930f3a01b4752 100644
(file)
--- a/
src/math/covariance.c
+++ b/
src/math/covariance.c
@@
-135,7
+135,7
@@
covariance_1pass_create (size_t n_vars, const struct variable **vars,
const struct variable *weight, enum mv_class exclude)
{
size_t i;
const struct variable *weight, enum mv_class exclude)
{
size_t i;
- struct covariance *cov = x
m
alloc (sizeof *cov);
+ struct covariance *cov = x
z
alloc (sizeof *cov);
cov->passes = 1;
cov->state = 0;
cov->passes = 1;
cov->state = 0;
@@
-156,7
+156,8
@@
covariance_1pass_create (size_t n_vars, const struct variable **vars,
cov->n_cm = (n_vars * (n_vars - 1) ) / 2;
cov->n_cm = (n_vars * (n_vars - 1) ) / 2;
- cov->cm = xcalloc (sizeof *cov->cm, cov->n_cm);
+ if (cov->n_cm > 0)
+ cov->cm = xcalloc (sizeof *cov->cm, cov->n_cm);
cov->categoricals = NULL;
return cov;
cov->categoricals = NULL;
return cov;
@@
-266,6
+267,7
@@
get_val (const struct covariance *cov, int i, const struct ccase *c)
return categoricals_get_binary_by_subscript (cov->categoricals, i - cov->n_vars, c);
}
return categoricals_get_binary_by_subscript (cov->categoricals, i - cov->n_vars, c);
}
+#if 0
void
dump_matrix (const gsl_matrix *m)
{
void
dump_matrix (const gsl_matrix *m)
{
@@
-278,6
+280,7
@@
dump_matrix (const gsl_matrix *m)
printf ("\n");
}
}
printf ("\n");
}
}
+#endif
/* Call this function for every case in the data set */
void
/* Call this function for every case in the data set */
void
@@
-642,7
+645,6
@@
static const gsl_matrix *
covariance_calculate_single_pass_unnormalized (struct covariance *cov)
{
size_t i, j;
covariance_calculate_single_pass_unnormalized (struct covariance *cov)
{
size_t i, j;
- size_t m;
for (i = 0 ; i < cov->dim; ++i)
{
for (i = 0 ; i < cov->dim; ++i)
{