_cairo_pen_init (&gstate->pen_regular, gstate->line_width / 2.0, gstate);
_cairo_gstate_stroke_extents (cairo_gstate_t *gstate,                              double *x1, double *y1,			      double *x2, double *y2){    cairo_status_t status;    cairo_traps_t traps;    cairo_box_t extents;      _cairo_traps_init (&traps);      status = _cairo_path_stroke_to_traps (&gstate->path, gstate, &traps);    if (status)	goto BAIL;    _cairo_traps_extents (&traps, &extents);    *x1 = _cairo_fixed_to_double (extents.p1.x);    *y1 = _cairo_fixed_to_double (extents.p1.y);    *x2 = _cairo_fixed_to_double (extents.p2.x);    *y2 = _cairo_fixed_to_double (extents.p2.y);    cairo_matrix_transform_point (&gstate->ctm_inverse, x1, y1);    cairo_matrix_transform_point (&gstate->ctm_inverse, x2, y2);  BAIL:    _cairo_traps_fini (&traps);      return status;}