[PATCH] Call finalize functions in parent classes.

David Shea dshea at redhat.com
Thu Feb 6 15:19:16 UTC 2014


According to the GObject docs, implementations of constructor(),
dispose() and finalize() each need to chain up to the parent class. This
does so for the places we override finalize().
---
 widgets/src/DiskOverview.c       | 9 ++++++---
 widgets/src/MountpointSelector.c | 9 ++++++---
 widgets/src/SpokeSelector.c      | 9 ++++++---
 3 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/widgets/src/DiskOverview.c b/widgets/src/DiskOverview.c
index 9e42540..5fc249e 100644
--- a/widgets/src/DiskOverview.c
+++ b/widgets/src/DiskOverview.c
@@ -81,7 +81,7 @@ static void anaconda_disk_overview_set_property(GObject *object, guint prop_id,
 static void anaconda_disk_overview_toggle_background(AnacondaDiskOverview *widget);
 
 static void anaconda_disk_overview_realize(GtkWidget *widget, gpointer user_data);
-static void anaconda_disk_overview_finalize(AnacondaDiskOverview *widget);
+static void anaconda_disk_overview_finalize(GObject *object);
 
 static gboolean anaconda_disk_overview_focus_changed(GtkWidget *widget, GdkEventFocus *event, gpointer user_data);
 
@@ -90,7 +90,7 @@ static void anaconda_disk_overview_class_init(AnacondaDiskOverviewClass *klass)
 
     object_class->set_property = anaconda_disk_overview_set_property;
     object_class->get_property = anaconda_disk_overview_get_property;
-    object_class->finalize = (GObjectFinalizeFunc) anaconda_disk_overview_finalize;
+    object_class->finalize = anaconda_disk_overview_finalize;
 
     /**
      * AnacondaDiskOverview:kind:
@@ -349,8 +349,11 @@ static void anaconda_disk_overview_toggle_background(AnacondaDiskOverview *widge
     gtk_widget_show(widget->priv->kind_icon);
 }
 
-static void anaconda_disk_overview_finalize(AnacondaDiskOverview *widget) {
+static void anaconda_disk_overview_finalize(GObject *object) {
+    AnacondaDiskOverview *widget = ANACONDA_DISK_OVERVIEW(object);
     g_object_unref(widget->priv->cursor);
+
+    G_OBJECT_CLASS(anaconda_disk_overview_parent_class)->finalize(object);
 }
 
 static void anaconda_disk_overview_realize(GtkWidget *widget, gpointer user_data) {
diff --git a/widgets/src/MountpointSelector.c b/widgets/src/MountpointSelector.c
index 3b2573a..730f107 100644
--- a/widgets/src/MountpointSelector.c
+++ b/widgets/src/MountpointSelector.c
@@ -68,7 +68,7 @@ static void anaconda_mountpoint_selector_get_property(GObject *object, guint pro
 static void anaconda_mountpoint_selector_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
 
 static void anaconda_mountpoint_selector_realize(GtkWidget *widget, gpointer user_data);
-static void anaconda_mountpoint_selector_finalize(AnacondaMountpointSelector *widget);
+static void anaconda_mountpoint_selector_finalize(GObject *object);
 
 static void anaconda_mountpoint_selector_toggle_background(AnacondaMountpointSelector *widget);
 
@@ -77,7 +77,7 @@ static void anaconda_mountpoint_selector_class_init(AnacondaMountpointSelectorCl
 
     object_class->set_property = anaconda_mountpoint_selector_set_property;
     object_class->get_property = anaconda_mountpoint_selector_get_property;
-    object_class->finalize = (GObjectFinalizeFunc) anaconda_mountpoint_selector_finalize;
+    object_class->finalize = anaconda_mountpoint_selector_finalize;
 
     /**
      * AnacondaMountpointSelector:name:
@@ -234,8 +234,11 @@ static void anaconda_mountpoint_selector_init(AnacondaMountpointSelector *mountp
     gtk_container_add(GTK_CONTAINER(mountpoint), mountpoint->priv->grid);
 }
 
-static void anaconda_mountpoint_selector_finalize(AnacondaMountpointSelector *widget) {
+static void anaconda_mountpoint_selector_finalize(GObject *object) {
+    AnacondaMountpointSelector *widget = ANACONDA_MOUNTPOINT_SELECTOR(object);
     g_object_unref(widget->priv->cursor);
+
+    G_OBJECT_CLASS(anaconda_mountpoint_selector_parent_class)->finalize(object);
 }
 
 static void anaconda_mountpoint_selector_realize(GtkWidget *widget, gpointer user_data) {
diff --git a/widgets/src/SpokeSelector.c b/widgets/src/SpokeSelector.c
index 18ce8d5..e339965 100644
--- a/widgets/src/SpokeSelector.c
+++ b/widgets/src/SpokeSelector.c
@@ -72,7 +72,7 @@ G_DEFINE_TYPE(AnacondaSpokeSelector, anaconda_spoke_selector, GTK_TYPE_EVENT_BOX
 static void anaconda_spoke_selector_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
 static void anaconda_spoke_selector_set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
 static void anaconda_spoke_selector_realize(GtkWidget *widget, gpointer user_data);
-static void anaconda_spoke_selector_finalize(AnacondaSpokeSelector *spoke);
+static void anaconda_spoke_selector_finalize(GObject *object);
 
 static gboolean anaconda_spoke_selector_focus_changed(GtkWidget *widget, GdkEventFocus *event, gpointer user_data);
 
@@ -81,7 +81,7 @@ static void anaconda_spoke_selector_class_init(AnacondaSpokeSelectorClass *klass
 
     object_class->set_property = anaconda_spoke_selector_set_property;
     object_class->get_property = anaconda_spoke_selector_get_property;
-    object_class->finalize = (GObjectFinalizeFunc) anaconda_spoke_selector_finalize;
+    object_class->finalize = anaconda_spoke_selector_finalize;
 
     /**
      * AnacondaSpokeSelector:icon:
@@ -301,8 +301,11 @@ static void anaconda_spoke_selector_init(AnacondaSpokeSelector *spoke) {
     gtk_container_add(GTK_CONTAINER(spoke), spoke->priv->grid);
 }
 
-static void anaconda_spoke_selector_finalize(AnacondaSpokeSelector *spoke) {
+static void anaconda_spoke_selector_finalize(GObject *object) {
+    AnacondaSpokeSelector *spoke = ANACONDA_SPOKE_SELECTOR(object);
     g_object_unref(spoke->priv->cursor);
+
+    G_OBJECT_CLASS(anaconda_spoke_selector_parent_class)->finalize(object);
 }
 
 static void anaconda_spoke_selector_get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) {
-- 
1.8.5.3



More information about the anaconda-patches mailing list