[gnumeric] Validation: fix chaining of finalize calls.
- From: Morten Welinder <mortenw src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnumeric] Validation: fix chaining of finalize calls.
- Date: Thu, 9 Jul 2009 15:58:18 +0000 (UTC)
commit efe2432c238f625e90d82273d06d6f84a3b5706b
Author: Morten Welinder <terra gnome org>
Date: Thu Jul 9 11:57:57 2009 -0400
Validation: fix chaining of finalize calls.
ChangeLog | 3 +++
src/gnm-cell-combo.c | 16 +++++++---------
src/gnm-sheet-slicer-combo.c | 18 +++++++++++++-----
src/validation.c | 12 +++++++++---
4 files changed, 32 insertions(+), 17 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index a461d05..7fcc23d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
2009-07-09 Morten Welinder <terra gnome org>
+ * src/validation.c (gnm_validation_combo_finalize): Call the right
+ parent class' finalizer.
+
* src/gnumeric-gconf.c (gnm_conf_init): Handle new debug flags
"conf-get" and "conf-set".
diff --git a/src/gnm-cell-combo.c b/src/gnm-cell-combo.c
index f0e021c..674f413 100644
--- a/src/gnm-cell-combo.c
+++ b/src/gnm-cell-combo.c
@@ -31,6 +31,8 @@ enum {
PROP_SV,
};
+static GObjectClass *gcc_parent_klass;
+
static void
gnm_cell_combo_set_sv (GnmCellCombo *ccombo, SheetView *sv)
{
@@ -49,22 +51,16 @@ static void
gnm_cell_combo_finalize (GObject *object)
{
GnmCellCombo *ccombo = GNM_CELL_COMBO (object);
- GObjectClass *parent;
-
gnm_cell_combo_set_sv (ccombo, NULL);
- parent = g_type_class_peek (SHEET_OBJECT_TYPE);
- parent->finalize (object);
+ gcc_parent_klass->finalize (object);
}
static void
gnm_cell_combo_dispose (GObject *object)
{
GnmCellCombo *ccombo = GNM_CELL_COMBO (object);
- GObjectClass *parent;
-
gnm_cell_combo_set_sv (ccombo, NULL);
- parent = g_type_class_peek (SHEET_OBJECT_TYPE);
- parent->dispose (object);
+ gcc_parent_klass->dispose (object);
}
static void
@@ -111,6 +107,9 @@ static void
gnm_cell_combo_class_init (GObjectClass *gobject_class)
{
SheetObjectClass *so_class = SHEET_OBJECT_CLASS (gobject_class);
+
+ gcc_parent_klass = g_type_class_peek_parent (gobject_class);
+
gobject_class->dispose = gnm_cell_combo_dispose;
gobject_class->finalize = gnm_cell_combo_finalize;
gobject_class->get_property = gnm_cell_combo_get_property;
@@ -128,4 +127,3 @@ gnm_cell_combo_class_init (GObjectClass *gobject_class)
GSF_CLASS_ABSTRACT (GnmCellCombo, gnm_cell_combo,
gnm_cell_combo_class_init, gnm_cell_combo_init,
SHEET_OBJECT_TYPE)
-
diff --git a/src/gnm-sheet-slicer-combo.c b/src/gnm-sheet-slicer-combo.c
index d864583..f8d3357 100644
--- a/src/gnm-sheet-slicer-combo.c
+++ b/src/gnm-sheet-slicer-combo.c
@@ -33,16 +33,16 @@ enum {
PROP_FIELD
};
+static GObjectClass *gssc_parent_klass;
+
static void
gnm_sheet_slicer_combo_finalize (GObject *object)
{
#if 0
GnmSheetSlicerCombo *sscombo = GNM_SHEET_SLICER_COMBO (object);
#endif
- GObjectClass *parent;
- parent = g_type_class_peek (gnm_cell_combo_get_type ());
- parent->finalize (object);
+ gssc_parent_klass->finalize (object);
}
static void
@@ -64,7 +64,9 @@ gnm_sheet_slicer_combo_set_property (GObject *obj, guint property_id,
GnmSheetSlicerCombo *sscombo = (GnmSheetSlicerCombo *)obj;
switch (property_id) {
- case PROP_FIELD : sscombo->dsf = g_value_get_object (value); break;
+ case PROP_FIELD:
+ sscombo->dsf = g_value_get_object (value);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, property_id, pspec);
}
@@ -76,15 +78,21 @@ gnm_sheet_slicer_combo_get_property (GObject *obj, guint property_id,
{
GnmSheetSlicerCombo const *sscombo = (GnmSheetSlicerCombo const *)obj;
switch (property_id) {
- case PROP_FIELD : g_value_set_object (value, (GObject *) (sscombo->dsf)); break;
+ case PROP_FIELD:
+ g_value_set_object (value, (GObject *) (sscombo->dsf));
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, property_id, pspec);
}
}
+
static void
gnm_sheet_slicer_combo_class_init (GObjectClass *gobject_class)
{
SheetObjectClass *so_class = SHEET_OBJECT_CLASS (gobject_class);
+
+ gssc_parent_klass = g_type_class_peek_parent (gobject_class);
+
gobject_class->set_property = gnm_sheet_slicer_combo_set_property;
gobject_class->get_property = gnm_sheet_slicer_combo_get_property;
gobject_class->finalize = gnm_sheet_slicer_combo_finalize;
diff --git a/src/validation.c b/src/validation.c
index 29bc73a..0e7bcf2 100644
--- a/src/validation.c
+++ b/src/validation.c
@@ -82,35 +82,41 @@ static struct {
/***************************************************************************/
+static GObjectClass *gvc_parent_klass;
+
static void
gnm_validation_combo_finalize (GObject *object)
{
GnmValidationCombo *vcombo = GNM_VALIDATION_COMBO (object);
- GObjectClass *parent;
+
if (NULL != vcombo->validation) {
validation_unref (vcombo->validation);
vcombo->validation = NULL;
}
- parent = g_type_class_peek (SHEET_OBJECT_TYPE);
- parent->finalize (object);
+
+ gvc_parent_klass->finalize (object);
}
static void
gnm_validation_combo_init (SheetObject *so)
{
}
+
static SheetObjectView *
gnm_validation_combo_foo_view_new (SheetObject *so, SheetObjectViewContainer *container)
{
return gnm_cell_combo_foo_view_new (so,
gnm_validation_combo_foo_view_get_type (), container);
}
+
static void
gnm_validation_combo_class_init (GObjectClass *gobject_class)
{
SheetObjectClass *so_class = SHEET_OBJECT_CLASS (gobject_class);
gobject_class->finalize = gnm_validation_combo_finalize;
so_class->new_view = gnm_validation_combo_foo_view_new;
+
+ gvc_parent_klass = g_type_class_peek_parent (gobject_class);
}
typedef SheetObjectClass GnmValidationComboClass;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]