Bug 548793. Initialize XRender version fields if XRender isn't available. r=jrmuizel

This commit is contained in:
Julian Seward 2010-03-05 13:10:42 +13:00
parent 528d5a3e06
commit 22aee9c460
3 changed files with 29 additions and 1 deletions

View file

@ -66,6 +66,8 @@ quartz-glyph-extents.patch: bug 534260; work around incorrect glyph extents retu
premultiply-alpha-solid-gradients.patch: bug 539165; multiply the solid color by the alpha component before using it for a solid surface
xlib-initialize-members.path: bug 548793; initialize XRender version if the server doesn't have the extension
==== pixman patches ====
pixman-neon.patch: add ARM NEON optimized compositing functions

View file

@ -259,7 +259,14 @@ _cairo_xlib_display_get (Display *dpy,
* add our hook. For now, that means Render, so we call into its
* QueryVersion function to ensure it gets initialized.
*/
XRenderQueryVersion (dpy, &render_major, &render_minor);
Status s = XRenderQueryVersion (dpy, &render_major, &render_minor);
if (s == 0) {
/* XRenderQueryVersion failed, possibly because the server
* doesn't have the RENDER extension. Don't leave the version
* numbers uninitialised. See #548793.
*/
render_major = render_minor = 0;
}
codes = XAddExtension (dpy);
if (unlikely (codes == NULL)) {

View file

@ -0,0 +1,19 @@
diff -r 059e9961a122 gfx/cairo/cairo/src/cairo-xlib-display.c
--- a/gfx/cairo/cairo/src/cairo-xlib-display.c Thu Feb 25 03:59:05 2010 -0800
+++ b/gfx/cairo/cairo/src/cairo-xlib-display.c Fri Feb 26 16:15:29 2010 +0100
@@ -259,7 +259,14 @@
* add our hook. For now, that means Render, so we call into its
* QueryVersion function to ensure it gets initialized.
*/
- XRenderQueryVersion (dpy, &render_major, &render_minor);
+ Status s = XRenderQueryVersion (dpy, &render_major, &render_minor);
+ if (s == 0) {
+ /* XRenderQueryVersion failed, possibly because the server
+ * doesn't have the RENDER extension. Don't leave the version
+ * numbers uninitialised. See #548793.
+ */
+ render_major = render_minor = 0;
+ }
codes = XAddExtension (dpy);
if (unlikely (codes == NULL)) {