[mutter] wayland: Fix weak ref tracking on data sources
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] wayland: Fix weak ref tracking on data sources
- Date: Mon, 28 Sep 2015 14:30:43 +0000 (UTC)
commit cf88675807f15586cdc5544710fdea7067a85fad
Author: Carlos Garnacho <carlosg gnome org>
Date: Mon Sep 28 14:25:36 2015 +0200
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.
src/wayland/meta-wayland-data-device.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
---
diff --git a/src/wayland/meta-wayland-data-device.c b/src/wayland/meta-wayland-data-device.c
index 61acdc6..ae0fcf5 100644
--- a/src/wayland/meta-wayland-data-device.c
+++ b/src/wayland/meta-wayland-data-device.c
@@ -743,12 +743,14 @@ meta_wayland_data_device_set_dnd_source (MetaWaylandDataDevice *data_device,
return;
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);
data_device->dnd_data_source = source;
- g_object_add_weak_pointer (G_OBJECT (source),
- (gpointer *)&data_device->dnd_data_source);
+
+ if (source)
+ g_object_add_weak_pointer (G_OBJECT (data_device->dnd_data_source),
+ (gpointer *)&data_device->dnd_data_source);
wl_signal_emit (&data_device->dnd_ownership_signal, source);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]