Rewrite portable file reader code and incidentally clean up code for
[pspp-builds.git] / src / box-whisker.c
index 2600e8aa6c6d5b02b17155a5ada939683f3b3a20..57930c86e9e3d739baa9273ee994d63fe77b579f 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "chart.h"
 #include <math.h>
+#include <assert.h>
 #include "misc.h"
 
 #include "factor_stats.h"
@@ -74,16 +75,13 @@ boxplot_draw_boxplot(struct chart *ch,
                     double box_centre, 
                     double box_width,
                     struct metrics *m,
-                    /* 
-                    const double hinge[3],
-                    struct weighted_value **wvp,
-                    int n_data,
-                    */
                     const char *name)
 {
   double whisker[2];
   int i;
 
+  assert(m);
+
 
   const double *hinge = m->hinge;
   struct weighted_value **wvp = m->wvp;
@@ -104,6 +102,10 @@ boxplot_draw_boxplot(struct chart *ch,
   const double box_top = 
     ch->data_bottom + ( hinge[2] - ch->y_min ) * ch->ordinate_scale;
 
+  /* Can't really draw a boxplot if there's no data */
+  if ( n_data == 0 ) 
+         return ;
+
   whisker[1] = hinge[2];
   whisker[0] = wvp[0]->v.f;
 
@@ -210,6 +212,9 @@ boxplot_draw_yscale(struct chart *ch , double y_max, double y_min)
   double y_tick;
   double d;
 
+  if ( !ch ) 
+     return ;
+
   ch->y_max  = y_max;
   ch->y_min  = y_min;