From 7b5e3cd9b1b79929d796be804661680f6dc7f5b4 Mon Sep 17 00:00:00 2001 From: Ran Benita Date: Wed, 31 Oct 2012 20:14:56 +0200 Subject: [PATCH] compositor-x11: free or discard XCB generic_error's Where we don't look at the error details, pass NULL to the 'error' argument and test using the reply return value instead. Where we do need it, remember to free it. Signed-off-by: Ran Benita --- src/compositor-x11.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/compositor-x11.c b/src/compositor-x11.c index c654aec7..c69b8f67 100644 --- a/src/compositor-x11.c +++ b/src/compositor-x11.c @@ -115,7 +115,6 @@ x11_compositor_get_keymap(struct x11_compositor *c) { xcb_get_property_cookie_t cookie; xcb_get_property_reply_t *reply; - xcb_generic_error_t *error; struct xkb_rule_names names; struct xkb_keymap *ret; const char *value_all, *value_part; @@ -125,7 +124,7 @@ x11_compositor_get_keymap(struct x11_compositor *c) cookie = xcb_get_property(c->conn, 0, c->screen->root, c->atom.xkb_names, c->atom.string, 0, 1024); - reply = xcb_get_property_reply(c->conn, cookie, &error); + reply = xcb_get_property_reply(c->conn, cookie, NULL); if (reply == NULL) return NULL; @@ -217,6 +216,7 @@ x11_compositor_setup_xkb(struct x11_compositor *c) error = xcb_request_check(c->conn, select); if (error) { weston_log("error: failed to select for XKB state events\n"); + free(error); return; } @@ -227,19 +227,18 @@ x11_compositor_setup_xkb(struct x11_compositor *c) 0, 0, 0); - pcf_reply = xcb_xkb_per_client_flags_reply(c->conn, pcf, &error); - free(pcf_reply); - if (error) { + pcf_reply = xcb_xkb_per_client_flags_reply(c->conn, pcf, NULL); + if (!pcf_reply) { weston_log("failed to set XKB per-client flags, not using " "detectable repeat\n"); return; } + free(pcf_reply); state = xcb_xkb_get_state(c->conn, XCB_XKB_ID_USE_CORE_KBD); - state_reply = xcb_xkb_get_state_reply(c->conn, state, &error); - if (error) { + state_reply = xcb_xkb_get_state_reply(c->conn, state, NULL); + if (!state_reply) { weston_log("failed to get initial XKB state\n"); - free(state_reply); return; }