projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix leaks in MEANS command
[pspp]
/
src
/
language
/
stats
/
frequencies.q
diff --git
a/src/language/stats/frequencies.q
b/src/language/stats/frequencies.q
index d7754220fa4efe7fc2a4861ef4a806fb9deb29b8..b5ad8c47793eef15064a887023eead28732c8845 100644
(file)
--- a/
src/language/stats/frequencies.q
+++ b/
src/language/stats/frequencies.q
@@
-499,14
+499,17
@@
postcalc (struct frq_proc *frq, const struct dataset *ds)
histogram = freq_tab_to_hist (frq, &vf->tab, vf->var);
histogram = freq_tab_to_hist (frq, &vf->tab, vf->var);
- chart_item_submit (histogram_chart_create (
+ if ( histogram)
+ {
+ chart_item_submit (histogram_chart_create (
histogram->gsl_hist, var_to_string(vf->var),
vf->tab.valid_cases,
d[FRQ_MEAN],
d[FRQ_STDDEV],
frq->hist->draw_normal));
histogram->gsl_hist, var_to_string(vf->var),
vf->tab.valid_cases,
d[FRQ_MEAN],
d[FRQ_STDDEV],
frq->hist->draw_normal));
- statistic_destroy (&histogram->parent);
+ statistic_destroy (&histogram->parent);
+ }
}
if (frq->pie)
}
if (frq->pie)
@@
-1139,9
+1142,12
@@
freq_tab_to_hist (const struct frq_proc *frq, const struct freq_tab *ft,
/* Freedman-Diaconis' choice of bin width. */
iqr = calculate_iqr (frq);
bin_width = 2 * iqr / pow (valid_freq, 1.0 / 3.0);
/* Freedman-Diaconis' choice of bin width. */
iqr = calculate_iqr (frq);
bin_width = 2 * iqr / pow (valid_freq, 1.0 / 3.0);
- bin_width = chart_rounded_tick (bin_width);
histogram = histogram_create (bin_width, x_min, x_max);
histogram = histogram_create (bin_width, x_min, x_max);
+
+ if ( histogram == NULL)
+ return NULL;
+
for (i = 0; i < ft->n_valid; i++)
{
const struct freq *f = &ft->valid[i];
for (i = 0; i < ft->n_valid; i++)
{
const struct freq *f = &ft->valid[i];