libweston: Init weston_output's 'destroy_signal' before timeline has a chance to...
authorMarius Vlad <marius.vlad@collabora.com>
Mon, 4 Nov 2019 15:53:46 +0000 (17:53 +0200)
committerMarius Vlad <marius.vlad@collabora.com>
Tue, 5 Nov 2019 11:58:36 +0000 (13:58 +0200)
timeline subscription

When subscribing over the command line to the 'timeline' scope we hit
the situation where we could emit a timeline message but without the
weston_output object being (fully) enabled.  The timeline subscription
object requires to install its own callback on the 'destroy_signal' but
at that time, the 'destroy_signal' is not initialized.

This moves 'destroy_signal' initialization before timeline has a chance
to emit a timeline subscription message for that weston_output.

While at it, move also 'frame_signal' initialization before any function
call to keep them nicely organized.

Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
libweston/compositor.c

index 26a62c7ec0bf51a88e9349d282b00cb045d52896..6336c58989d869dcb22497f9a623323cd4793ce5 100644 (file)
@@ -6225,14 +6225,15 @@ weston_output_enable(struct weston_output *output)
        output->dirty = 1;
        output->original_scale = output->scale;
 
+       wl_signal_init(&output->frame_signal);
+       wl_signal_init(&output->destroy_signal);
+
        weston_output_transform_scale_init(output, output->transform, output->scale);
        weston_output_init_zoom(output);
 
        weston_output_init_geometry(output, x, y);
        weston_output_damage(output);
 
-       wl_signal_init(&output->frame_signal);
-       wl_signal_init(&output->destroy_signal);
        wl_list_init(&output->animation_list);
        wl_list_init(&output->feedback_list);