[gtk+/gtk-3-20] viewport: Free gadgets in finalize



commit 1790e7af77c4d961da150c01e1f808b2457cfaaa
Author: Matthias Clasen <mclasen redhat com>
Date:   Sun Jun 5 19:36:36 2016 -0400

    viewport: Free gadgets in finalize
    
    This is the right place for this.

 gtk/gtkviewport.c |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkviewport.c b/gtk/gtkviewport.c
index 0889514..a5487ff 100644
--- a/gtk/gtkviewport.c
+++ b/gtk/gtkviewport.c
@@ -103,6 +103,7 @@ static void gtk_viewport_get_property             (GObject         *object,
                                                   guint            prop_id,
                                                   GValue          *value,
                                                   GParamSpec      *pspec);
+static void gtk_viewport_finalize                 (GObject         *object);
 static void gtk_viewport_destroy                  (GtkWidget        *widget);
 static void gtk_viewport_realize                  (GtkWidget        *widget);
 static void gtk_viewport_unrealize                (GtkWidget        *widget);
@@ -374,6 +375,7 @@ gtk_viewport_class_init (GtkViewportClass *class)
 
   gobject_class->set_property = gtk_viewport_set_property;
   gobject_class->get_property = gtk_viewport_get_property;
+  gobject_class->finalize = gtk_viewport_finalize;
 
   widget_class->destroy = gtk_viewport_destroy;
   widget_class->realize = gtk_viewport_realize;
@@ -575,13 +577,22 @@ gtk_viewport_destroy (GtkWidget *widget)
   viewport_disconnect_adjustment (viewport, GTK_ORIENTATION_HORIZONTAL);
   viewport_disconnect_adjustment (viewport, GTK_ORIENTATION_VERTICAL);
 
-  g_clear_object (&priv->gadget);
-
   GTK_WIDGET_CLASS (gtk_viewport_parent_class)->destroy (widget);
 
   g_clear_pointer (&priv->pixel_cache, _gtk_pixel_cache_free);
 }
 
+static void
+gtk_viewport_finalize (GObject *object)
+{
+  GtkViewport *viewport = GTK_VIEWPORT (object);
+  GtkViewportPrivate *priv = viewport->priv;
+
+  g_clear_object (&priv->gadget);
+
+  G_OBJECT_CLASS (gtk_viewport_parent_class)->finalize (object);
+}
+
 /**
  * gtk_viewport_get_hadjustment:
  * @viewport: a #GtkViewport.


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