diff options
Diffstat (limited to 'gfx/cairo/ignore-rank0.patch')
-rw-r--r-- | gfx/cairo/ignore-rank0.patch | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gfx/cairo/ignore-rank0.patch b/gfx/cairo/ignore-rank0.patch new file mode 100644 index 000000000..7e20f66fb --- /dev/null +++ b/gfx/cairo/ignore-rank0.patch @@ -0,0 +1,20 @@ +diff --git a/gfx/cairo/cairo/src/cairo-gstate.c b/gfx/cairo/cairo/src/cairo-gstate.c +index 0439bcf..32a5c4b 100644 +--- a/gfx/cairo/cairo/src/cairo-gstate.c ++++ b/gfx/cairo/cairo/src/cairo-gstate.c +@@ -1271,8 +1271,13 @@ _cairo_gstate_set_font_matrix (cairo_gstate_t *gstate, + if (memcmp (matrix, &gstate->font_matrix, sizeof (cairo_matrix_t)) == 0) + return CAIRO_STATUS_SUCCESS; + +- if (! _cairo_matrix_is_invertible (matrix)) +- return _cairo_error (CAIRO_STATUS_INVALID_MATRIX); ++ if (! _cairo_matrix_is_invertible (matrix)) { ++ /* rank 0 matrices are ok even though they are not invertible */ ++ if (!(matrix->xx == 0. && matrix->xy == 0. && ++ matrix->yx == 0. && matrix->yy == 0.)) { ++ return _cairo_error (CAIRO_STATUS_INVALID_MATRIX); ++ } ++ } + + _cairo_gstate_unset_scaled_font (gstate); + |