Fix bug where attempting to rendering an empty bar chart would crash
authorJohn Darrington <john@darrington.wattle.id.au>
Sun, 21 Mar 2021 21:19:25 +0000 (22:19 +0100)
committerJohn Darrington <john@darrington.wattle.id.au>
Sun, 21 Mar 2021 21:22:01 +0000 (22:22 +0100)
src/language/stats/frequencies.c

index 736b6ae55599f4c6340fbce94e10d8e74c4206cf..a6ef914b03be4f34a17fabfb2c50b4fa954ef5a3 100644 (file)
@@ -1489,10 +1489,13 @@ do_barchart(const struct frq_chart *bar, const struct variable **var,
   int n_slices;
   struct freq **slices = pick_cat_counts_ptr (bar, frq_tab, &n_slices);
 
-  chart_submit (barchart_create (var, 1,
-                                 (bar->y_scale == FRQ_FREQ) ? _("Count") : _("Percent"),
-                                 (bar->y_scale == FRQ_PERCENT),
-                                 slices, n_slices));
+  if (n_slices < 1)
+    msg (SW, _("Omitting bar chart, which has no values."));
+  else
+    chart_submit (barchart_create (var, 1,
+                                   (bar->y_scale == FRQ_FREQ) ? _("Count") : _("Percent"),
+                                   (bar->y_scale == FRQ_PERCENT),
+                                   slices, n_slices));
   free (slices);
 }