[cairo] Firefox failure with cairo 1.12.6 on NetBSD-current amd64

Martin Husemann martin at duskware.de
Thu Oct 25 12:30:00 PDT 2012


On Thu, Oct 25, 2012 at 09:59:26AM +0100, Chris Wilson wrote:
> Can you please take a look at src/cairo-xlib-surface-shm.c,
> xorg_has_buggy_send_shm_completion_event() and add a necessary clause to
> detect your XServer? Or attach your xdpyifo?

Thanks for quick reply and pointer to easy solution - I mixed it with the
bzero Thomas just reported (haven't tried individually yet), and sure enough
this makes it work again.

Our server identifies as:

version number:    11.0
vendor string:    The Xorg Foundation
vendor release number:    11003000


Martin
-------------- next part --------------
--- src/cairo-xlib-surface-shm.c.orig	2012-10-21 10:13:41.000000000 +0200
+++ src/cairo-xlib-surface-shm.c	2012-10-25 21:11:57.000000000 +0200
@@ -1021,6 +1021,7 @@ _cairo_xlib_shm_surface_mark_active (cai
     cairo_xlib_display_t *display = (cairo_xlib_display_t *) _shm->device;
     XShmCompletionEvent ev;
 
+    bzero(&ev, sizeof(ev));
     ev.type = display->shm->event;
     ev.drawable = display->shm->window;
     ev.major_code = display->shm->opcode;
@@ -1141,7 +1142,8 @@ xorg_has_buggy_send_shm_completion_event
      *
      * Remove the SendEvent bit (0x80) before doing range checks on event type.
      */
-    return (strstr (ServerVendor (dpy), "X.Org") != NULL &&
+    return ((strstr (ServerVendor (dpy), "X.Org") != NULL ||
+    		strstr (ServerVendor (dpy), "Xorg") != NULL ) &&
 	    VendorRelease (dpy) < XORG_VERSION_ENCODE(1,11,0,1));
 }
 


More information about the cairo mailing list