From d654d528de16769932131da80f4b925151d50103 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Thu, 13 Nov 2008 16:45:15 +0100 Subject: [PATCH] Blacklist "X.Org" < 7.0 with the buggy_repeat workaround. This is in response to a report that a 6.9 server crashes with cairo's extend-reflect test: https://bugs.freedesktop.org/show_bug.cgi?id=15628#c2 --- src/cairo-xlib-display.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/cairo-xlib-display.c b/src/cairo-xlib-display.c index fae0f2330..b2e2755d3 100644 --- a/src/cairo-xlib-display.c +++ b/src/cairo-xlib-display.c @@ -319,10 +319,17 @@ _cairo_xlib_display_get (Display *dpy) * by using the same buggy_repeat workaround. Confirmed X * servers with this bug include: * - * "X.org" < 10400000 (new numbering scheme) + * "X.org" == 60900000 (old versioning scheme) + * "X.org" < 10400000 (new numbering scheme) + * + * For the old-versioning-scheme X servers we don't know + * exactly when second the bug started, but since bug 1 is + * present through 6.8.2 and bug 2 is present in 6.9.0 it seems + * safest to just blacklist all old-versioning-scheme X servers, + * (just using VendorRelase < 70000000), as buggy_repeat=TRUE. */ if (strstr (ServerVendor (dpy), "X.Org") != NULL) { - if (VendorRelease (dpy) >= 60700000 && VendorRelease (dpy) <= 60802000) + if (VendorRelease (dpy) >= 60700000 && VendorRelease (dpy) < 70000000) display->buggy_repeat = TRUE; if (VendorRelease (dpy) < 10400000) display->buggy_repeat = TRUE;