[gtk+/gtk-3-14] Gestures: Properly handle weak references



commit ef1fa3d4d39356c88600ab04891d9cfa67f161a9
Author: Matthias Clasen <mclasen redhat com>
Date:   Wed Mar 11 06:47:04 2015 -0400

    Gestures: Properly handle weak references
    
    Every call to g_object_add_weak_pointer must be matched with
    a g_object_remove_weak_pointer call, or we will get invalid
    writes inside GObject.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=746013

 gtk/gtkeventcontroller.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkeventcontroller.c b/gtk/gtkeventcontroller.c
index 4a3e301..a5cfde1 100644
--- a/gtk/gtkeventcontroller.c
+++ b/gtk/gtkeventcontroller.c
@@ -131,7 +131,11 @@ gtk_event_controller_dispose (GObject *object)
 
   priv = gtk_event_controller_get_instance_private (controller);
   if (priv->widget)
-    _gtk_widget_remove_controller (priv->widget, controller);
+    {
+      _gtk_widget_remove_controller (priv->widget, controller);
+      g_object_remove_weak_pointer (G_OBJECT (priv->widget), (gpointer *) &priv->widget);
+      priv->widget = NULL;
+    }
 
   G_OBJECT_CLASS (gtk_event_controller_parent_class)->dispose (object);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]