38 lines
1.3 KiB
Diff
38 lines
1.3 KiB
Diff
|
# HG changeset patch
|
||
|
# User Lee Salzman <lsalzman@mozilla.com>
|
||
|
# Date 1480470918 18000
|
||
|
# Tue Nov 29 20:55:18 2016 -0500
|
||
|
# Node ID ffc92a98adee4c3ebb1f3b8c593e913a74ef6a4a
|
||
|
# Parent 8d8846f63b74eb930e48b410730ae088e9bdbee8
|
||
|
work around race in system Cairo's XShm usage
|
||
|
|
||
|
MozReview-Commit-ID: VGee6ungCz
|
||
|
|
||
|
diff --git a/widget/gtk/mozgtk/mozgtk.c b/widget/gtk/mozgtk/mozgtk.c
|
||
|
--- a/widget/gtk/mozgtk/mozgtk.c
|
||
|
+++ b/widget/gtk/mozgtk/mozgtk.c
|
||
|
@@ -606,8 +606,23 @@ STUB(gdk_window_set_back_pixmap)
|
||
|
STUB(gdk_x11_colormap_foreign_new)
|
||
|
STUB(gdk_x11_colormap_get_xcolormap)
|
||
|
STUB(gdk_x11_drawable_get_xdisplay)
|
||
|
STUB(gdk_x11_drawable_get_xid)
|
||
|
STUB(gdk_x11_window_get_drawable_impl)
|
||
|
STUB(gdkx_visual_get)
|
||
|
STUB(gtk_object_get_type)
|
||
|
#endif
|
||
|
+
|
||
|
+#include <X11/Xlib.h>
|
||
|
+// Bug 1271100
|
||
|
+// We need to trick system Cairo into not using the XShm extension due to
|
||
|
+// a race condition in it that results in frequent BadAccess errors. Cairo
|
||
|
+// relies upon XShmQueryExtension to initially detect if XShm is available.
|
||
|
+// So we define our own stub that always indicates XShm not being present.
|
||
|
+// mozgtk loads before libXext/libcairo and so this stub will take priority.
|
||
|
+// Our tree usage goes through xcb and remains unaffected by this.
|
||
|
+MOZ_EXPORT Bool
|
||
|
+XShmQueryExtension(Display* aDisplay)
|
||
|
+{
|
||
|
+ return False;
|
||
|
+}
|
||
|
+
|