cairo_font_scale_t scale; cairo_font_t *scaled; double dummy;
cairo_status_t status;
_cairo_gstate_current_font (cairo_gstate_t *gstate, 			    cairo_font_t **font){    cairo_font_scale_t scale;    cairo_font_t *scaled;    double dummy;    scaled = malloc (sizeof (cairo_font_t));    if (scaled == NULL)	return CAIRO_STATUS_NO_MEMORY;    cairo_matrix_get_affine (&gstate->font_matrix,			     &scale.matrix[0][0],			     &scale.matrix[0][1],			     &scale.matrix[1][0],			     &scale.matrix[1][1],			     &dummy, &dummy);    _cairo_font_init (scaled, &scale, gstate->font);    _cairo_unscaled_font_reference (gstate->font);    *font = scaled;    return CAIRO_STATUS_SUCCESS;}