diff --git a/src/cairo-path-bounds.c b/src/cairo-path-bounds.c index 5b60cf1c3..49b4ab983 100644 --- a/src/cairo-path-bounds.c +++ b/src/cairo-path-bounds.c @@ -165,18 +165,16 @@ _cairo_path_fixed_bounds (cairo_path_fixed_t *path, _cairo_path_bounder_curve_to, _cairo_path_bounder_close_path, &bounder); - if (status) { - *x1 = *y1 = *x2 = *y2 = 0.0; - _cairo_path_bounder_fini (&bounder); - return status; + if (status || ! bounder.has_point) { + *x1 = *y1 = *x2 = *y2 = 0.; + } else { + *x1 = _cairo_fixed_to_double (bounder.min_x); + *y1 = _cairo_fixed_to_double (bounder.min_y); + *x2 = _cairo_fixed_to_double (bounder.max_x); + *y2 = _cairo_fixed_to_double (bounder.max_y); } - *x1 = _cairo_fixed_to_double (bounder.min_x); - *y1 = _cairo_fixed_to_double (bounder.min_y); - *x2 = _cairo_fixed_to_double (bounder.max_x); - *y2 = _cairo_fixed_to_double (bounder.max_y); - _cairo_path_bounder_fini (&bounder); - return CAIRO_STATUS_SUCCESS; + return status; }