require cairo.inc
+PR = "r1"
+
SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.gz;name=cairo \
file://dolt-fix.patch \
- "
+ file://0001-Rely-less-on-DP-FPU-for-common-matrix-test-funcs.patch \
+"
SRC_URI[cairo.md5sum] = "b60a82f405f9400bbfdcf850b1728d25"
SRC_URI[cairo.sha256sum] = "572bada15596ec8708392db1af8b93a1af75ca47690348154e2841f3a6f08439"
--- /dev/null
+diff a/src/cairo-matrix.c b/src/cairo-matrix.c
+--- a/src/cairo-matrix.c
++++ b/src/cairo-matrix.c
+@@ -653,16 +653,39 @@ _cairo_matrix_compute_basis_scale_factors (const cairo_matrix_t *matrix,
+ cairo_bool_t
+ _cairo_matrix_is_identity (const cairo_matrix_t *matrix)
+ {
++ static const cairo_matrix_t id = {
++ .xx = 1,
++ .xy = 0,
++ .yx = 0,
++ .yy = 1,
++ .x0 = 0,
++ .y0 = 0
++ };
++
++ return !memcmp(matrix, &id, sizeof(id));
++
++#if 0
+ return (matrix->xx == 1.0 && matrix->yx == 0.0 &&
+ matrix->xy == 0.0 && matrix->yy == 1.0 &&
+ matrix->x0 == 0.0 && matrix->y0 == 0.0);
++#endif
+ }
+
+ cairo_bool_t
+ _cairo_matrix_is_translation (const cairo_matrix_t *matrix)
+ {
++ cairo_matrix_t tmp;
++ tmp.xx = matrix->xx;
++ tmp.xy = matrix->xy;
++ tmp.yx = matrix->yx;
++ tmp.yy = matrix->yy;
++ tmp.x0 = tmp.y0 = 0;
++ return _cairo_matrix_is_identity(&tmp);
++
++#if 0
+ return (matrix->xx == 1.0 && matrix->yx == 0.0 &&
+ matrix->xy == 0.0 && matrix->yy == 1.0);
++#endif
+ }
+
+ cairo_bool_t
+