_cairo_font_init (scaled, &scale, &f->base);
cairo_matrix_get_affine (scale, &sc.matrix[0][0], &sc.matrix[0][1], &sc.matrix[1][0], &sc.matrix[1][1], &tx, &ty);
cairo_ft_font_create_for_ft_face (FT_Face face){    cairo_font_scale_t scale;    cairo_font_t *scaled;    cairo_ft_font_t *f = NULL;    ft_font_val_t *v = NULL;    scale.matrix[0][0] = 1.;    scale.matrix[0][1] = 0.;    scale.matrix[1][0] = 0.;    scale.matrix[1][1] = 1.;    scaled = malloc (sizeof (cairo_font_t));    if (scaled == NULL)	goto FAIL;    v = _create_from_face (face, 0);    if (v == NULL)	goto FREE_SCALED;    f = malloc (sizeof(cairo_ft_font_t));    if (f == NULL) 	goto FREE_VAL;    _cairo_unscaled_font_init (&f->base, &cairo_ft_font_backend);    f->pattern = NULL;    f->val = v;    _cairo_font_init (scaled, &scale, &f->base);    return scaled; FREE_VAL:    _destroy_font_val (v); FREE_SCALED:    free (scaled); FAIL:    return NULL;}