summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEduardo Sánchez Muñoz <esm@eduardosm.net>2020-03-02 18:59:45 +0100
committerEduardo Sánchez Muñoz <esm@eduardosm.net>2020-03-02 19:01:41 +0100
commit704e0a91b1dece9a4cce7cfe8beaeb86a5e14267 (patch)
treefbfb18809bedcb24dceb8a302d8512ad52c066f2
parent4b40b44cb6d088b6ffa2fb5cf3ad8f12da588cef (diff)
downloadxcb-libxcb-704e0a91b1dece9a4cce7cfe8beaeb86a5e14267.tar.gz
Use the 'present' field to properly check that the XC-MISC
extension is available in xcb_generate_id. Also document the returned value when xcb_generate_id fails.
-rw-r--r--src/xcb.h2
-rw-r--r--src/xcb_xid.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/xcb.h b/src/xcb.h
index dd7f532..09e123e 100644
--- a/src/xcb.h
+++ b/src/xcb.h
@@ -591,7 +591,7 @@ xcb_connection_t *xcb_connect_to_display_with_auth_info(const char *display, xcb
/**
* @brief Allocates an XID for a new object.
* @param c The connection.
- * @return A newly allocated XID.
+ * @return A newly allocated XID, or -1 on failure.
*
* Allocates an XID for a new object. Typically used just prior to
* various object creation functions, such as xcb_create_window.
diff --git a/src/xcb_xid.c b/src/xcb_xid.c
index 79a9a27..ebe41a1 100644
--- a/src/xcb_xid.c
+++ b/src/xcb_xid.c
@@ -55,7 +55,7 @@ uint32_t xcb_generate_id(xcb_connection_t *c)
/* check for extension */
const xcb_query_extension_reply_t *xc_misc_reply =
xcb_get_extension_data(c, &xcb_xc_misc_id);
- if (!xc_misc_reply) {
+ if (!xc_misc_reply || !xc_misc_reply->present) {
pthread_mutex_unlock(&c->xid.lock);
return -1;
}