wayland: Fix weak ref tracking on data sources

We may get a NULL one here, and we're wrongly attempting to remove
the old weak ref from the new data source object.
This commit is contained in:
Carlos Garnacho 2015-09-28 14:25:36 +02:00
parent 405f1ce3d0
commit cf88675807

View File

@ -743,11 +743,13 @@ meta_wayland_data_device_set_dnd_source (MetaWaylandDataDevice *data_device,
return; return;
if (data_device->dnd_data_source) if (data_device->dnd_data_source)
g_object_remove_weak_pointer (G_OBJECT (source), g_object_remove_weak_pointer (G_OBJECT (data_device->dnd_data_source),
(gpointer *)&data_device->dnd_data_source); (gpointer *)&data_device->dnd_data_source);
data_device->dnd_data_source = source; data_device->dnd_data_source = source;
g_object_add_weak_pointer (G_OBJECT (source),
if (source)
g_object_add_weak_pointer (G_OBJECT (data_device->dnd_data_source),
(gpointer *)&data_device->dnd_data_source); (gpointer *)&data_device->dnd_data_source);
wl_signal_emit (&data_device->dnd_ownership_signal, source); wl_signal_emit (&data_device->dnd_ownership_signal, source);