output-item: Collapse the inheritance hierarchy into a single struct.
[pspp] / src / output / charts / scree-cairo.c
index f9765c69f242d70f336628db354f19c406333393..726e250856e219ebd56d50f9d4083ceaa6ed8be6 100644 (file)
 #define _(msgid) gettext (msgid)
 
 void
-xrchart_draw_scree (const struct chart_item *chart_item, cairo_t *cr,
+xrchart_draw_scree (const struct chart *chart, cairo_t *cr,
                     struct xrchart_geometry *geom)
 {
-  const struct scree *rc = to_scree (chart_item);
+  const struct scree *rc = to_scree (chart);
   size_t i;
   double min, max;
 
@@ -39,13 +39,15 @@ xrchart_draw_scree (const struct chart_item *chart_item, cairo_t *cr,
 
   gsl_vector_minmax (rc->eval, &min, &max);
 
-  if ( fabs (max) > fabs (min))
+  if (fabs (max) > fabs (min))
     max = fabs (max);
   else
     max = fabs (min);
 
-  xrchart_write_yscale (cr, geom, 0, max, max);
-  xrchart_write_xscale (cr, geom, 0, rc->eval->size + 1, rc->eval->size + 1);
+  if (! xrchart_write_yscale (cr, geom, 0, max))
+    return;
+  if (! xrchart_write_xscale (cr, geom, 0, rc->eval->size + 1))
+    return;
 
   xrchart_vector_start (cr, geom, "");
   for (i = 0 ; i < rc->eval->size; ++i)