wayland/surface: Reset buffer_destroy_handler_id

Syncronized subsurfaces that call into `merge_pending_state` might
otherwise not create new destroy handlers, ending up with a invalid
handler ids, throwing errors and leaking.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/868


(cherry picked from commit 98892391d7)
This commit is contained in:
Robert Mader 2019-10-20 19:32:29 +00:00 committed by Jonas Ådahl
parent c0037305eb
commit 85f5db7e73

View File

@ -401,7 +401,7 @@ static void
pending_buffer_resource_destroyed (MetaWaylandBuffer *buffer, pending_buffer_resource_destroyed (MetaWaylandBuffer *buffer,
MetaWaylandPendingState *pending) MetaWaylandPendingState *pending)
{ {
g_signal_handler_disconnect (buffer, pending->buffer_destroy_handler_id); g_clear_signal_handler (&pending->buffer_destroy_handler_id, buffer);
pending->buffer = NULL; pending->buffer = NULL;
} }