aboutsummaryrefslogtreecommitdiff
path: root/libxcb/src/xcb_conn.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2014-08-30 13:45:43 +0200
committermarha <marha@users.sourceforge.net>2014-08-30 13:45:43 +0200
commit3293021e6f582c7348667e7638941620134525e1 (patch)
tree5d8d3da8242ff7828fb6964bed19b13d74d48704 /libxcb/src/xcb_conn.c
parent0a9ab140bb01b96888e313466a73e26e5156f22d (diff)
parente21655632e3fd40b7f6a5cc3c7f3c379d54557c4 (diff)
downloadvcxsrv-3293021e6f582c7348667e7638941620134525e1.tar.gz
vcxsrv-3293021e6f582c7348667e7638941620134525e1.tar.bz2
vcxsrv-3293021e6f582c7348667e7638941620134525e1.zip
Merge remote-tracking branch 'origin/released'
Conflicts: xorg-server/hw/kdrive/ephyr/ephyrinit.c
Diffstat (limited to 'libxcb/src/xcb_conn.c')
-rw-r--r--libxcb/src/xcb_conn.c26
1 files changed, 23 insertions, 3 deletions
diff --git a/libxcb/src/xcb_conn.c b/libxcb/src/xcb_conn.c
index e9ab62a0d..0ead77671 100644
--- a/libxcb/src/xcb_conn.c
+++ b/libxcb/src/xcb_conn.c
@@ -70,6 +70,26 @@ typedef struct {
uint16_t length;
} xcb_setup_generic_t;
+static const xcb_setup_t xcb_error_setup = {
+ 0, /* status: failed (but we wouldn't have a xcb_setup_t in this case) */
+ 0, /* pad0 */
+ 0, 0, /* protocol version, should be 11.0, but isn't */
+ 0, /* length, invalid value */
+ 0, /* release_number */
+ 0, 0, /* resource_id_{base,mask} */
+ 0, /* motion_buffer_size */
+ 0, /* vendor_len */
+ 0, /* maximum_request_length */
+ 0, /* roots_len */
+ 0, /* pixmap_formats_len */
+ 0, /* image_byte_order */
+ 0, /* bitmap_format_bit_order */
+ 0, /* bitmap_format_scanline_unit */
+ 0, /* bitmap_format_scanline_pad */
+ 0, 0, /* {min,max}_keycode */
+ { 0, 0, 0, 0 } /* pad1 */
+};
+
/* Keep this list in sync with is_static_error_conn()! */
static const int xcb_con_error = XCB_CONN_ERROR;
static const int xcb_con_closed_mem_er = XCB_CONN_CLOSED_MEM_INSUFFICIENT;
@@ -309,15 +329,15 @@ static int write_vec(xcb_connection_t *c, struct iovec **vector, int *count)
const xcb_setup_t *xcb_get_setup(xcb_connection_t *c)
{
- if(c->has_error)
- return 0;
+ if(is_static_error_conn(c))
+ return &xcb_error_setup;
/* doesn't need locking because it's never written to. */
return c->setup;
}
int xcb_get_file_descriptor(xcb_connection_t *c)
{
- if(c->has_error)
+ if(is_static_error_conn(c))
return -1;
/* doesn't need locking because it's never written to. */
return c->fd;