projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix bug #21108.
[pspp-builds.git]
/
src
/
language
/
stats
/
descriptives.c
diff --git
a/src/language/stats/descriptives.c
b/src/language/stats/descriptives.c
index 3fd23c8f289217de552f7d6ffe543d838e71e205..0b0d25bd23ce92c80e50efd3e83cc2fac5419810 100644
(file)
--- a/
src/language/stats/descriptives.c
+++ b/
src/language/stats/descriptives.c
@@
-699,16
+699,18
@@
calc_descriptives (struct dsc_proc *dsc, struct casereader *group,
size_t i;
if (!casereader_peek (group, 0, &c))
size_t i;
if (!casereader_peek (group, 0, &c))
- return;
+ {
+ casereader_destroy (group);
+ return;
+ }
output_split_file_values (ds, &c);
case_destroy (&c);
group = casereader_create_filter_weight (group, dataset_dict (ds),
NULL, NULL);
output_split_file_values (ds, &c);
case_destroy (&c);
group = casereader_create_filter_weight (group, dataset_dict (ds),
NULL, NULL);
- casereader_split (group, &pass1, &pass2);
- if (dsc->max_moment <= MOMENT_MEAN)
- casereader_destroy (pass2);
+ pass1 = group;
+ pass2 = dsc->max_moment <= MOMENT_MEAN ? NULL : casereader_clone (pass1);
for (i = 0; i < dsc->var_cnt; i++)
{
for (i = 0; i < dsc->var_cnt; i++)
{
@@
-758,7
+760,10
@@
calc_descriptives (struct dsc_proc *dsc, struct casereader *group,
}
}
if (!casereader_destroy (pass1))
}
}
if (!casereader_destroy (pass1))
- return;
+ {
+ casereader_destroy (pass2);
+ return;
+ }
/* Second pass for higher-order moments. */
if (dsc->max_moment > MOMENT_MEAN)
/* Second pass for higher-order moments. */
if (dsc->max_moment > MOMENT_MEAN)