summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/xcb_conn.c3
-rw-r--r--src/xcbint.h1
2 files changed, 4 insertions, 0 deletions
diff --git a/src/xcb_conn.c b/src/xcb_conn.c
index 46390e1..00c458f 100644
--- a/src/xcb_conn.c
+++ b/src/xcb_conn.c
@@ -374,6 +374,9 @@ void _xcb_conn_shutdown(xcb_connection_t *c, int err)
/* Return connection error state.
* To make thread-safe, I need a seperate static
* variable for every possible error.
+ * has_error is the first field in xcb_connection_t, so just
+ * return a casted int here; checking has_error (and only
+ * has_error) will be safe.
*/
xcb_connection_t *_xcb_conn_ret_error(int err)
{
diff --git a/src/xcbint.h b/src/xcbint.h
index b25f03b..67cf571 100644
--- a/src/xcbint.h
+++ b/src/xcbint.h
@@ -192,6 +192,7 @@ void _xcb_ext_destroy(xcb_connection_t *c);
/* xcb_conn.c */
struct xcb_connection_t {
+ /* This must be the first field; see _xcb_conn_ret_error(). */
int has_error;
/* constant data */