Hi Benoit,
Other than the comments inline below, this patch is
Reviewed-by: Yong Bakos <[email protected]>
Tested-by: Yong Bakos <[email protected]>

On Jun 4, 2016, at 9:08 AM, Benoit Gschwind <[email protected]> wrote:
> 
> ---

I'd love to see a short message for the patch here explaining the
rationale and behavior change, now that it's possible to return NULL,
causing the compositor to terminate.


> src/compositor-x11.c | 29 ++++++++++++++++++++---------
> 1 file changed, 20 insertions(+), 9 deletions(-)
> 
> diff --git a/src/compositor-x11.c b/src/compositor-x11.c
> index 629b5f3..a518820 100644
> --- a/src/compositor-x11.c
> +++ b/src/compositor-x11.c
> @@ -782,7 +782,7 @@ x11_backend_create_output(struct x11_backend *b, int x, 
> int y,
> {
>       static const char name[] = "Weston Compositor";
>       static const char class[] = "weston-1\0Weston Compositor";
> -     char title[32];
> +     char * title = NULL;

char *title = NULL;


>       struct x11_output *output;
>       xcb_screen_t *screen;
>       struct wm_normal_hints normal_hints;
> @@ -800,11 +800,6 @@ x11_backend_create_output(struct x11_backend *b, int x, 
> int y,
>       output_width = width * scale;
>       output_height = height * scale;
> 
> -     if (configured_name)
> -             sprintf(title, "%s - %s", name, configured_name);
> -     else
> -             strcpy(title, name);
> -
>       if (!no_input)
>               values[0] |=
>                       XCB_EVENT_MASK_KEY_PRESS |
> @@ -871,9 +866,25 @@ x11_backend_create_output(struct x11_backend *b, int x, 
> int y,
>       }
> 
>       /* Set window name.  Don't bother with non-EWMH WMs. */
> -     xcb_change_property(b->conn, XCB_PROP_MODE_REPLACE, output->window,
> -                         b->atom.net_wm_name, b->atom.utf8_string, 8,
> -                         strlen(title), title);
> +     if (configured_name) {
> +             ret = asprintf(&title, "%s - %s", name, configured_name);
> +              /* following asprintf manual, title is undefined on failure,
> +               * thus force NULL */
> +             if (ret < 0)
> +                     title = NULL;
> +     } else {
> +             title = strdup(name);
> +     }
> +
> +     if(title) {

if (title) {

> +             xcb_change_property(b->conn, XCB_PROP_MODE_REPLACE, 
> output->window,
> +                                 b->atom.net_wm_name, b->atom.utf8_string, 8,
> +                                 strlen(title), title);
> +             free(title);
> +     } else {
> +             return NULL;

Should we return NULL or just pass `name` to xcb_change_property?


> +     }
> +
>       xcb_change_property(b->conn, XCB_PROP_MODE_REPLACE, output->window,
>                           b->atom.wm_class, b->atom.string, 8,
>                           sizeof class, class);
> -- 
> 2.7.3

yong


_______________________________________________
wayland-devel mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to