diff options
Diffstat (limited to 'backend')
-rw-r--r-- | backend/djvu/djvu-document.c | 5 | ||||
-rw-r--r-- | backend/tiff/tiff-document.c | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/backend/djvu/djvu-document.c b/backend/djvu/djvu-document.c index f27d66f..6e1c5f3 100644 --- a/backend/djvu/djvu-document.c +++ b/backend/djvu/djvu-document.c @@ -261,8 +261,11 @@ djvu_document_render (EvDocument *document, default: rotation = DDJVU_ROTATE_0; } - +#ifdef HAVE_CAIRO_FORMAT_STRIDE_FOR_WIDTH + rowstride = cairo_format_stride_for_width (CAIRO_FORMAT_RGB24, page_width); +#else rowstride = page_width * 4; +#endif pixels = (gchar *) g_malloc (page_height * rowstride); surface = cairo_image_surface_create_for_data ((guchar *)pixels, CAIRO_FORMAT_RGB24, diff --git a/backend/tiff/tiff-document.c b/backend/tiff/tiff-document.c index d8bee9e..86170e2 100644 --- a/backend/tiff/tiff-document.c +++ b/backend/tiff/tiff-document.c @@ -246,11 +246,15 @@ tiff_document_render (EvDocument *document, if (width <= 0 || height <= 0) return NULL; +#ifdef HAVE_CAIRO_FORMAT_STRIDE_FOR_WIDTH + rowstride = cairo_format_stride_for_width (CAIRO_FORMAT_RGB24, width); +#else rowstride = width * 4; if (rowstride / 4 != width) /* overflow */ return NULL; - +#endif + bytes = height * rowstride; if (bytes / rowstride != height) /* overflow */ |