[PATCH weston 1/3] compositor-x11: free or discard XCB generic_error's

Kristian Høgsberg krh at bitplanet.net
Thu Nov 1 14:51:47 PDT 2012


On Wed, Oct 31, 2012 at 2:14 PM, Ran Benita <ran234 at gmail.com> wrote:
>
> 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.

Thanks for cleaning this up - this and the following two committed and pushed.

Kristian

> Signed-off-by: Ran Benita <ran234 at gmail.com>
> ---
>  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 c654aec..c69b8f6 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;
>         }
>
> --
> 1.8.0
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list