diff options
author | Matthias Clasen <mclasen@redhat.com> | 2016-06-05 19:36:36 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2016-06-05 20:00:43 -0400 |
commit | c8cab6a79ae9adbfc34b2a73e95c553d7980f39e (patch) | |
tree | 4479b4f7f00a95783a826ea91ea089b850f9f1fe /gtk/gtkviewport.c | |
parent | b4ebe4e5c1166b38ebb6230fea73873c7ebf5ac9 (diff) | |
download | gtk+-c8cab6a79ae9adbfc34b2a73e95c553d7980f39e.tar.gz |
viewport: Free gadgets in finalize
This is the right place for this.
Diffstat (limited to 'gtk/gtkviewport.c')
-rw-r--r-- | gtk/gtkviewport.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/gtk/gtkviewport.c b/gtk/gtkviewport.c index 088951487e..a5487ffc70 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. |