From a5c5ee9f6431d667b8cd88c7706856396afb0f62 Mon Sep 17 00:00:00 2001 From: Olivier Andrieu Date: Wed, 2 Dec 2009 00:11:09 +0100 Subject: check the status of the matrix_invert function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Contrary to the other functions of the matrix module, this one can fail. Thanks to Pierre-Marie Pédrot for reporting this. --- src/ml_cairo_matrix.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ml_cairo_matrix.c b/src/ml_cairo_matrix.c index 17ecff5..8ae5aa1 100644 --- a/src/ml_cairo_matrix.c +++ b/src/ml_cairo_matrix.c @@ -95,16 +95,19 @@ ml_cairo_matrix_rotate (value m, value a) CAMLprim value ml_cairo_matrix_invert (value m) { + cairo_status_t st; #ifndef ARCH_ALIGN_DOUBLE CAMLparam1(m); value v = cairo_matrix_alloc(); cairo_copy_matrix (v, m); - cairo_matrix_invert (cairo_matrix_t_val (v)); + st = cairo_matrix_invert (cairo_matrix_t_val (v)); + cairo_treat_status (st); CAMLreturn (v); #else cairo_matrix_t mat; ml_convert_cairo_matrix_in (m, &mat); - cairo_matrix_invert (&mat); + st = cairo_matrix_invert (&mat); + cairo_treat_status (st); return ml_convert_cairo_matrix_out (&mat); #endif } -- cgit v1.2.3