From 9b46d13b6cd58c711010df89a41b216c5cc8c881 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Wed, 17 Dec 2008 23:52:32 +0000 Subject: [PATCH] [trace] Runtime version check. Check that the application is using cairo >= 1.9 before attempting to query the mime-data. --- util/cairo-trace/trace.c | 47 +++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/util/cairo-trace/trace.c b/util/cairo-trace/trace.c index 1b27fe4ef..30656a193 100644 --- a/util/cairo-trace/trace.c +++ b/util/cairo-trace/trace.c @@ -1137,11 +1137,6 @@ _emit_image (cairo_surface_t *image, uint8_t *rowdata; uint8_t *data; struct _data_stream stream; - const char *mime_types[] = { - CAIRO_MIME_TYPE_JPEG, - CAIRO_MIME_TYPE_PNG, - NULL - }, **mime_type; if (cairo_surface_status (image)) { fprintf (logfile, @@ -1173,24 +1168,32 @@ _emit_image (cairo_surface_t *image, va_end (ap); } - for (mime_type = mime_types; *mime_type; mime_type++) { - const unsigned char *mime_data; - unsigned int mime_length; + if (cairo_version () >= CAIRO_VERSION_ENCODE (1, 9, 0)) { + const char *mime_types[] = { + CAIRO_MIME_TYPE_JPEG, + CAIRO_MIME_TYPE_PNG, + NULL + }, **mime_type; - cairo_surface_get_mime_data (image, *mime_type, - &mime_data, &mime_length); - if (mime_data != NULL) { - fprintf (logfile, - " /mime-type (%s) set\n" - " /source <~", - *mime_type); - _write_base85_data_start (&stream); - _write_base85_data (&stream, mime_data, mime_length); - _write_base85_data_end (&stream); - fprintf (logfile, - "~> set\n" - " image"); - return; + for (mime_type = mime_types; *mime_type; mime_type++) { + const unsigned char *mime_data; + unsigned int mime_length; + + cairo_surface_get_mime_data (image, *mime_type, + &mime_data, &mime_length); + if (mime_data != NULL) { + fprintf (logfile, + " /mime-type (%s) set\n" + " /source <~", + *mime_type); + _write_base85_data_start (&stream); + _write_base85_data (&stream, mime_data, mime_length); + _write_base85_data_end (&stream); + fprintf (logfile, + "~> set\n" + " image"); + return; + } } }