Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/backend
diff options
context:
space:
mode:
Diffstat (limited to 'backend')
-rw-r--r--backend/djvu/djvu-document.c5
-rw-r--r--backend/tiff/tiff-document.c6
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 */