/* fst_half and snd_half must be different, but they can be the same as nodes.  */
static void split_bezier(cairo_point_double_t p[4], cairo_point_double_t fst_half[4], cairo_point_double_t snd_half[4])
/* fst_half and snd_half must be different, but they can be the same as nodes.  */
static void split_bezier(cairo_point_double_t p[4], cairo_point_double_t fst_half[4], cairo_point_double_t snd_half[4])
{
    split_bezier_1D (p[0].x, p[1].x, p[2].x, p[3].x,
		     &fst_half[0].x, &fst_half[1].x, &fst_half[2].x, &fst_half[3].x,
		     &snd_half[0].x, &snd_half[1].x, &snd_half[2].x, &snd_half[3].x);
    split_bezier_1D (p[0].y, p[1].y, p[2].y, p[3].y,
		     &fst_half[0].y, &fst_half[1].y, &fst_half[2].y, &fst_half[3].y,
		     &snd_half[0].y, &snd_half[1].y, &snd_half[2].y, &snd_half[3].y);
}