I'm running iceweasel on sid for amd64 and met same problem.
 iceweasel: 2.0.0.11-1
 libcairo2: 1.4.10-1.2
With thease versions, iceweasel can not render some pages correctly.
Most of text are dissapeared.

When I used iceweasel (2.0.0.11-1) with libcairo2 1.4.10-1.1,
iceweasel got crashed in _get_bitmap_surface() in libcairo's
src/cairo-ft-font.c
(I made libcairo2-dbg to debug on my machine).

So I backported a change in cairo-ft-font.c from
new upstream of cairo (1.4.12), and iceweasel works correctly
(no crash, no text are dissapeared).

Diff of src/cairo-ft-font.c 1.4.10-1.2 and my own version
is attached. I'm not sure this fix is correct, but hope this helps.

---
  KUSANO Takayuki <http://www.asahi-net.or.jp/~AE5T-KSN/>



--- libcairo-1.4.10-1.2/src/cairo-ft-font.c	2007-12-11 10:18:41.000000000 +0900
+++ libcairo-1.4.10-1.2+patch/src/cairo-ft-font.c	2007-12-11 10:07:28.062095832 +0900
@@ -735,6 +735,12 @@
     width = bitmap->width;
     height = bitmap->rows;
 
+    if (width == 0 || height == 0) {
+	*surface = (cairo_image_surface_t *)
+	    cairo_image_surface_create_for_data (NULL, format, 0, 0, 0);
+	return (*surface)->base.status;
+    }
+
     switch (bitmap->pixel_mode) {
     case FT_PIXEL_MODE_MONO:
 	stride = (((width + 31) & ~31) >> 3);

Reply via email to