[mutter] wayland: Fix weak ref tracking on data sources



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]