summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/xkbcommon
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/xkbcommon')
-rw-r--r--src/3rdparty/xkbcommon/Fix-compilation-on-libxcb-1.5.patch19
-rw-r--r--src/3rdparty/xkbcommon/src/x11/util.c8
2 files changed, 25 insertions, 2 deletions
diff --git a/src/3rdparty/xkbcommon/Fix-compilation-on-libxcb-1.5.patch b/src/3rdparty/xkbcommon/Fix-compilation-on-libxcb-1.5.patch
new file mode 100644
index 0000000000..691f142e5e
--- /dev/null
+++ b/src/3rdparty/xkbcommon/Fix-compilation-on-libxcb-1.5.patch
@@ -0,0 +1,19 @@
+diff --git a/src/3rdparty/xkbcommon/src/x11/util.c b/src/3rdparty/xkbcommon/src/x11/util.c
+index 92ff2e6..7659c71 100644
+--- a/src/3rdparty/xkbcommon/src/x11/util.c
++++ b/src/3rdparty/xkbcommon/src/x11/util.c
+@@ -198,8 +198,12 @@ adopt_atoms(struct xkb_context *ctx, xcb_connection_t *conn,
+ * sit there waiting. Sad.
+ */
+ err_discard:
+- for (size_t j = i + 1; j < stop; j++)
+- xcb_discard_reply(conn, cookies[j].sequence);
++ for (size_t j = i + 1; j < stop; j++) {
++ if (from[j] != XCB_ATOM_NONE) {
++ reply = xcb_get_atom_name_reply(conn, cookies[j % SIZE], NULL);
++ free(reply);
++ }
++ }
+ return false;
+ }
+ }
diff --git a/src/3rdparty/xkbcommon/src/x11/util.c b/src/3rdparty/xkbcommon/src/x11/util.c
index 92ff2e630e..7659c711a2 100644
--- a/src/3rdparty/xkbcommon/src/x11/util.c
+++ b/src/3rdparty/xkbcommon/src/x11/util.c
@@ -198,8 +198,12 @@ adopt_atoms(struct xkb_context *ctx, xcb_connection_t *conn,
* sit there waiting. Sad.
*/
err_discard:
- for (size_t j = i + 1; j < stop; j++)
- xcb_discard_reply(conn, cookies[j].sequence);
+ for (size_t j = i + 1; j < stop; j++) {
+ if (from[j] != XCB_ATOM_NONE) {
+ reply = xcb_get_atom_name_reply(conn, cookies[j % SIZE], NULL);
+ free(reply);
+ }
+ }
return false;
}
}