gnucash stable: Multiple changes pushed

John Ralls jralls at code.gnucash.org
Wed May 24 11:29:34 EDT 2023


Updated	 via  https://github.com/Gnucash/gnucash/commit/8a5b3721 (commit)
	 via  https://github.com/Gnucash/gnucash/commit/2db5004a (commit)
	from  https://github.com/Gnucash/gnucash/commit/ad7bae82 (commit)



commit 8a5b3721df31f961a578765c17c6681c3479c956
Merge: ad7bae8222 2db5004a22
Author: John Ralls <jralls at ceridwen.us>
Date:   Wed May 24 11:25:16 2023 -0400

    Merge Richard Cohen's 'remove-duplicate-define-type-code' into stable.


commit 2db5004a22dc4c268eec5b785d8d0e2621b8187f
Author: Richard Cohen <richard at daijobu.co.uk>
Date:   Sat May 20 12:58:39 2023 +0100

    Remove code that duplicates features of G_DEFINE_TYPE
    
    - declarations of *_init, *_class_init
    - implementation of *_parent_class
    
    - also, removed unnecessary NULL checks for destroy, dispose, finalize

diff --git a/gnucash/gnome-search/gnc-general-search.c b/gnucash/gnome-search/gnc-general-search.c
index f4aed242fe..fa4ec66b93 100644
--- a/gnucash/gnome-search/gnc-general-search.c
+++ b/gnucash/gnome-search/gnc-general-search.c
@@ -58,8 +58,6 @@ enum
     GSL_N_COLUMNS
 };
 
-static void gnc_general_search_init         (GNCGeneralSearch      *gsl);
-static void gnc_general_search_class_init   (GNCGeneralSearchClass *klass);
 static void gnc_general_search_destroy      (GtkWidget             *widget);
 
 typedef struct _GNCGeneralSearchPrivate GNCGeneralSearchPrivate;
@@ -80,7 +78,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GNCGeneralSearch, gnc_general_search, GTK_TYPE_BOX)
 #define _PRIVATE(o) \
    ((GNCGeneralSearchPrivate*)gnc_general_search_get_instance_private((GNCGeneralSearch*)o))
 
-static GtkBoxClass *parent_class;
 static guint general_search_signals[LAST_SIGNAL];
 
 static void
@@ -88,7 +85,6 @@ gnc_general_search_class_init (GNCGeneralSearchClass *klass)
 {
     GtkWidgetClass *object_class = (GtkWidgetClass *) klass;
 
-    parent_class = g_type_class_peek_parent (klass);
 
     general_search_signals[SELECTION_CHANGED] =
         g_signal_new("changed",
@@ -141,8 +137,7 @@ gnc_general_search_destroy (GtkWidget *widget)
         priv->component_id = 0;
     }
 
-    if (GTK_WIDGET_CLASS (parent_class)->destroy)
-        GTK_WIDGET_CLASS (parent_class)->destroy (widget);
+    GTK_WIDGET_CLASS (gnc_general_search_parent_class)->destroy (widget);
 }
 
 /* The "selection" contents have changed.  Change the text. */
diff --git a/gnucash/gnome-search/search-account.c b/gnucash/gnome-search/search-account.c
index ecd1d803ee..a623fae96d 100644
--- a/gnucash/gnome-search/search-account.c
+++ b/gnucash/gnome-search/search-account.c
@@ -45,8 +45,6 @@ static gboolean gncs_validate (GNCSearchCoreType *fe);
 static GtkWidget *gncs_get_widget(GNCSearchCoreType *fe);
 static QofQueryPredData* gncs_get_predicate (GNCSearchCoreType *fe);
 
-static void gnc_search_account_class_init	(GNCSearchAccountClass *klass);
-static void gnc_search_account_init	(GNCSearchAccount *gspaper);
 static void gnc_search_account_finalize	(GObject *obj);
 
 typedef struct _GNCSearchAccountPrivate GNCSearchAccountPrivate;
@@ -63,8 +61,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchAccount, gnc_search_account, GNC_TYPE_SEARCH
 #define _PRIVATE(o) \
    ((GNCSearchAccountPrivate*)gnc_search_account_get_instance_private((GNCSearchAccount*)o))
 
-static GNCSearchCoreTypeClass *parent_class;
-
 static void
 gnc_search_account_class_init (GNCSearchAccountClass *klass)
 {
@@ -72,7 +68,6 @@ gnc_search_account_class_init (GNCSearchAccountClass *klass)
     GNCSearchCoreTypeClass *gnc_search_core_type = (GNCSearchCoreTypeClass *)klass;
 
     object_class = G_OBJECT_CLASS (klass);
-    parent_class = g_type_class_peek_parent (klass);
 
     object_class->finalize = gnc_search_account_finalize;
 
@@ -96,7 +91,7 @@ gnc_search_account_finalize (GObject *obj)
     GNCSearchAccount *o = (GNCSearchAccount *)obj;
     g_assert (IS_GNCSEARCH_ACCOUNT (o));
 
-    G_OBJECT_CLASS (parent_class)->finalize(obj);
+    G_OBJECT_CLASS (gnc_search_account_parent_class)->finalize(obj);
 }
 
 /**
diff --git a/gnucash/gnome-search/search-boolean.c b/gnucash/gnome-search/search-boolean.c
index 496a36d15e..d54056ccec 100644
--- a/gnucash/gnome-search/search-boolean.c
+++ b/gnucash/gnome-search/search-boolean.c
@@ -41,8 +41,6 @@ static gboolean gncs_validate (GNCSearchCoreType *fe);
 static GtkWidget *gncs_get_widget(GNCSearchCoreType *fe);
 static QofQueryPredData* gncs_get_predicate (GNCSearchCoreType *fe);
 
-static void gnc_search_boolean_class_init	(GNCSearchBooleanClass *klass);
-static void gnc_search_boolean_init	(GNCSearchBoolean *gspaper);
 static void gnc_search_boolean_finalize	(GObject *obj);
 
 typedef struct _GNCSearchBooleanPrivate GNCSearchBooleanPrivate;
@@ -58,8 +56,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchBoolean, gnc_search_boolean, GNC_TYPE_SEARCH
 #define _PRIVATE(o) \
    ((GNCSearchBooleanPrivate*)gnc_search_boolean_get_instance_private((GNCSearchBoolean*)o))
 
-static GNCSearchCoreTypeClass *parent_class;
-
 static void
 gnc_search_boolean_class_init (GNCSearchBooleanClass *klass)
 {
@@ -67,7 +63,6 @@ gnc_search_boolean_class_init (GNCSearchBooleanClass *klass)
     GNCSearchCoreTypeClass *gnc_search_core_type = (GNCSearchCoreTypeClass *)klass;
 
     object_class = G_OBJECT_CLASS (klass);
-    parent_class = g_type_class_peek_parent (klass);
 
     object_class->finalize = gnc_search_boolean_finalize;
 
@@ -91,7 +86,7 @@ gnc_search_boolean_finalize (GObject *obj)
     GNCSearchBoolean *o = (GNCSearchBoolean *)obj;
     g_assert (IS_GNCSEARCH_BOOLEAN (o));
 
-    G_OBJECT_CLASS (parent_class)->finalize(obj);
+    G_OBJECT_CLASS (gnc_search_boolean_parent_class)->finalize(obj);
 }
 
 /**
diff --git a/gnucash/gnome-search/search-core-type.c b/gnucash/gnome-search/search-core-type.c
index 7ea04ab205..6612ec624c 100644
--- a/gnucash/gnome-search/search-core-type.c
+++ b/gnucash/gnome-search/search-core-type.c
@@ -44,8 +44,6 @@ static void grab_focus (GNCSearchCoreType *fe);
 static void editable_enters (GNCSearchCoreType *fe);
 static gboolean validate (GNCSearchCoreType *fe);
 
-static void gnc_search_core_type_class_init	(GNCSearchCoreTypeClass *klass);
-static void gnc_search_core_type_init	(GNCSearchCoreType *gspaper);
 static void gnc_search_core_type_finalize	(GObject *obj);
 
 typedef struct _GNCSearchCoreTypePrivate GNCSearchCoreTypePrivate;
@@ -60,8 +58,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchCoreType, gnc_search_core_type, G_TYPE_OBJEC
 #define _PRIVATE(o) \
    ((GNCSearchCoreTypePrivate*)gnc_search_core_type_get_instance_private((GNCSearchCoreType*)o))
 
-static GObjectClass *parent_class;
-
 static GHashTable *typeTable = NULL;
 
 static void
@@ -70,7 +66,6 @@ gnc_search_core_type_class_init (GNCSearchCoreTypeClass *klass)
     GObjectClass *object_class;
 
     object_class = G_OBJECT_CLASS (klass);
-    parent_class = g_type_class_peek_parent (klass);
 
     object_class->finalize = gnc_search_core_type_finalize;
 
@@ -91,7 +86,7 @@ gnc_search_core_type_finalize (GObject *obj)
     GNCSearchCoreType *o = (GNCSearchCoreType *)obj;
     g_assert (GNC_IS_SEARCH_CORE_TYPE (o));
 
-    G_OBJECT_CLASS (parent_class)->finalize(obj);
+    G_OBJECT_CLASS (gnc_search_core_type_parent_class)->finalize(obj);
 }
 
 /**
diff --git a/gnucash/gnome-search/search-date.c b/gnucash/gnome-search/search-date.c
index 7649f7e357..62d50beb5b 100644
--- a/gnucash/gnome-search/search-date.c
+++ b/gnucash/gnome-search/search-date.c
@@ -45,8 +45,6 @@ static gboolean gncs_validate (GNCSearchCoreType *fe);
 static GtkWidget *gncs_get_widget (GNCSearchCoreType *fe);
 static QofQueryPredData* gncs_get_predicate (GNCSearchCoreType *fe);
 
-static void gnc_search_date_class_init (GNCSearchDateClass *klass);
-static void gnc_search_date_init (GNCSearchDate *gspaper);
 static void gnc_search_date_finalize (GObject *obj);
 
 typedef struct _GNCSearchDatePrivate GNCSearchDatePrivate;
@@ -62,8 +60,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchDate, gnc_search_date, GNC_TYPE_SEARCH_CORE_
 #define _PRIVATE(o) \
    ((GNCSearchDatePrivate*)gnc_search_date_get_instance_private((GNCSearchDate*)o))
 
-static GNCSearchCoreTypeClass *parent_class;
-
 static void
 gnc_search_date_class_init (GNCSearchDateClass *klass)
 {
@@ -71,7 +67,6 @@ gnc_search_date_class_init (GNCSearchDateClass *klass)
     GNCSearchCoreTypeClass *gnc_search_core_type = (GNCSearchCoreTypeClass *)klass;
 
     object_class = G_OBJECT_CLASS (klass);
-    parent_class = g_type_class_peek_parent (klass);
 
     object_class->finalize = gnc_search_date_finalize;
 
@@ -105,7 +100,7 @@ gnc_search_date_finalize (GObject *obj)
     if (priv->entry)
         gtk_widget_destroy (priv->entry);
 
-    G_OBJECT_CLASS (parent_class)->finalize(obj);
+    G_OBJECT_CLASS (gnc_search_date_parent_class)->finalize(obj);
 }
 
 /**
diff --git a/gnucash/gnome-search/search-double.c b/gnucash/gnome-search/search-double.c
index 991be23a1f..2c6d695b4b 100644
--- a/gnucash/gnome-search/search-double.c
+++ b/gnucash/gnome-search/search-double.c
@@ -45,8 +45,6 @@ static gboolean gncs_validate (GNCSearchCoreType *fe);
 static GtkWidget *gncs_get_widget(GNCSearchCoreType *fe);
 static QofQueryPredData* gncs_get_predicate (GNCSearchCoreType *fe);
 
-static void gnc_search_double_class_init	(GNCSearchDoubleClass *klass);
-static void gnc_search_double_init	(GNCSearchDouble *gspaper);
 static void gnc_search_double_finalize	(GObject *obj);
 
 typedef struct _GNCSearchDoublePrivate GNCSearchDoublePrivate;
@@ -63,8 +61,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchDouble, gnc_search_double, GNC_TYPE_SEARCH_C
 #define _PRIVATE(o) \
    ((GNCSearchDoublePrivate*)gnc_search_double_get_instance_private((GNCSearchDouble*)o))
 
-static GNCSearchCoreTypeClass *parent_class;
-
 static void
 gnc_search_double_class_init (GNCSearchDoubleClass *klass)
 {
@@ -72,7 +68,6 @@ gnc_search_double_class_init (GNCSearchDoubleClass *klass)
     GNCSearchCoreTypeClass *gnc_search_core_type = (GNCSearchCoreTypeClass *)klass;
 
     object_class = G_OBJECT_CLASS (klass);
-    parent_class = g_type_class_peek_parent (klass);
 
     object_class->finalize = gnc_search_double_finalize;
 
@@ -98,7 +93,7 @@ gnc_search_double_finalize (GObject *obj)
     GNCSearchDouble *o = (GNCSearchDouble *)obj;
     g_assert (IS_GNCSEARCH_DOUBLE (o));
 
-    G_OBJECT_CLASS (parent_class)->finalize(obj);
+    G_OBJECT_CLASS (gnc_search_double_parent_class)->finalize(obj);
 }
 
 /**
diff --git a/gnucash/gnome-search/search-int64.c b/gnucash/gnome-search/search-int64.c
index 6c129efd81..47e8038ec1 100644
--- a/gnucash/gnome-search/search-int64.c
+++ b/gnucash/gnome-search/search-int64.c
@@ -45,8 +45,6 @@ static gboolean gncs_validate (GNCSearchCoreType *fe);
 static GtkWidget *gncs_get_widget(GNCSearchCoreType *fe);
 static QofQueryPredData* gncs_get_predicate (GNCSearchCoreType *fe);
 
-static void gnc_search_int64_class_init	(GNCSearchInt64Class *klass);
-static void gnc_search_int64_init	(GNCSearchInt64 *gspaper);
 static void gnc_search_int64_finalize	(GObject *obj);
 
 
@@ -64,8 +62,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchInt64, gnc_search_int64, GNC_TYPE_SEARCH_COR
 #define _PRIVATE(o) \
    ((GNCSearchInt64Private*)gnc_search_int64_get_instance_private((GNCSearchInt64*)o))
 
-static GNCSearchCoreTypeClass *parent_class;
-
 static void
 gnc_search_int64_class_init (GNCSearchInt64Class *klass)
 {
@@ -73,7 +69,6 @@ gnc_search_int64_class_init (GNCSearchInt64Class *klass)
     GNCSearchCoreTypeClass *gnc_search_core_type = (GNCSearchCoreTypeClass *)klass;
 
     object_class = G_OBJECT_CLASS (klass);
-    parent_class = g_type_class_peek_parent (klass);
 
     object_class->finalize = gnc_search_int64_finalize;
 
@@ -99,7 +94,7 @@ gnc_search_int64_finalize (GObject *obj)
     GNCSearchInt64 *o = (GNCSearchInt64 *)obj;
     g_assert (IS_GNCSEARCH_INT64 (o));
 
-    G_OBJECT_CLASS (parent_class)->finalize(obj);
+    G_OBJECT_CLASS (gnc_search_int64_parent_class)->finalize(obj);
 }
 
 /**
diff --git a/gnucash/gnome-search/search-numeric.c b/gnucash/gnome-search/search-numeric.c
index 6b2a6d2d40..fc812e8df9 100644
--- a/gnucash/gnome-search/search-numeric.c
+++ b/gnucash/gnome-search/search-numeric.c
@@ -45,8 +45,6 @@ static gboolean gncs_validate (GNCSearchCoreType *fe);
 static GtkWidget *gncs_get_widget(GNCSearchCoreType *fe);
 static QofQueryPredData* gncs_get_predicate (GNCSearchCoreType *fe);
 
-static void gnc_search_numeric_class_init	(GNCSearchNumericClass *klass);
-static void gnc_search_numeric_init	(GNCSearchNumeric *gspaper);
 static void gnc_search_numeric_finalize	(GObject *obj);
 
 typedef struct _GNCSearchNumericPrivate GNCSearchNumericPrivate;
@@ -64,8 +62,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchNumeric, gnc_search_numeric, GNC_TYPE_SEARCH
 #define _PRIVATE(o) \
    ((GNCSearchNumericPrivate*)gnc_search_numeric_get_instance_private((GNCSearchNumeric*)o))
 
-static GNCSearchCoreTypeClass *parent_class;
-
 static void
 gnc_search_numeric_class_init (GNCSearchNumericClass *klass)
 {
@@ -73,7 +69,6 @@ gnc_search_numeric_class_init (GNCSearchNumericClass *klass)
     GNCSearchCoreTypeClass *gnc_search_core_type = (GNCSearchCoreTypeClass *)klass;
 
     object_class = G_OBJECT_CLASS (klass);
-    parent_class = g_type_class_peek_parent (klass);
 
     object_class->finalize = gnc_search_numeric_finalize;
 
@@ -101,7 +96,7 @@ gnc_search_numeric_finalize (GObject *obj)
     GNCSearchNumeric *o = (GNCSearchNumeric *)obj;
     g_assert (IS_GNCSEARCH_NUMERIC (o));
 
-    G_OBJECT_CLASS (parent_class)->finalize(obj);
+    G_OBJECT_CLASS (gnc_search_numeric_parent_class)->finalize(obj);
 }
 
 /**
diff --git a/gnucash/gnome-search/search-reconciled.c b/gnucash/gnome-search/search-reconciled.c
index 06599aa46f..d7fd1bfecc 100644
--- a/gnucash/gnome-search/search-reconciled.c
+++ b/gnucash/gnome-search/search-reconciled.c
@@ -43,8 +43,6 @@ static gboolean gncs_validate (GNCSearchCoreType *fe);
 static GtkWidget *gncs_get_widget(GNCSearchCoreType *fe);
 static QofQueryPredData* gncs_get_predicate (GNCSearchCoreType *fe);
 
-static void gnc_search_reconciled_class_init	(GNCSearchReconciledClass *klass);
-static void gnc_search_reconciled_init	(GNCSearchReconciled *gspaper);
 static void gnc_search_reconciled_finalize	(GObject *obj);
 
 typedef struct _GNCSearchReconciledPrivate GNCSearchReconciledPrivate;
@@ -60,8 +58,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchReconciled, gnc_search_reconciled, GNC_TYPE_
 #define _PRIVATE(o) \
    ((GNCSearchReconciledPrivate*)gnc_search_reconciled_get_instance_private((GNCSearchReconciled*)o))
 
-static GNCSearchCoreTypeClass *parent_class;
-
 static void
 gnc_search_reconciled_class_init (GNCSearchReconciledClass *klass)
 {
@@ -69,7 +65,6 @@ gnc_search_reconciled_class_init (GNCSearchReconciledClass *klass)
     GNCSearchCoreTypeClass *gnc_search_core_type = (GNCSearchCoreTypeClass *)klass;
 
     object_class = G_OBJECT_CLASS (klass);
-    parent_class = g_type_class_peek_parent (klass);
 
     object_class->finalize = gnc_search_reconciled_finalize;
 
@@ -94,7 +89,7 @@ gnc_search_reconciled_finalize (GObject *obj)
     GNCSearchReconciled *o = (GNCSearchReconciled *)obj;
     g_assert (IS_GNCSEARCH_RECONCILED (o));
 
-    G_OBJECT_CLASS (parent_class)->finalize(obj);
+    G_OBJECT_CLASS (gnc_search_reconciled_parent_class)->finalize(obj);
 }
 
 /**
diff --git a/gnucash/gnome-search/search-string.c b/gnucash/gnome-search/search-string.c
index c54513ab0e..b14e1222df 100644
--- a/gnucash/gnome-search/search-string.c
+++ b/gnucash/gnome-search/search-string.c
@@ -45,8 +45,6 @@ static gboolean gncs_validate (GNCSearchCoreType *fe);
 static GtkWidget *gncs_get_widget(GNCSearchCoreType *fe);
 static QofQueryPredData* gncs_get_predicate (GNCSearchCoreType *fe);
 
-static void gnc_search_string_class_init	(GNCSearchStringClass *klass);
-static void gnc_search_string_init	(GNCSearchString *gspaper);
 static void gnc_search_string_finalize	(GObject *obj);
 
 typedef struct _GNCSearchStringPrivate GNCSearchStringPrivate;
@@ -62,8 +60,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchString, gnc_search_string, GNC_TYPE_SEARCH_C
 #define _PRIVATE(o) \
    ((GNCSearchStringPrivate*)gnc_search_string_get_instance_private((GNCSearchString*)o))
 
-static GNCSearchCoreTypeClass *parent_class;
-
 static void
 gnc_search_string_class_init (GNCSearchStringClass *klass)
 {
@@ -71,7 +67,6 @@ gnc_search_string_class_init (GNCSearchStringClass *klass)
     GNCSearchCoreTypeClass *gnc_search_core_type = (GNCSearchCoreTypeClass *)klass;
 
     object_class = G_OBJECT_CLASS (klass);
-    parent_class = g_type_class_peek_parent (klass);
 
     object_class->finalize = gnc_search_string_finalize;
 
@@ -101,7 +96,7 @@ gnc_search_string_finalize (GObject *obj)
 
     g_free (o->value);
 
-    G_OBJECT_CLASS (parent_class)->finalize(obj);
+    G_OBJECT_CLASS (gnc_search_string_parent_class)->finalize(obj);
 }
 
 /**
diff --git a/gnucash/gnome-utils/gnc-account-sel.c b/gnucash/gnome-utils/gnc-account-sel.c
index ff19659145..2b719fed25 100644
--- a/gnucash/gnome-utils/gnc-account-sel.c
+++ b/gnucash/gnome-utils/gnc-account-sel.c
@@ -89,8 +89,6 @@ enum
 
 static guint account_sel_signals [LAST_SIGNAL] = { 0 };
 
-static void gnc_account_sel_init (GNCAccountSel *gas);
-static void gnc_account_sel_class_init (GNCAccountSelClass *klass);
 static void gnc_account_sel_finalize (GObject *object);
 static void gnc_account_sel_dispose (GObject *object);
 
@@ -106,8 +104,6 @@ static void gas_get_property (GObject    *object,
 
 static void gas_new_account_click (GtkButton *b, gpointer ud);
 
-static GtkBox *parent_class;
-
 #define GNC_ACCOUNT_SEL_PATH "gnc-account-sel-path"
 
 G_DEFINE_TYPE (GNCAccountSel, gnc_account_sel, GTK_TYPE_BOX)
@@ -204,8 +200,6 @@ gnc_account_sel_class_init (GNCAccountSelClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS(klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_account_sel_finalize;
     object_class->dispose = gnc_account_sel_dispose;
 
@@ -938,7 +932,7 @@ gnc_account_sel_finalize (GObject *object)
     if (gas->acctExcludeList)
         g_list_free (gas->acctExcludeList);
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_account_sel_parent_class)->finalize (object);
 }
 
 static void
@@ -963,7 +957,7 @@ gnc_account_sel_dispose (GObject *object)
         gtk_tree_row_reference_free (gas->saved_account_ref);
     gas->saved_account_ref = NULL;
 
-    G_OBJECT_CLASS (parent_class)->dispose (object);
+    G_OBJECT_CLASS (gnc_account_sel_parent_class)->dispose (object);
 }
 
 void
diff --git a/gnucash/gnome-utils/gnc-amount-edit.c b/gnucash/gnome-utils/gnc-amount-edit.c
index eea7082dcf..492c37999a 100644
--- a/gnucash/gnome-utils/gnc-amount-edit.c
+++ b/gnucash/gnome-utils/gnc-amount-edit.c
@@ -53,8 +53,6 @@ enum
 
 static guint amount_edit_signals [LAST_SIGNAL] = { 0 };
 
-static void gnc_amount_edit_init (GNCAmountEdit *gae);
-static void gnc_amount_edit_class_init (GNCAmountEditClass *klass);
 static void gnc_amount_edit_changed (GtkEditable *gae,
                                      gpointer user_data);
 static void gnc_amount_edit_paste_clipboard (GtkEntry *entry,
diff --git a/gnucash/gnome-utils/gnc-cell-renderer-text-view.c b/gnucash/gnome-utils/gnc-cell-renderer-text-view.c
index ad1d48dc1b..78b3b0ddca 100644
--- a/gnucash/gnome-utils/gnc-cell-renderer-text-view.c
+++ b/gnucash/gnome-utils/gnc-cell-renderer-text-view.c
@@ -27,9 +27,6 @@
 #include "gnc-cell-renderer-text-view.h"
 #include "gnc-cell-view.h"
 
-static void      gnc_cell_renderer_text_view_init       (GncCellRendererTextView      *self);
-static void      gnc_cell_renderer_text_view_class_init (GncCellRendererTextViewClass *klass);
-
 static GtkCellEditable *gcrtv_start_editing (GtkCellRenderer          *cell,
                                              GdkEvent                 *event,
                                              GtkWidget                *widget,
diff --git a/gnucash/gnome-utils/gnc-cell-view.c b/gnucash/gnome-utils/gnc-cell-view.c
index 47ffa503dc..6004c6fef5 100644
--- a/gnucash/gnome-utils/gnc-cell-view.c
+++ b/gnucash/gnome-utils/gnc-cell-view.c
@@ -27,8 +27,6 @@
 
 #include "gnc-cell-view.h"
 
-static void     gnc_cell_view_init          (GncCellView          *cv);
-static void     gnc_cell_view_class_init    (GncCellViewClass     *klass);
 static void     gnc_cell_view_editable_init (GtkCellEditableIface *iface);
 
 static void     gnc_cell_view_set_property  (GObject              *object,
diff --git a/gnucash/gnome-utils/gnc-currency-edit.c b/gnucash/gnome-utils/gnc-currency-edit.c
index 8ffce56316..eb1f650065 100644
--- a/gnucash/gnome-utils/gnc-currency-edit.c
+++ b/gnucash/gnome-utils/gnc-currency-edit.c
@@ -64,8 +64,6 @@
 /** The debugging module used by this file. */
 static QofLogModule log_module = GNC_MOD_GUI;
 
-static void gnc_currency_edit_init         (GNCCurrencyEdit      *gce);
-static void gnc_currency_edit_class_init   (GNCCurrencyEditClass *klass);
 static void gnc_currency_edit_finalize     (GObject *object);
 static void gnc_currency_edit_mnemonic_changed (GObject    *gobject,
         GParamSpec *pspec,
@@ -73,8 +71,6 @@ static void gnc_currency_edit_mnemonic_changed (GObject    *gobject,
 static void gnc_currency_edit_active_changed (GtkComboBox *gobject,
         gpointer     user_data);
 
-static GtkComboBoxClass *parent_class;
-
 /** The instance private data for a content plugin. */
 typedef struct _GNCCurrencyEditPrivate
 {
@@ -156,7 +152,6 @@ static void
 gnc_currency_edit_class_init (GNCCurrencyEditClass *klass)
 {
     GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-    parent_class = g_type_class_peek_parent (klass);
 
     gobject_class->set_property = gnc_currency_edit_set_property;
     gobject_class->get_property = gnc_currency_edit_get_property;
@@ -221,8 +216,7 @@ gnc_currency_edit_finalize (GObject *object)
     /* Do not free the private data structure itself. It is part of
      * a larger memory block allocated by the type system. */
 
-    if (G_OBJECT_CLASS(parent_class)->finalize)
-        (* G_OBJECT_CLASS(parent_class)->finalize) (object);
+    G_OBJECT_CLASS(gnc_currency_edit_parent_class)->finalize (object);
 }
 
 
diff --git a/gnucash/gnome-utils/gnc-date-format.c b/gnucash/gnome-utils/gnc-date-format.c
index c6dc37f6ab..26edea0ded 100644
--- a/gnucash/gnome-utils/gnc-date-format.c
+++ b/gnucash/gnome-utils/gnc-date-format.c
@@ -81,15 +81,11 @@ struct _GNCDateFormatPrivate
 
 static guint date_format_signals [LAST_SIGNAL] = { 0 };
 
-static void gnc_date_format_init         (GNCDateFormat      *gdf);
-static void gnc_date_format_class_init   (GNCDateFormatClass *klass);
 static void gnc_date_format_finalize     (GObject            *object);
 static void gnc_date_format_compute_format(GNCDateFormat *gdf);
 
 void gnc_ui_date_format_changed_cb(GtkWidget *unused, gpointer user_data);
 
-static GtkBoxClass *parent_class;
-
 G_DEFINE_TYPE_WITH_PRIVATE(GNCDateFormat, gnc_date_format, GTK_TYPE_BOX)
 
 static void
@@ -97,8 +93,6 @@ gnc_date_format_class_init (GNCDateFormatClass *klass)
 {
     GObjectClass   *gobject_class = (GObjectClass *) klass;
 
-    parent_class = g_type_class_peek_parent(klass);
-
     gobject_class->finalize = gnc_date_format_finalize;
 
     date_format_signals [FORMAT_CHANGED] =
@@ -179,8 +173,7 @@ gnc_date_format_finalize (GObject *object)
     g_return_if_fail(object != NULL);
     g_return_if_fail(GNC_IS_DATE_FORMAT(object));
 
-    if (G_OBJECT_CLASS(parent_class)->finalize)
-        (* G_OBJECT_CLASS(parent_class)->finalize) (object);
+    G_OBJECT_CLASS(gnc_date_format_parent_class)->finalize (object);
 }
 
 
diff --git a/gnucash/gnome-utils/gnc-embedded-window.c b/gnucash/gnome-utils/gnc-embedded-window.c
index d952ebf505..b35233759c 100644
--- a/gnucash/gnome-utils/gnc-embedded-window.c
+++ b/gnucash/gnome-utils/gnc-embedded-window.c
@@ -52,12 +52,9 @@ enum
 
 /** The debugging module that this .o belongs to.  */
 static QofLogModule log_module = GNC_MOD_GUI;
-/** A pointer to the parent class of an embedded window. */
-static GObjectClass *parent_class = NULL;
 
 
 /* Declarations *********************************************************/
-static void gnc_embedded_window_class_init (GncEmbeddedWindowClass *klass);
 static void gnc_embedded_window_finalize (GObject *object);
 static void gnc_embedded_window_dispose (GObject *object);
 
@@ -190,8 +187,6 @@ gnc_embedded_window_class_init (GncEmbeddedWindowClass *klass)
     ENTER("klass %p", klass);
     object_class = G_OBJECT_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_embedded_window_finalize;
     object_class->dispose = gnc_embedded_window_dispose;
 
@@ -257,7 +252,7 @@ gnc_embedded_window_finalize (GObject *object)
 
     ENTER("object %p", object);
     gnc_gobject_tracking_forget(object);
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_embedded_window_parent_class)->finalize (object);
     LEAVE(" ");
 }
 
@@ -287,7 +282,7 @@ gnc_embedded_window_dispose (GObject *object)
         priv->page = NULL;
     }
 
-    G_OBJECT_CLASS (parent_class)->dispose (object);
+    G_OBJECT_CLASS (gnc_embedded_window_parent_class)->dispose (object);
     LEAVE(" ");
 }
 
diff --git a/gnucash/gnome-utils/gnc-main-window.cpp b/gnucash/gnome-utils/gnc-main-window.cpp
index 7db7a5b0ee..dff49b2d78 100644
--- a/gnucash/gnome-utils/gnc-main-window.cpp
+++ b/gnucash/gnome-utils/gnc-main-window.cpp
@@ -139,8 +139,6 @@ extern gboolean gnc_book_options_dialog_apply_helper(GncOptionDB * options);
 
 /** The debugging module that this .o belongs to.  */
 static QofLogModule log_module = GNC_MOD_GUI;
-/** A pointer to the parent class of an embedded window. */
-static GObjectClass *parent_class = nullptr;
 /** An identifier that indicates a "main" window. */
 static GQuark window_type = 0;
 /** A list of all extant main windows. This is for convenience as the
@@ -152,9 +150,6 @@ static guint secs_to_save = 0;
 #define MSG_AUTO_SAVE _("Changes will be saved automatically in %u seconds")
 
 /* Declarations *********************************************************/
-static void gnc_main_window_class_init (GncMainWindowClass *klass);
-static void gnc_main_window_init (GncMainWindow *window,
-                                  void *data);
 static void gnc_main_window_finalize (GObject *object);
 static void gnc_main_window_destroy (GtkWidget *widget);
 
@@ -2625,8 +2620,6 @@ gnc_main_window_class_init (GncMainWindowClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GtkWidgetClass *gtkwidget_class = GTK_WIDGET_CLASS(klass);
 
-    parent_class = static_cast<GObjectClass*>(g_type_class_peek_parent (klass));
-
     window_type = g_quark_from_static_string ("gnc-main-window");
 
     object_class->finalize = gnc_main_window_finalize;
@@ -2780,7 +2773,7 @@ gnc_main_window_finalize (GObject *object)
     }
 
     gnc_gobject_tracking_forget(object);
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_main_window_parent_class)->finalize (object);
 }
 
 
@@ -2885,7 +2878,8 @@ gnc_main_window_destroy (GtkWidget *widget)
         g_list_foreach (plugins, gnc_main_window_remove_plugin, window);
         g_list_free (plugins);
     }
-    GTK_WIDGET_CLASS (parent_class)->destroy (widget);
+
+    GTK_WIDGET_CLASS (gnc_main_window_parent_class)->destroy (widget);
 }
 
 
diff --git a/gnucash/gnome-utils/gnc-period-select.c b/gnucash/gnome-utils/gnc-period-select.c
index ecd4417baf..a54de0cfa0 100644
--- a/gnucash/gnome-utils/gnc-period-select.c
+++ b/gnucash/gnome-utils/gnc-period-select.c
@@ -57,13 +57,8 @@ enum
 static guint signals[LAST_SIGNAL] = { 0 };
 
 /** Declarations *********************************************************/
-static void gnc_period_select_init         (GncPeriodSelect      *gce);
-static void gnc_period_select_class_init   (GncPeriodSelectClass *klass);
 static void gnc_period_select_finalize     (GObject *object);
 
-static GtkComboBoxClass *parent_class;
-
-
 const gchar *start_strings[GNC_ACCOUNTING_PERIOD_LAST] =
 {
     /* CY (current year) Strings */
@@ -514,8 +509,6 @@ gnc_period_select_class_init (GncPeriodSelectClass *klass)
 {
     GObjectClass *gobject_class;
 
-    parent_class = g_type_class_peek_parent(klass);
-
     gobject_class = G_OBJECT_CLASS(klass);
     gobject_class->set_property = gnc_period_select_set_property;
     gobject_class->get_property = gnc_period_select_get_property;
@@ -621,8 +614,7 @@ gnc_period_select_finalize (GObject *object)
     /* Do not free the private data structure. It is part of a larger
      * memory block allocated by the type system. */
 
-    if (G_OBJECT_CLASS(parent_class)->finalize)
-        (* G_OBJECT_CLASS(parent_class)->finalize) (object);
+    G_OBJECT_CLASS(gnc_period_select_parent_class)->finalize (object);
 }
 
 
diff --git a/gnucash/gnome-utils/gnc-plugin-file-history.c b/gnucash/gnome-utils/gnc-plugin-file-history.c
index 41a7d8bf80..3ac2bf3ffe 100644
--- a/gnucash/gnome-utils/gnc-plugin-file-history.c
+++ b/gnucash/gnome-utils/gnc-plugin-file-history.c
@@ -46,16 +46,12 @@
 #include "gnc-uri-utils.h"
 #include "gnc-gtk-utils.h"
 
-static GObjectClass *parent_class = NULL;
-
 #define FILENAME_STRING "filename"
 #define MAX_HISTORY_FILES 10    /* May be any number up to 10 */
 #define GNC_PREFS_GROUP_HISTORY   "history"
 #define GNC_PREF_HISTORY_MAXFILES "maxfiles"
 #define HISTORY_STRING_FILE_N   "file%d"
 
-static void gnc_plugin_file_history_class_init (GncPluginFileHistoryClass *klass);
-static void gnc_plugin_file_history_init (GncPluginFileHistory *plugin);
 static void gnc_plugin_file_history_finalize (GObject *object);
 
 static void gnc_plugin_file_history_add_to_window (GncPlugin *plugin, GncMainWindow *window, GQuark type);
@@ -550,6 +546,8 @@ gnc_plugin_history_list_changed (gpointer prefs,
  *                  Object Implementation                   *
  ************************************************************/
 
+G_DEFINE_TYPE_WITH_PRIVATE(GncPluginFileHistory, gnc_plugin_file_history, GNC_TYPE_PLUGIN)
+
 /** Initialize the file history plugin class. */
 static void
 gnc_plugin_file_history_class_init (GncPluginFileHistoryClass *klass)
@@ -557,8 +555,6 @@ gnc_plugin_file_history_class_init (GncPluginFileHistoryClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_file_history_finalize;
 
     /* plugin info */
@@ -576,7 +572,6 @@ gnc_plugin_file_history_class_init (GncPluginFileHistoryClass *klass)
     plugin_class->ui_updates    = gnc_plugin_load_ui_items;
 }
 
-G_DEFINE_TYPE_WITH_PRIVATE(GncPluginFileHistory, gnc_plugin_file_history, GNC_TYPE_PLUGIN)
 
 /** Initialize an instance of the file history plugin. */
 static void
@@ -594,7 +589,7 @@ gnc_plugin_file_history_finalize (GObject *object)
     g_return_if_fail (GNC_IS_PLUGIN_FILE_HISTORY (object));
 
     ENTER("plugin %p", object);
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_file_history_parent_class)->finalize (object);
     LEAVE("");
 }
 
diff --git a/gnucash/gnome-utils/gnc-plugin-manager.c b/gnucash/gnome-utils/gnc-plugin-manager.c
index 7c3b2dd82c..8ba2ebf971 100644
--- a/gnucash/gnome-utils/gnc-plugin-manager.c
+++ b/gnucash/gnome-utils/gnc-plugin-manager.c
@@ -32,8 +32,6 @@
 
 static QofLogModule log_module = GNC_MOD_GUI;
 
-static void gnc_plugin_manager_class_init (GncPluginManagerClass *klass);
-static void gnc_plugin_manager_init (GncPluginManager *plugin);
 static void gnc_plugin_manager_dispose (GObject *object);
 static void gnc_plugin_manager_finalize (GObject *object);
 static void gnc_plugin_manager_shutdown (gpointer dummy, gpointer dummy2);
@@ -59,8 +57,6 @@ enum
 static guint signals[LAST_SIGNAL] = { 0 };
 static GncPluginManager *singleton = NULL;
 
-static GObjectClass *parent_class = NULL;
-
 GncPluginManager *
 gnc_plugin_manager_get (void)
 {
@@ -158,8 +154,6 @@ gnc_plugin_manager_class_init (GncPluginManagerClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->dispose = gnc_plugin_manager_dispose;
     object_class->finalize = gnc_plugin_manager_finalize;
 
@@ -211,7 +205,7 @@ gnc_plugin_manager_dispose (GObject *object)
         priv->plugins = NULL;
     }
 
-    G_OBJECT_CLASS (parent_class)->dispose (object);
+    G_OBJECT_CLASS (gnc_plugin_manager_parent_class)->dispose (object);
 }
 
 static void
@@ -219,7 +213,7 @@ gnc_plugin_manager_finalize (GObject *object)
 {
     g_return_if_fail (GNC_IS_PLUGIN_MANAGER (object));
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_manager_parent_class)->finalize (object);
 }
 
 static void
diff --git a/gnucash/gnome-utils/gnc-plugin-menu-additions.c b/gnucash/gnome-utils/gnc-plugin-menu-additions.c
index 5f206ef9e1..382556b146 100644
--- a/gnucash/gnome-utils/gnc-plugin-menu-additions.c
+++ b/gnucash/gnome-utils/gnc-plugin-menu-additions.c
@@ -47,10 +47,6 @@
 #include "gnc-menu-extensions.h"
 #include "gnc-gtk-utils.h"
 
-static GObjectClass *parent_class = NULL;
-
-static void gnc_plugin_menu_additions_class_init (GncPluginMenuAdditionsClass *klass);
-static void gnc_plugin_menu_additions_init (GncPluginMenuAdditions *plugin);
 static void gnc_plugin_menu_additions_finalize (GObject *object);
 
 static void gnc_plugin_menu_additions_add_to_window (GncPlugin *plugin, GncMainWindow *window, GQuark type);
@@ -108,8 +104,6 @@ gnc_plugin_menu_additions_class_init (GncPluginMenuAdditionsClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_menu_additions_finalize;
 
     /* plugin info */
@@ -142,7 +136,7 @@ gnc_plugin_menu_additions_finalize (GObject *object)
 
     g_hash_table_destroy (priv->item_hash);
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_menu_additions_parent_class)->finalize (object);
     LEAVE("");
 }
 
diff --git a/gnucash/gnome-utils/gnc-plugin-page.c b/gnucash/gnome-utils/gnc-plugin-page.c
index 58074303ee..623b440205 100644
--- a/gnucash/gnome-utils/gnc-plugin-page.c
+++ b/gnucash/gnome-utils/gnc-plugin-page.c
@@ -42,12 +42,7 @@
 
 /** The debugging module that this .o belongs to.  */
 static QofLogModule log_module = GNC_MOD_GUI;
-/** A pointer to the parent class of a plugin page. */
-static gpointer parent_class = NULL;
 
-static void gnc_plugin_page_class_init (GncPluginPageClass *klass);
-static void gnc_plugin_page_init       (GncPluginPage *plugin_page,
-                                        void *data);
 static void gnc_plugin_page_finalize   (GObject *object);
 static void gnc_plugin_page_set_property (GObject      *object,
                                           guint         prop_id,
@@ -356,7 +351,6 @@ gnc_plugin_page_class_init (GncPluginPageClass *klass)
 {
     GObjectClass *gobject_class = G_OBJECT_CLASS(klass);
 
-    parent_class = g_type_class_peek_parent (klass);
     gobject_class->finalize = gnc_plugin_page_finalize;
     gobject_class->set_property = gnc_plugin_page_set_property;
     gobject_class->get_property = gnc_plugin_page_get_property;
@@ -527,7 +521,7 @@ gnc_plugin_page_finalize (GObject *object)
     page->window = NULL; // Don't need to free it.
 
     gnc_gobject_tracking_forget (object);
-    G_OBJECT_CLASS(parent_class)->finalize (object);
+    G_OBJECT_CLASS(gnc_plugin_page_parent_class)->finalize (object);
 }
 
 /************************************************************/
diff --git a/gnucash/gnome-utils/gnc-plugin.c b/gnucash/gnome-utils/gnc-plugin.c
index 13e6610cee..521f42fce4 100644
--- a/gnucash/gnome-utils/gnc-plugin.c
+++ b/gnucash/gnome-utils/gnc-plugin.c
@@ -46,12 +46,7 @@
 
 /** The debugging module that this .o belongs to.  */
 static QofLogModule log_module = GNC_MOD_GUI;
-/** A pointer to the parent class of a plugin. */
-static gpointer parent_class = NULL;
 
-static void gnc_plugin_class_init (GncPluginClass *klass);
-static void gnc_plugin_init       (GncPlugin *plugin_page,
-                                   void *data);
 static void gnc_plugin_finalize   (GObject *object);
 
 
@@ -80,7 +75,6 @@ gnc_plugin_class_init (GncPluginClass *klass)
 {
     GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
     gobject_class->finalize = gnc_plugin_finalize;
 }
 
@@ -116,7 +110,7 @@ gnc_plugin_finalize (GObject *object)
     g_return_if_fail (GNC_IS_PLUGIN (object));
 
     gnc_gobject_tracking_forget(object);
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_parent_class)->finalize (object);
 }
 
 
diff --git a/gnucash/gnome-utils/gnc-query-view.c b/gnucash/gnome-utils/gnc-query-view.c
index 4d05281687..1537322e1f 100644
--- a/gnucash/gnome-utils/gnc-query-view.c
+++ b/gnucash/gnome-utils/gnc-query-view.c
@@ -58,13 +58,10 @@ G_DEFINE_TYPE_WITH_PRIVATE(GNCQueryView, gnc_query_view, GTK_TYPE_TREE_VIEW)
    ((GNCQueryViewPrivate*)gnc_query_view_get_instance_private((GNCQueryView*)o))
 
 /** Static Globals ****************************************************/
-static GtkTreeViewClass *parent_class = NULL;
 static guint query_view_signals[LAST_SIGNAL] = {0};
 
 /** Static function declarations **************************************/
-static void gnc_query_view_init (GNCQueryView *qview);
 static void gnc_query_view_init_view (GNCQueryView *qview);
-static void gnc_query_view_class_init (GNCQueryViewClass *klass);
 static void gnc_query_view_select_row_cb (GtkTreeSelection *selection,
                                           gpointer user_data);
 static void gnc_query_view_toggled_cb (GtkCellRendererToggle *cell_renderer,
@@ -403,8 +400,6 @@ gnc_query_view_class_init (GNCQueryViewClass *klass)
 {
     GtkWidgetClass *widget_class = (GtkWidgetClass*) klass;
 
-    parent_class = g_type_class_peek (GTK_TYPE_TREE_VIEW);
-
     query_view_signals[COLUMN_TOGGLED] =
         g_signal_new("column_toggled",
                      G_TYPE_FROM_CLASS(widget_class),
@@ -530,8 +525,8 @@ gnc_query_view_destroy (GtkWidget *widget)
         qof_query_destroy (qview->query);
         qview->query = NULL;
     }
-    if (GTK_WIDGET_CLASS(parent_class)->destroy)
-        GTK_WIDGET_CLASS(parent_class)->destroy (widget);
+
+    GTK_WIDGET_CLASS(gnc_query_view_parent_class)->destroy (widget);
 }
 
 gint
diff --git a/gnucash/gnome-utils/gnc-report-combo.c b/gnucash/gnome-utils/gnc-report-combo.c
index 717e527767..75c3fefed6 100644
--- a/gnucash/gnome-utils/gnc-report-combo.c
+++ b/gnucash/gnome-utils/gnc-report-combo.c
@@ -34,8 +34,6 @@
 /** The debugging module used by this file. */
 __attribute__((unused)) static QofLogModule log_module = GNC_MOD_GUI;
 
-static void gnc_report_combo_init       (GncReportCombo      *grc);
-static void gnc_report_combo_class_init (GncReportComboClass *klass);
 static void gnc_report_combo_dispose    (GObject *object);
 static void gnc_report_combo_finalize   (GObject *object);
 
diff --git a/gnucash/gnome-utils/gnc-tree-model-account-types.c b/gnucash/gnome-utils/gnc-tree-model-account-types.c
index 8fdebcac4e..489953e64d 100644
--- a/gnucash/gnome-utils/gnc-tree-model-account-types.c
+++ b/gnucash/gnome-utils/gnc-tree-model-account-types.c
@@ -39,10 +39,6 @@ static GtkTreeModel *account_types_tree_model = NULL;
 
 /* Functions for the type system */
 static void
-gnc_tree_model_account_types_class_init (GncTreeModelAccountTypesClass *klass);
-static void
-gnc_tree_model_account_types_init (GncTreeModelAccountTypes * model);
-static void
 gnc_tree_model_account_types_finalize (GObject * object);
 
 
@@ -58,8 +54,6 @@ typedef struct GncTreeModelAccountTypesPrivate
 #define GNC_TREE_MODEL_ACCOUNT_TYPES_GET_PRIVATE(o)  \
    ((GncTreeModelAccountTypesPrivate*)gnc_tree_model_account_types_get_instance_private((GncTreeModelAccountTypes*)o))
 
-static GObjectClass *parent_class = NULL;
-
 G_DEFINE_TYPE_WITH_CODE(GncTreeModelAccountTypes, gnc_tree_model_account_types, G_TYPE_OBJECT,
 			G_ADD_PRIVATE(GncTreeModelAccountTypes)
 			G_IMPLEMENT_INTERFACE(GTK_TYPE_TREE_MODEL,
@@ -70,8 +64,6 @@ gnc_tree_model_account_types_class_init (GncTreeModelAccountTypesClass * klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_tree_model_account_types_finalize;
 }
 
@@ -90,7 +82,7 @@ gnc_tree_model_account_types_finalize (GObject * object)
     g_return_if_fail (object != NULL);
     g_return_if_fail (GNC_IS_TREE_MODEL_ACCOUNT_TYPES (object));
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_tree_model_account_types_parent_class)->finalize (object);
 }
 
 GtkTreeModel *
diff --git a/gnucash/gnome-utils/gnc-tree-model-account.c b/gnucash/gnome-utils/gnc-tree-model-account.c
index 0347b30718..0fb6f2f100 100644
--- a/gnucash/gnome-utils/gnc-tree-model-account.c
+++ b/gnucash/gnome-utils/gnc-tree-model-account.c
@@ -49,8 +49,6 @@
 static QofLogModule log_module = GNC_MOD_GUI;
 
 /** Declarations *********************************************************/
-static void gnc_tree_model_account_class_init (GncTreeModelAccountClass *klass);
-static void gnc_tree_model_account_init (GncTreeModelAccount *model);
 static void gnc_tree_model_account_finalize (GObject *object);
 static void gnc_tree_model_account_dispose (GObject *object);
 
@@ -156,16 +154,11 @@ gnc_tree_model_account_update_color (gpointer gsettings, gchar *key, gpointer us
 /*               g_object required functions                */
 /************************************************************/
 
-/** A pointer to the parent class of an account tree model. */
-static GObjectClass *parent_class = NULL;
-
 static void
 gnc_tree_model_account_class_init (GncTreeModelAccountClass *klass)
 {
     GObjectClass *o_class;
 
-    parent_class = g_type_class_peek_parent (klass);
-
     o_class = G_OBJECT_CLASS(klass);
 
     /* GObject signals */
@@ -226,8 +219,7 @@ gnc_tree_model_account_finalize (GObject *object)
 
     priv->book = NULL;
 
-    if (G_OBJECT_CLASS(parent_class)->finalize)
-        G_OBJECT_CLASS(parent_class)->finalize (object);
+    G_OBJECT_CLASS(gnc_tree_model_account_parent_class)->finalize (object);
     LEAVE(" ");
 }
 
@@ -261,8 +253,7 @@ gnc_tree_model_account_dispose (GObject *object)
                                  gnc_tree_model_account_update_color,
                                  model);
 
-    if (G_OBJECT_CLASS(parent_class)->dispose)
-        G_OBJECT_CLASS(parent_class)->dispose (object);
+    G_OBJECT_CLASS(gnc_tree_model_account_parent_class)->dispose (object);
     LEAVE(" ");
 }
 
diff --git a/gnucash/gnome-utils/gnc-tree-model-commodity.c b/gnucash/gnome-utils/gnc-tree-model-commodity.c
index 29e1ce9f40..d1b9113cad 100644
--- a/gnucash/gnome-utils/gnc-tree-model-commodity.c
+++ b/gnucash/gnome-utils/gnc-tree-model-commodity.c
@@ -53,8 +53,6 @@
 static QofLogModule log_module = GNC_MOD_GUI;
 
 /** Declarations *********************************************************/
-static void gnc_tree_model_commodity_class_init (GncTreeModelCommodityClass *klass);
-static void gnc_tree_model_commodity_init (GncTreeModelCommodity *model);
 static void gnc_tree_model_commodity_finalize (GObject *object);
 static void gnc_tree_model_commodity_dispose (GObject *object);
 
@@ -104,9 +102,6 @@ typedef struct GncTreeModelCommodityPrivate
 #define GNC_TREE_MODEL_COMMODITY_GET_PRIVATE(o)  \
    ((GncTreeModelCommodityPrivate*)gnc_tree_model_commodity_get_instance_private((GncTreeModelCommodity*)o))
 
-/** A pointer to the parent class of a commodity tree model. */
-static GObjectClass *parent_class = NULL;
-
 G_DEFINE_TYPE_WITH_CODE(GncTreeModelCommodity, gnc_tree_model_commodity, GNC_TYPE_TREE_MODEL,
                         G_ADD_PRIVATE(GncTreeModelCommodity)
                         G_IMPLEMENT_INTERFACE(GTK_TYPE_TREE_MODEL,
@@ -117,8 +112,6 @@ gnc_tree_model_commodity_class_init (GncTreeModelCommodityClass *klass)
 {
     GObjectClass *o_class = G_OBJECT_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     o_class->finalize = gnc_tree_model_commodity_finalize;
     o_class->dispose = gnc_tree_model_commodity_dispose;
 }
@@ -148,7 +141,7 @@ gnc_tree_model_commodity_finalize (GObject *object)
     priv->book = NULL;
     priv->commodity_table = NULL;
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_tree_model_commodity_parent_class)->finalize (object);
     LEAVE(" ");
 }
 
@@ -171,8 +164,7 @@ gnc_tree_model_commodity_dispose (GObject *object)
         priv->event_handler_id = 0;
     }
 
-    if (G_OBJECT_CLASS (parent_class)->dispose)
-        G_OBJECT_CLASS (parent_class)->dispose (object);
+    G_OBJECT_CLASS (gnc_tree_model_commodity_parent_class)->dispose (object);
     LEAVE(" ");
 }
 
diff --git a/gnucash/gnome-utils/gnc-tree-model-owner.c b/gnucash/gnome-utils/gnc-tree-model-owner.c
index 5075a69b0d..0f9eb8183d 100644
--- a/gnucash/gnome-utils/gnc-tree-model-owner.c
+++ b/gnucash/gnome-utils/gnc-tree-model-owner.c
@@ -45,8 +45,6 @@
 static QofLogModule log_module = GNC_MOD_GUI;
 
 /** Declarations *********************************************************/
-static void gnc_tree_model_owner_class_init (GncTreeModelOwnerClass *klass);
-static void gnc_tree_model_owner_init (GncTreeModelOwner *model);
 static void gnc_tree_model_owner_finalize (GObject *object);
 static void gnc_tree_model_owner_dispose (GObject *object);
 
@@ -135,16 +133,11 @@ gnc_tree_model_owner_update_color (gpointer gsettings, gchar *key, gpointer user
 /*               g_object required functions                */
 /************************************************************/
 
-/** A pointer to the parent class of an owner tree model. */
-static GObjectClass *parent_class = NULL;
-
 static void
 gnc_tree_model_owner_class_init (GncTreeModelOwnerClass *klass)
 {
     GObjectClass *o_class;
 
-    parent_class = g_type_class_peek_parent (klass);
-
     o_class = G_OBJECT_CLASS (klass);
 
     /* GObject signals */
@@ -199,8 +192,7 @@ gnc_tree_model_owner_finalize (GObject *object)
     priv->book       = NULL;
     priv->owner_list = NULL;
 
-    if (G_OBJECT_CLASS (parent_class)->finalize)
-        G_OBJECT_CLASS(parent_class)->finalize (object);
+    G_OBJECT_CLASS(gnc_tree_model_owner_parent_class)->finalize (object);
     LEAVE(" ");
 }
 
@@ -228,8 +220,7 @@ gnc_tree_model_owner_dispose (GObject *object)
                                 gnc_tree_model_owner_update_color,
                                 model);
 
-    if (G_OBJECT_CLASS (parent_class)->dispose)
-        G_OBJECT_CLASS (parent_class)->dispose (object);
+    G_OBJECT_CLASS (gnc_tree_model_owner_parent_class)->dispose (object);
     LEAVE(" ");
 }
 
diff --git a/gnucash/gnome-utils/gnc-tree-model-price.c b/gnucash/gnome-utils/gnc-tree-model-price.c
index 3c2e3276cf..c5e642c48c 100644
--- a/gnucash/gnome-utils/gnc-tree-model-price.c
+++ b/gnucash/gnome-utils/gnc-tree-model-price.c
@@ -82,8 +82,6 @@
 static QofLogModule log_module = GNC_MOD_GUI;
 
 /** Declarations *********************************************************/
-static void gnc_tree_model_price_class_init (GncTreeModelPriceClass *klass);
-static void gnc_tree_model_price_init (GncTreeModelPrice *model);
 static void gnc_tree_model_price_finalize (GObject *object);
 static void gnc_tree_model_price_dispose (GObject *object);
 
@@ -134,9 +132,6 @@ typedef struct GncTreeModelPricePrivate
 #define GNC_TREE_MODEL_PRICE_GET_PRIVATE(o)  \
    ((GncTreeModelPricePrivate*)gnc_tree_model_price_get_instance_private((GncTreeModelPrice*)o))
 
-/** A pointer to the parent class of a price tree model. */
-static GObjectClass *parent_class = NULL;
-
 G_DEFINE_TYPE_WITH_CODE(GncTreeModelPrice, gnc_tree_model_price, GNC_TYPE_TREE_MODEL,
                         G_ADD_PRIVATE(GncTreeModelPrice)
                         G_IMPLEMENT_INTERFACE(GTK_TYPE_TREE_MODEL,
@@ -147,8 +142,6 @@ gnc_tree_model_price_class_init (GncTreeModelPriceClass *klass)
 {
     GObjectClass *o_class = G_OBJECT_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     o_class->finalize = gnc_tree_model_price_finalize;
     o_class->dispose = gnc_tree_model_price_dispose;
 }
@@ -184,7 +177,7 @@ gnc_tree_model_price_finalize (GObject *object)
     priv->book = NULL;
     priv->price_db = NULL;
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_tree_model_price_parent_class)->finalize (object);
     LEAVE(" ");
 }
 
@@ -207,8 +200,7 @@ gnc_tree_model_price_dispose (GObject *object)
         priv->event_handler_id = 0;
     }
 
-    if (G_OBJECT_CLASS (parent_class)->dispose)
-        G_OBJECT_CLASS (parent_class)->dispose (object);
+    G_OBJECT_CLASS (gnc_tree_model_price_parent_class)->dispose (object);
     LEAVE(" ");
 }
 
diff --git a/gnucash/gnome-utils/gnc-tree-model-selection.c b/gnucash/gnome-utils/gnc-tree-model-selection.c
index 98b9e2259c..11c4f91949 100644
--- a/gnucash/gnome-utils/gnc-tree-model-selection.c
+++ b/gnucash/gnome-utils/gnc-tree-model-selection.c
@@ -29,8 +29,6 @@
 
 #include "gnc-tree-model-selection.h"
 
-static void gnc_tree_model_selection_class_init (GncTreeModelSelectionClass *klass);
-static void gnc_tree_model_selection_init (GncTreeModelSelection *model);
 static void gnc_tree_model_selection_finalize (GObject *object);
 
 static void gnc_tree_model_selection_tree_model_init (GtkTreeModelIface *iface);
@@ -99,8 +97,6 @@ typedef struct GncTreeModelSelectionPrivate
 #define GNC_TREE_MODEL_SELECTION_GET_PRIVATE(o)  \
    ((GncTreeModelSelectionPrivate*)gnc_tree_model_selection_get_instance_private((GncTreeModelSelection*)o))
 
-static GObjectClass *parent_class = NULL;
-
 G_DEFINE_TYPE_WITH_CODE(GncTreeModelSelection, gnc_tree_model_selection, G_TYPE_OBJECT
                         G_ADD_PRIVATE(GncTreeModelSelection)
                         G_IMPLEMENT_INTERFACE(GTK_TYPE_TREE_MODEL,
@@ -111,8 +107,6 @@ gnc_tree_model_selection_class_init (GncTreeModelSelectionClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_tree_model_selection_finalize;
 }
 
@@ -145,7 +139,7 @@ gnc_tree_model_selection_finalize (GObject *object)
     g_object_unref (priv->child_model);
     g_hash_table_destroy (priv->selections);
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_tree_model_selection_parent_class)->finalize (object);
 }
 
 GtkTreeModel *
diff --git a/gnucash/gnome-utils/gnc-tree-model.c b/gnucash/gnome-utils/gnc-tree-model.c
index 5ec81fbe08..a990469bc9 100644
--- a/gnucash/gnome-utils/gnc-tree-model.c
+++ b/gnucash/gnome-utils/gnc-tree-model.c
@@ -36,9 +36,6 @@
 static QofLogModule log_module = GNC_MOD_GUI;
 
 /** Declarations *********************************************************/
-static void gnc_tree_model_class_init (GncTreeModelClass *klass);
-static void gnc_tree_model_init (GncTreeModel *model,
-		                 void *data);
 static void gnc_tree_model_finalize (GObject *object);
 
 /** The instance private data for a generic tree model. */
@@ -58,16 +55,11 @@ GNC_DEFINE_TYPE_WITH_CODE(GncTreeModel, gnc_tree_model, G_TYPE_OBJECT,
 /*               g_object required functions                */
 /************************************************************/
 
-/** A pointer to the parent class of a generic tree model. */
-static GObjectClass *parent_class = NULL;
-
 static void
 gnc_tree_model_class_init (GncTreeModelClass *klass)
 {
     GObjectClass *o_class;
 
-    parent_class = g_type_class_peek_parent (klass);
-
     o_class = G_OBJECT_CLASS (klass);
 
     /* GObject signals */
@@ -95,7 +87,6 @@ gnc_tree_model_finalize (GObject *object)
 
     gnc_gobject_tracking_forget(object);
 
-    if (G_OBJECT_CLASS (parent_class)->finalize)
-        G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_tree_model_parent_class)->finalize (object);
     LEAVE(" ");
 }
diff --git a/gnucash/gnome-utils/gnc-tree-view-account.c b/gnucash/gnome-utils/gnc-tree-view-account.c
index b3a4d53f5f..1d54241e5a 100644
--- a/gnucash/gnome-utils/gnc-tree-view-account.c
+++ b/gnucash/gnome-utils/gnc-tree-view-account.c
@@ -58,8 +58,6 @@
 static QofLogModule log_module = GNC_MOD_GUI;
 
 /** Declarations *********************************************************/
-static void gnc_tree_view_account_class_init (GncTreeViewAccountClass *klass);
-static void gnc_tree_view_account_init (GncTreeViewAccount *view);
 static void gnc_tree_view_account_finalize (GObject *object);
 static gboolean gnc_tree_view_search_compare (GtkTreeModel *model, gint column,
         const gchar *key, GtkTreeIter *iter, gpointer search_data);
@@ -126,8 +124,6 @@ typedef struct GncTreeViewAccountPrivate
 /*               g_object required functions                */
 /************************************************************/
 
-static GObjectClass *parent_class = NULL;
-
 G_DEFINE_TYPE_WITH_PRIVATE(GncTreeViewAccount, gnc_tree_view_account, GNC_TYPE_TREE_VIEW)
 
 static void
@@ -135,8 +131,6 @@ gnc_tree_view_account_class_init (GncTreeViewAccountClass *klass)
 {
     GObjectClass *o_class;
 
-    parent_class = g_type_class_peek_parent (klass);
-
     /* GObject signals */
     o_class = G_OBJECT_CLASS (klass);
     o_class->finalize = gnc_tree_view_account_finalize;
@@ -202,8 +196,7 @@ gnc_tree_view_account_finalize (GObject *object)
     }
     priv->filter_fn = NULL;
 
-    if (G_OBJECT_CLASS (parent_class)->finalize)
-        (* G_OBJECT_CLASS (parent_class)->finalize) (object);
+    G_OBJECT_CLASS (gnc_tree_view_account_parent_class)->finalize (object);
     LEAVE(" ");
 }
 
diff --git a/gnucash/gnome-utils/gnc-tree-view-commodity.c b/gnucash/gnome-utils/gnc-tree-view-commodity.c
index fc011381df..4a49647154 100644
--- a/gnucash/gnome-utils/gnc-tree-view-commodity.c
+++ b/gnucash/gnome-utils/gnc-tree-view-commodity.c
@@ -47,8 +47,6 @@
 static QofLogModule log_module = GNC_MOD_GUI;
 
 /** Declarations *********************************************************/
-static void gnc_tree_view_commodity_class_init (GncTreeViewCommodityClass *klass);
-static void gnc_tree_view_commodity_init (GncTreeViewCommodity *view);
 static void gnc_tree_view_commodity_finalize (GObject *object);
 static void gnc_tree_view_commodity_destroy (GtkWidget *widget);
 
@@ -65,8 +63,6 @@ typedef struct GncTreeViewCommodityPrivate
 /*               g_object required functions                */
 /************************************************************/
 
-static GObjectClass *parent_class = NULL;
-
 G_DEFINE_TYPE_WITH_PRIVATE(GncTreeViewCommodity, gnc_tree_view_commodity, GNC_TYPE_TREE_VIEW)
 
 static void
@@ -75,8 +71,6 @@ gnc_tree_view_commodity_class_init (GncTreeViewCommodityClass *klass)
     GObjectClass *o_class;
     GtkWidgetClass *widget_class;
 
-    parent_class = g_type_class_peek_parent (klass);
-
     o_class = G_OBJECT_CLASS (klass);
     widget_class = GTK_WIDGET_CLASS (klass);
 
@@ -99,8 +93,7 @@ gnc_tree_view_commodity_finalize (GObject *object)
     g_return_if_fail (GNC_IS_TREE_VIEW_COMMODITY (object));
 
     ENTER("view %p", object);
-    if (G_OBJECT_CLASS (parent_class)->finalize)
-        (* G_OBJECT_CLASS (parent_class)->finalize) (object);
+    G_OBJECT_CLASS (gnc_tree_view_commodity_parent_class)->finalize (object);
     LEAVE(" ");
 }
 
@@ -112,8 +105,7 @@ gnc_tree_view_commodity_destroy (GtkWidget *widget)
 
     ENTER("view %p", widget);
 
-    if (GTK_WIDGET_CLASS (parent_class)->destroy)
-        (* GTK_WIDGET_CLASS (parent_class)->destroy) (widget);
+    GTK_WIDGET_CLASS (gnc_tree_view_commodity_parent_class)->destroy (widget);
     LEAVE(" ");
 }
 
diff --git a/gnucash/gnome-utils/gnc-tree-view-owner.c b/gnucash/gnome-utils/gnc-tree-view-owner.c
index d23e1c7a33..f8a805ff51 100644
--- a/gnucash/gnome-utils/gnc-tree-view-owner.c
+++ b/gnucash/gnome-utils/gnc-tree-view-owner.c
@@ -54,8 +54,6 @@
 static QofLogModule log_module = GNC_MOD_GUI;
 
 /** Declarations *********************************************************/
-static void gnc_tree_view_owner_class_init (GncTreeViewOwnerClass *klass);
-static void gnc_tree_view_owner_init (GncTreeViewOwner *view);
 static void gnc_tree_view_owner_finalize (GObject *object);
 
 static void gtvo_update_column_names (GncTreeView *view);
@@ -94,8 +92,6 @@ typedef struct GncTreeViewOwnerPrivate
 /*               g_object required functions                */
 /************************************************************/
 
-static GObjectClass *parent_class = NULL;
-
 G_DEFINE_TYPE_WITH_PRIVATE(GncTreeViewOwner, gnc_tree_view_owner, GNC_TYPE_TREE_VIEW)
 
 static void
@@ -103,8 +99,6 @@ gnc_tree_view_owner_class_init (GncTreeViewOwnerClass *klass)
 {
     GObjectClass *o_class;
 
-    parent_class = g_type_class_peek_parent (klass);
-
     /* GObject signals */
     o_class = G_OBJECT_CLASS (klass);
     o_class->finalize = gnc_tree_view_owner_finalize;
@@ -155,8 +149,7 @@ gnc_tree_view_owner_finalize (GObject *object)
     }
     priv->filter_fn = NULL;
 
-    if (G_OBJECT_CLASS (parent_class)->finalize)
-        (* G_OBJECT_CLASS (parent_class)->finalize) (object);
+    G_OBJECT_CLASS (gnc_tree_view_owner_parent_class)->finalize (object);
     LEAVE(" ");
 }
 
diff --git a/gnucash/gnome-utils/gnc-tree-view-price.c b/gnucash/gnome-utils/gnc-tree-view-price.c
index abe5302d46..886c777767 100644
--- a/gnucash/gnome-utils/gnc-tree-view-price.c
+++ b/gnucash/gnome-utils/gnc-tree-view-price.c
@@ -47,8 +47,6 @@
 static QofLogModule log_module = GNC_MOD_GUI;
 
 /** Declarations *********************************************************/
-static void gnc_tree_view_price_class_init (GncTreeViewPriceClass *klass);
-static void gnc_tree_view_price_init (GncTreeViewPrice *view);
 static void gnc_tree_view_price_finalize (GObject *object);
 static void gnc_tree_view_price_destroy (GtkWidget *widget);
 
@@ -65,8 +63,6 @@ typedef struct GncTreeViewPricePrivate
 /*               g_object required functions                */
 /************************************************************/
 
-static GObjectClass *parent_class = NULL;
-
 G_DEFINE_TYPE_WITH_PRIVATE(GncTreeViewPrice, gnc_tree_view_price, GNC_TYPE_TREE_VIEW)
 
 static void
@@ -75,8 +71,6 @@ gnc_tree_view_price_class_init (GncTreeViewPriceClass *klass)
     GObjectClass *o_class;
     GtkWidgetClass *widget_class;
 
-    parent_class = g_type_class_peek_parent (klass);
-
     o_class = G_OBJECT_CLASS (klass);
     widget_class = GTK_WIDGET_CLASS (klass);
 
@@ -99,8 +93,7 @@ gnc_tree_view_price_finalize (GObject *object)
     gnc_leave_return_if_fail (object != NULL);
     gnc_leave_return_if_fail (GNC_IS_TREE_VIEW_PRICE (object));
 
-    if (G_OBJECT_CLASS (parent_class)->finalize)
-        (* G_OBJECT_CLASS (parent_class)->finalize) (object);
+    G_OBJECT_CLASS (gnc_tree_view_price_parent_class)->finalize (object);
     LEAVE(" ");
 }
 
@@ -111,8 +104,7 @@ gnc_tree_view_price_destroy (GtkWidget *widget)
     gnc_leave_return_if_fail (widget != NULL);
     gnc_leave_return_if_fail (GNC_IS_TREE_VIEW_PRICE (widget));
 
-    if (GTK_WIDGET_CLASS (parent_class)->destroy)
-        (* GTK_WIDGET_CLASS (parent_class)->destroy) (widget);
+    GTK_WIDGET_CLASS (gnc_tree_view_price_parent_class)->destroy (widget);
     LEAVE(" ");
 }
 
diff --git a/gnucash/gnome-utils/gnc-tree-view-sx-list.c b/gnucash/gnome-utils/gnc-tree-view-sx-list.c
index a48065e5b2..673af2353e 100644
--- a/gnucash/gnome-utils/gnc-tree-view-sx-list.c
+++ b/gnucash/gnome-utils/gnc-tree-view-sx-list.c
@@ -47,8 +47,6 @@ static QofLogModule log_module = LOG_MOD;
 #undef G_LOG_DOMAIN
 #define G_LOG_DOMAIN LOG_MOD
 
-static void gnc_tree_view_sx_list_class_init(GncTreeViewSxListClass *klass);
-static void gnc_tree_view_sx_list_init(GncTreeViewSxList *view);
 static void gnc_tree_view_sx_list_dispose(GObject *object);
 static void gnc_tree_view_sx_list_finalize(GObject *object);
 
@@ -61,8 +59,6 @@ typedef struct GncTreeViewSxListPrivate
 #define GNC_TREE_VIEW_SX_LIST_GET_PRIVATE(o)  \
    ((GncTreeViewSxListPrivate*)gnc_tree_view_sx_list_get_instance_private((GncTreeViewSxList*)o))
 
-static GObjectClass *parent_class = NULL;
-
 G_DEFINE_TYPE_WITH_PRIVATE(GncTreeViewSxList, gnc_tree_view_sx_list, GNC_TYPE_TREE_VIEW)
 
 static void
@@ -70,7 +66,6 @@ gnc_tree_view_sx_list_class_init(GncTreeViewSxListClass *klass)
 {
     GObjectClass *o_class;
 
-    parent_class = g_type_class_peek_parent (klass);
 
     o_class = G_OBJECT_CLASS (klass);
 
@@ -103,8 +98,7 @@ gnc_tree_view_sx_list_dispose(GObject *object)
     g_object_unref(G_OBJECT(priv->tree_model));
     priv->tree_model = NULL;
 
-    if (G_OBJECT_CLASS (parent_class)->dispose)
-        (* G_OBJECT_CLASS (parent_class)->dispose) (object);
+    G_OBJECT_CLASS (gnc_tree_view_sx_list_parent_class)->dispose (object);
 }
 
 static void
@@ -113,8 +107,7 @@ gnc_tree_view_sx_list_finalize(GObject *object)
     gnc_leave_return_if_fail(object != NULL);
     gnc_leave_return_if_fail(GNC_IS_TREE_VIEW_SX_LIST (object));
 
-    if (G_OBJECT_CLASS(parent_class)->finalize)
-        (* G_OBJECT_CLASS(parent_class)->finalize) (object);
+    G_OBJECT_CLASS(gnc_tree_view_sx_list_parent_class)->finalize (object);
 }
 
 GtkTreeView*
diff --git a/gnucash/gnome-utils/gnc-tree-view.c b/gnucash/gnome-utils/gnc-tree-view.c
index ed43471c07..3a0a22ed22 100644
--- a/gnucash/gnome-utils/gnc-tree-view.c
+++ b/gnucash/gnome-utils/gnc-tree-view.c
@@ -78,8 +78,6 @@ enum
 static QofLogModule log_module = GNC_MOD_GUI;
 
 /**** Declarations ******************************************************/
-static void gnc_tree_view_class_init (GncTreeViewClass *klass);
-static void gnc_tree_view_init (GncTreeView *view, void *data);
 static void gnc_tree_view_finalize (GObject *object);
 static void gnc_tree_view_destroy (GtkWidget *widget);
 static void gnc_tree_view_set_property (GObject         *object,
@@ -143,8 +141,6 @@ GNC_DEFINE_TYPE_WITH_CODE(GncTreeView, gnc_tree_view, GTK_TYPE_TREE_VIEW,
 /** @name Gnc Tree View Object Implementation
  @{ */
 
-static GObjectClass *parent_class = NULL;
-
 /** Initialize the class for the new base gnucash tree view.  This
  *  will set up any function pointers that override functions in the
  *  parent class, and also installs the properties that are unique to
@@ -160,8 +156,6 @@ gnc_tree_view_class_init (GncTreeViewClass *klass)
     GObjectClass *gobject_class;
     GtkWidgetClass *gtkwidget_class;
 
-    parent_class = g_type_class_peek_parent (klass);
-
     gobject_class = G_OBJECT_CLASS(klass);
     gtkwidget_class = GTK_WIDGET_CLASS(klass);
 
@@ -348,8 +342,7 @@ gnc_tree_view_finalize (GObject *object)
 
     gnc_gobject_tracking_forget (object);
 
-    if (G_OBJECT_CLASS(parent_class)->finalize)
-        G_OBJECT_CLASS(parent_class)->finalize (object);
+    G_OBJECT_CLASS(gnc_tree_view_parent_class)->finalize (object);
     LEAVE(" ");
 }
 
@@ -397,8 +390,7 @@ gnc_tree_view_destroy (GtkWidget *widget)
         priv->column_menu = NULL;
     }
 
-    if (GTK_WIDGET_CLASS(parent_class)->destroy)
-        GTK_WIDGET_CLASS(parent_class)->destroy (widget);
+    GTK_WIDGET_CLASS(gnc_tree_view_parent_class)->destroy (widget);
     LEAVE(" ");
 }
 
diff --git a/gnucash/gnome-utils/search-param.c b/gnucash/gnome-utils/search-param.c
index 4524774ffb..c5c2fe1a6d 100644
--- a/gnucash/gnome-utils/search-param.c
+++ b/gnucash/gnome-utils/search-param.c
@@ -33,16 +33,10 @@
 
 #include "search-param.h"
 
-static void gnc_search_param_class_init (GNCSearchParamClass *klass);
-static void gnc_search_param_init (GNCSearchParam *gspaper);
 static void gnc_search_param_finalize (GObject *obj);
 
-static void gnc_search_param_simple_class_init (GNCSearchParamSimpleClass *klass);
-static void gnc_search_param_simple_init (GNCSearchParamSimple *gspaper);
 static void gnc_search_param_simple_finalize (GObject *obj);
 
-static void gnc_search_param_compound_class_init (GNCSearchParamCompoundClass *klass);
-static void gnc_search_param_compound_init (GNCSearchParamCompound *gspaper);
 static void gnc_search_param_compound_finalize (GObject *obj);
 
 typedef struct _GNCSearchParamPrivate GNCSearchParamPrivate;
@@ -82,9 +76,6 @@ struct _GNCSearchParamCompoundPrivate
 #define GNC_SEARCH_PARAM_COMPOUND_GET_PRIVATE(o) \
    ((GNCSearchParamCompoundPrivate*)gnc_search_param_compound_get_instance_private ((GNCSearchParamCompound*)o))
 
-static GObjectClass *parent_gobject_class;
-static GNCSearchParamClass *parent_search_param_class;
-
 enum
 {
     LAST_SIGNAL
@@ -103,8 +94,6 @@ gnc_search_param_class_init (GNCSearchParamClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS(klass);
 
-    parent_gobject_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_search_param_finalize;
 }
 
@@ -119,7 +108,7 @@ gnc_search_param_finalize (GObject *obj)
     g_return_if_fail (obj != NULL);
     g_return_if_fail (GNC_IS_SEARCH_PARAM(obj));
 
-    G_OBJECT_CLASS(parent_gobject_class)->finalize (obj);
+    G_OBJECT_CLASS(gnc_search_param_parent_class)->finalize (obj);
 }
 
 /* subclass for simple searches of a single element */
@@ -131,8 +120,6 @@ gnc_search_param_simple_class_init (GNCSearchParamSimpleClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS(klass);
 
-    parent_search_param_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_search_param_simple_finalize;
 }
 
@@ -158,7 +145,7 @@ gnc_search_param_simple_finalize (GObject *obj)
     g_slist_free (priv->converters);
     priv->converters = NULL;
 
-    G_OBJECT_CLASS(parent_search_param_class)->finalize (obj);
+    G_OBJECT_CLASS(gnc_search_param_simple_parent_class)->finalize (obj);
 }
 
 /* Subclass for compound searches consisting of AND/OR of several elements */
@@ -170,8 +157,6 @@ gnc_search_param_compound_class_init (GNCSearchParamCompoundClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS(klass);
 
-    parent_search_param_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_search_param_compound_finalize;
 }
 
@@ -195,7 +180,7 @@ gnc_search_param_compound_finalize (GObject *obj)
     g_list_free (priv->sub_search);
     priv->sub_search = NULL;
 
-    G_OBJECT_CLASS (parent_search_param_class)->finalize (obj);
+    G_OBJECT_CLASS (gnc_search_param_compound_parent_class)->finalize (obj);
 }
 
 /**
diff --git a/gnucash/gnome/gnc-budget-view.c b/gnucash/gnome/gnc-budget-view.c
index bbfc06180d..b28718e810 100644
--- a/gnucash/gnome/gnc-budget-view.c
+++ b/gnucash/gnome/gnc-budget-view.c
@@ -113,8 +113,6 @@ This enum is used to specify the specific type of account that the
  *                        Prototypes                        *
  ************************************************************/
 /* Plugin Actions */
-static void gnc_budget_view_class_init (GncBudgetViewClass *klass);
-static void gnc_budget_view_init (GncBudgetView *budget_view);
 static void gnc_budget_view_finalize (GObject *object);
 
 static void gbv_create_widget (GncBudgetView *budget_view);
@@ -215,8 +213,6 @@ gnc_budget_view_class_init (GncBudgetViewClass *klass)
 {
     GObjectClass *object_class = G_OBJECT_CLASS(klass);
 
-    gnc_budget_view_parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_budget_view_finalize;
 
     g_signal_new ("account-activated", GNC_TYPE_BUDGET_VIEW, G_SIGNAL_RUN_LAST,
diff --git a/gnucash/gnome/gnc-plugin-account-tree.c b/gnucash/gnome/gnc-plugin-account-tree.c
index b9a78b67e5..b23e698aaf 100644
--- a/gnucash/gnome/gnc-plugin-account-tree.c
+++ b/gnucash/gnome/gnc-plugin-account-tree.c
@@ -41,8 +41,6 @@
 #include "gnc-plugin-page-account-tree.h"
 #include "dialog-find-account.h"
 
-static void gnc_plugin_account_tree_class_init (GncPluginAccountTreeClass *klass);
-static void gnc_plugin_account_tree_init (GncPluginAccountTree *plugin);
 static void gnc_plugin_account_tree_finalize (GObject *object);
 
 /* Command callbacks */
@@ -78,9 +76,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GncPluginAccountTree, gnc_plugin_account_tree, GNC_TY
 #define GNC_PLUGIN_ACCOUNT_TREE_GET_PRIVATE(o)  \
    ((GncPluginAccountTreePrivate*)gnc_plugin_account_tree_get_instance_private((GncPluginAccountTree*)o))
 
-/** A pointer to the parent class of a plugin page. */
-static GObjectClass *parent_class = NULL;
-
 /*  Create a new account tree menu plugin. */
 GncPlugin *
 gnc_plugin_account_tree_new (void)
@@ -111,8 +106,6 @@ gnc_plugin_account_tree_class_init (GncPluginAccountTreeClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_account_tree_finalize;
 
     /* plugin info */
@@ -151,7 +144,7 @@ gnc_plugin_account_tree_finalize (GObject *object)
 {
     g_return_if_fail (GNC_IS_PLUGIN_ACCOUNT_TREE (object));
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_account_tree_parent_class)->finalize (object);
 }
 
 /************************************************************
diff --git a/gnucash/gnome/gnc-plugin-basic-commands.c b/gnucash/gnome/gnc-plugin-basic-commands.c
index f360cb277c..07e70f5ace 100644
--- a/gnucash/gnome/gnc-plugin-basic-commands.c
+++ b/gnucash/gnome/gnc-plugin-basic-commands.c
@@ -63,8 +63,6 @@
 /* This static indicates the debugging module that this .o belongs to.  */
 G_GNUC_UNUSED static QofLogModule log_module = GNC_MOD_GUI;
 
-static void gnc_plugin_basic_commands_class_init (GncPluginBasicCommandsClass *klass);
-static void gnc_plugin_basic_commands_init (GncPluginBasicCommands *plugin);
 static void gnc_plugin_basic_commands_finalize (GObject *object);
 
 static void gnc_plugin_basic_commands_add_to_window (GncPlugin *plugin, GncMainWindow *window, GQuark type);
@@ -187,9 +185,6 @@ typedef struct GncPluginBasicCommandsPrivate
 #define GNC_PLUGIN_BASIC_COMMANDS_GET_PRIVATE(o)  \
    ((GncPluginBasicCommandsPrivate*)gnc_plugin_basic_commands_get_instance_private ((GncPluginBasicCommands*)o))
 
-/** A pointer to the parent class of a plugin page. */
-static GObjectClass *parent_class = NULL;
-
 /** Create a new basic commands menu plugin. */
 GncPlugin *
 gnc_plugin_basic_commands_new (void)
@@ -291,8 +286,6 @@ gnc_plugin_basic_commands_class_init (GncPluginBasicCommandsClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_basic_commands_finalize;
 
     /* plugin info */
@@ -334,7 +327,7 @@ gnc_plugin_basic_commands_finalize (GObject *object)
 {
     g_return_if_fail (GNC_IS_PLUGIN_BASIC_COMMANDS(object));
 
-    G_OBJECT_CLASS(parent_class)->finalize (object);
+    G_OBJECT_CLASS(gnc_plugin_basic_commands_parent_class)->finalize (object);
 }
 
 /************************************************************
diff --git a/gnucash/gnome/gnc-plugin-budget.c b/gnucash/gnome/gnc-plugin-budget.c
index 03b0e9878b..a6af81e589 100644
--- a/gnucash/gnome/gnc-plugin-budget.c
+++ b/gnucash/gnome/gnc-plugin-budget.c
@@ -42,8 +42,6 @@
 
 static QofLogModule log_module = GNC_MOD_GUI;
 
-static void gnc_plugin_budget_class_init (GncPluginBudgetClass *klass);
-static void gnc_plugin_budget_init (GncPluginBudget *plugin);
 static void gnc_plugin_budget_finalize (GObject *object);
 
 /* Command Callbacks */
@@ -88,8 +86,6 @@ typedef struct GncPluginBudgetPrivate
 #define GNC_PLUGIN_BUDGET_GET_PRIVATE(o)  \
    ((GncPluginBudgetPrivate*)gnc_plugin_budget_get_instance_private((GncPluginBudget*)o))
 
-static GObjectClass *parent_class = NULL;
-
 GncPlugin * 
 gnc_plugin_budget_new (void)
 {
@@ -137,7 +133,6 @@ gnc_plugin_budget_class_init (GncPluginBudgetClass *klass)
     GncPluginClass *plugin_class = GNC_PLUGIN_CLASS(klass);
 
     ENTER (" ");
-    parent_class = g_type_class_peek_parent (klass);
     object_class->finalize = gnc_plugin_budget_finalize;
 
     plugin_class->plugin_name        = GNC_PLUGIN_BUDGET_NAME;
@@ -163,7 +158,7 @@ gnc_plugin_budget_finalize (GObject *object)
     g_return_if_fail (GNC_IS_PLUGIN_BUDGET(object));
 
     ENTER(" ");
-    (parent_class->finalize)(object);
+    G_OBJECT_CLASS (gnc_plugin_budget_parent_class)->finalize(object);
     LEAVE(" ");
 
 }
diff --git a/gnucash/gnome/gnc-plugin-business.c b/gnucash/gnome/gnc-plugin-business.c
index ecd6e4a6aa..05deefd1ba 100644
--- a/gnucash/gnome/gnc-plugin-business.c
+++ b/gnucash/gnome/gnc-plugin-business.c
@@ -61,8 +61,6 @@
 G_GNUC_UNUSED static QofLogModule log_module = G_LOG_DOMAIN;
 
 /* g_object functions */
-static void gnc_plugin_business_class_init (GncPluginBusinessClass *klass);
-static void gnc_plugin_business_init (GncPluginBusiness *plugin);
 static void gnc_plugin_business_finalize (GObject *object);
 static void gnc_plugin_business_add_to_window (GncPlugin *plugin,
                                                GncMainWindow *window,
@@ -186,8 +184,6 @@ typedef struct GncPluginBusinessPrivate
 #define GNC_PLUGIN_BUSINESS_GET_PRIVATE(o)  \
    ((GncPluginBusinessPrivate*)gnc_plugin_business_get_instance_private((GncPluginBusiness*)o))
 
-static GObjectClass *parent_class = NULL;
-
 GncPlugin *
 gnc_plugin_business_new (void)
 {
@@ -212,8 +208,6 @@ gnc_plugin_business_class_init (GncPluginBusinessClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_business_finalize;
 
     /* plugin info */
@@ -251,7 +245,7 @@ gnc_plugin_business_finalize (GObject *object)
 {
     g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (object));
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_business_parent_class)->finalize (object);
 }
 
 /************************************************************
diff --git a/gnucash/gnome/gnc-plugin-page-account-tree.c b/gnucash/gnome/gnc-plugin-page-account-tree.c
index 9d4c14c28d..9c12fc85c6 100644
--- a/gnucash/gnome/gnc-plugin-page-account-tree.c
+++ b/gnucash/gnome/gnc-plugin-page-account-tree.c
@@ -118,14 +118,10 @@ typedef struct GncPluginPageAccountTreePrivate
 #define GNC_PLUGIN_PAGE_ACCOUNT_TREE_GET_PRIVATE(o)  \
      ((GncPluginPageAccountTreePrivate*)gnc_plugin_page_account_tree_get_instance_private((GncPluginPageAccountTree*)o))
 
-static GObjectClass *parent_class = NULL;
-
 /************************************************************
  *                        Prototypes                        *
  ************************************************************/
 /* Plugin Actions */
-static void gnc_plugin_page_account_tree_class_init (GncPluginPageAccountTreeClass *klass);
-static void gnc_plugin_page_account_tree_init (GncPluginPageAccountTree *plugin_page);
 static void gnc_plugin_page_account_tree_finalize (GObject *object);
 static void gnc_plugin_page_account_tree_selected (GObject *object, gpointer user_data);
 
@@ -363,8 +359,6 @@ gnc_plugin_page_account_tree_class_init (GncPluginPageAccountTreeClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GncPluginPageClass *gnc_plugin_class = GNC_PLUGIN_PAGE_CLASS(klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_page_account_tree_finalize;
 
     gnc_plugin_class->tab_icon        = GNC_ICON_ACCOUNT;
@@ -449,7 +443,7 @@ gnc_plugin_page_account_tree_finalize (GObject *object)
     priv = GNC_PLUGIN_PAGE_ACCOUNT_TREE_GET_PRIVATE(page);
     g_return_if_fail (priv != NULL);
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_page_account_tree_parent_class)->finalize (object);
     LEAVE(" ");
 }
 
diff --git a/gnucash/gnome/gnc-plugin-page-budget.c b/gnucash/gnome/gnc-plugin-page-budget.c
index 022093c461..a4966494e4 100644
--- a/gnucash/gnome/gnc-plugin-page-budget.c
+++ b/gnucash/gnome/gnc-plugin-page-budget.c
@@ -84,9 +84,6 @@ static QofLogModule log_module = GNC_MOD_BUDGET;
  *                        Prototypes                        *
  ************************************************************/
 /* Plugin Actions */
-static void
-gnc_plugin_page_budget_class_init (GncPluginPageBudgetClass *klass);
-static void gnc_plugin_page_budget_init (GncPluginPageBudget *plugin_page);
 static void gnc_plugin_page_budget_finalize (GObject *object);
 
 static GtkWidget *
@@ -233,8 +230,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GncPluginPageBudget, gnc_plugin_page_budget, GNC_TYPE
 #define GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(o)  \
    ((GncPluginPageBudgetPrivate*)gnc_plugin_page_budget_get_instance_private((GncPluginPageBudget*)o))
 
-static GObjectClass *parent_class = NULL;
-
 GncPluginPage *
 gnc_plugin_page_budget_new (GncBudget *budget)
 {
@@ -280,8 +275,6 @@ gnc_plugin_page_budget_class_init (GncPluginPageBudgetClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS(klass);
     GncPluginPageClass *gnc_plugin_class = GNC_PLUGIN_PAGE_CLASS(klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_page_budget_finalize;
 
     gnc_plugin_class->tab_icon        = GNC_ICON_BUDGET;
@@ -350,7 +343,7 @@ gnc_plugin_page_budget_finalize (GObject *object)
     page = GNC_PLUGIN_PAGE_BUDGET(object);
     g_return_if_fail (GNC_IS_PLUGIN_PAGE_BUDGET(page));
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_page_budget_parent_class)->finalize (object);
     LEAVE(" ");
 }
 
diff --git a/gnucash/gnome/gnc-plugin-page-invoice.c b/gnucash/gnome/gnc-plugin-page-invoice.c
index 3b32accdb1..d796993df8 100644
--- a/gnucash/gnome/gnc-plugin-page-invoice.c
+++ b/gnucash/gnome/gnc-plugin-page-invoice.c
@@ -52,8 +52,6 @@
 /* This static indicates the debugging module that this .o belongs to.  */
 static QofLogModule log_module = GNC_MOD_GUI;
 
-static void gnc_plugin_page_invoice_class_init (GncPluginPageInvoiceClass *klass);
-static void gnc_plugin_page_invoice_init (GncPluginPageInvoice *plugin_page);
 static void gnc_plugin_page_invoice_finalize (GObject *object);
 
 static GtkWidget *gnc_plugin_page_invoice_create_widget (GncPluginPage *plugin_page);
@@ -313,8 +311,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GncPluginPageInvoice, gnc_plugin_page_invoice, GNC_TY
 #define GNC_PLUGIN_PAGE_INVOICE_GET_PRIVATE(o)  \
    ((GncPluginPageInvoicePrivate*)gnc_plugin_page_invoice_get_instance_private((GncPluginPageInvoice*)o))
 
-static GObjectClass *parent_class = NULL;
-
 /************************************************************/
 /*                      Implementation                      */
 /************************************************************/
@@ -374,8 +370,6 @@ gnc_plugin_page_invoice_class_init (GncPluginPageInvoiceClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GncPluginPageClass *gnc_plugin_class = GNC_PLUGIN_PAGE_CLASS(klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_page_invoice_finalize;
 
     gnc_plugin_class->tab_icon        = NULL;
@@ -421,7 +415,7 @@ gnc_plugin_page_invoice_finalize (GObject *object)
     g_return_if_fail (GNC_IS_PLUGIN_PAGE_INVOICE (object));
 
     ENTER("object %p", object);
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_page_invoice_parent_class)->finalize (object);
     LEAVE(" ");
 }
 
diff --git a/gnucash/gnome/gnc-plugin-page-owner-tree.c b/gnucash/gnome/gnc-plugin-page-owner-tree.c
index 42d77ccdf6..29efe58d12 100644
--- a/gnucash/gnome/gnc-plugin-page-owner-tree.c
+++ b/gnucash/gnome/gnc-plugin-page-owner-tree.c
@@ -92,14 +92,10 @@ G_DEFINE_TYPE_WITH_PRIVATE(GncPluginPageOwnerTree, gnc_plugin_page_owner_tree, G
 #define GNC_PLUGIN_PAGE_OWNER_TREE_GET_PRIVATE(o)  \
    ((GncPluginPageOwnerTreePrivate*)gnc_plugin_page_owner_tree_get_instance_private((GncPluginPageOwnerTree*)o))
 
-static GObjectClass *parent_class = NULL;
-
 /************************************************************
  *                        Prototypes                        *
  ************************************************************/
 /* Plugin Actions */
-static void gnc_plugin_page_owner_tree_class_init (GncPluginPageOwnerTreeClass *klass);
-static void gnc_plugin_page_owner_tree_init (GncPluginPageOwnerTree *plugin_page);
 static void gnc_plugin_page_owner_tree_finalize (GObject *object);
 static void gnc_plugin_page_owner_tree_selected (GObject *object, gpointer user_data);
 
@@ -326,8 +322,6 @@ gnc_plugin_page_owner_tree_class_init (GncPluginPageOwnerTreeClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GncPluginPageClass *gnc_plugin_class = GNC_PLUGIN_PAGE_CLASS(klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_page_owner_tree_finalize;
 
     gnc_plugin_class->tab_icon        = GNC_ICON_ACCOUNT;
@@ -398,7 +392,7 @@ gnc_plugin_page_owner_tree_finalize (GObject *object)
     priv = GNC_PLUGIN_PAGE_OWNER_TREE_GET_PRIVATE(page);
     g_return_if_fail (priv != NULL);
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_page_owner_tree_parent_class)->finalize (object);
     LEAVE(" ");
 }
 
diff --git a/gnucash/gnome/gnc-plugin-page-register.c b/gnucash/gnome/gnc-plugin-page-register.c
index c1d51f62b0..2f7f09815c 100644
--- a/gnucash/gnome/gnc-plugin-page-register.c
+++ b/gnucash/gnome/gnc-plugin-page-register.c
@@ -95,9 +95,6 @@ static QofLogModule log_module = GNC_MOD_GUI;
 #define DEFAULT_LINES_AMOUNT         50
 #define DEFAULT_FILTER_NUM_DAYS_GL  "30"
 
-static void gnc_plugin_page_register_class_init (GncPluginPageRegisterClass*
-                                                 klass);
-static void gnc_plugin_page_register_init (GncPluginPageRegister* plugin_page);
 static void gnc_plugin_page_register_finalize (GObject* object);
 
 /* static Account *gnc_plugin_page_register_get_current_account (GncPluginPageRegister *page); */
@@ -478,8 +475,6 @@ G_DEFINE_TYPE_WITH_PRIVATE (GncPluginPageRegister, gnc_plugin_page_register,
 #define GNC_PLUGIN_PAGE_REGISTER_GET_PRIVATE(o)  \
    ((GncPluginPageRegisterPrivate*)gnc_plugin_page_register_get_instance_private((GncPluginPageRegister*)o))
 
-static GObjectClass* parent_class = NULL;
-
 /************************************************************/
 /*                      Implementation                      */
 /************************************************************/
@@ -606,8 +601,6 @@ gnc_plugin_page_register_class_init (GncPluginPageRegisterClass* klass)
     GObjectClass* object_class = G_OBJECT_CLASS (klass);
     GncPluginPageClass* gnc_plugin_class = GNC_PLUGIN_PAGE_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_page_register_finalize;
 
     gnc_plugin_class->tab_icon        = GNC_ICON_ACCOUNT;
@@ -669,7 +662,7 @@ gnc_plugin_page_register_finalize (GObject* object)
 
     ENTER ("object %p", object);
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_page_register_parent_class)->finalize (object);
     LEAVE (" ");
 }
 
@@ -1176,7 +1169,7 @@ gnc_plugin_page_register_focus (GncPluginPage* plugin_page,
 
         // Chain up to use parent version of 'focus_page' which will
         // use an idle_add as the page changed signal is emitted multiple times.
-        GNC_PLUGIN_PAGE_CLASS (parent_class)->focus_page (plugin_page, TRUE);
+        GNC_PLUGIN_PAGE_CLASS (gnc_plugin_page_register_parent_class)->focus_page (plugin_page, TRUE);
     }
     else
         priv->page_focus = FALSE;
diff --git a/gnucash/gnome/gnc-plugin-page-report.cpp b/gnucash/gnome/gnc-plugin-page-report.cpp
index 878774bae8..b34c7e715b 100644
--- a/gnucash/gnome/gnc-plugin-page-report.cpp
+++ b/gnucash/gnome/gnc-plugin-page-report.cpp
@@ -84,8 +84,6 @@ a gnucash- prefix will do. Then just set a log level
 with qof_log_set_level().*/
 static QofLogModule log_module = GNC_MOD_GUI;
 
-static GObjectClass *parent_class = nullptr;
-
 // A static GHashTable to record the usage count for each printer
 // output name. FIXME: Currently this isn't cleaned up at program
 // shutdown because there isn't a place to easily insert a finalize()
@@ -140,8 +138,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GncPluginPageReport, gnc_plugin_page_report, GNC_TYPE
 #define GNC_PLUGIN_PAGE_REPORT_GET_PRIVATE(o)  \
    ((GncPluginPageReportPrivate*)gnc_plugin_page_report_get_instance_private((GncPluginPageReport*)o))
 
-static void gnc_plugin_page_report_class_init( GncPluginPageReportClass *klass );
-static void gnc_plugin_page_report_init( GncPluginPageReport *plugin_page );
 static GObject *gnc_plugin_page_report_constructor(GType this_type, guint n_properties, GObjectConstructParam *properties);
 static void gnc_plugin_page_report_finalize (GObject *object);
 static void gnc_plugin_page_report_setup( GncPluginPage *ppage );
@@ -343,8 +339,6 @@ gnc_plugin_page_report_class_init (GncPluginPageReportClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GncPluginPageClass *gnc_plugin_page_class = GNC_PLUGIN_PAGE_CLASS(klass);
 
-    parent_class = static_cast<GObjectClass*>(g_type_class_peek_parent (klass));
-
     object_class->constructor = gnc_plugin_page_report_constructor;
     object_class->finalize = gnc_plugin_page_report_finalize;
 
@@ -385,7 +379,7 @@ gnc_plugin_page_report_finalize (GObject *object)
     g_return_if_fail (GNC_IS_PLUGIN_PAGE_REPORT (object));
 
     ENTER("object %p", object);
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_page_report_parent_class)->finalize (object);
     LEAVE(" ");
 }
 
@@ -1199,16 +1193,9 @@ gnc_plugin_page_report_init ( GncPluginPageReport *plugin_page )
 static GObject*
 gnc_plugin_page_report_constructor(GType this_type, guint n_properties, GObjectConstructParam *properties)
 {
-    GObject *obj;
-    GncPluginPageReportClass *our_class;
-    GObjectClass *parent_class;
-    gint reportId = -42;
-
-    our_class = GNC_PLUGIN_PAGE_REPORT_CLASS (
-                    g_type_class_peek (GNC_TYPE_PLUGIN_PAGE_REPORT));
-    parent_class = G_OBJECT_CLASS (g_type_class_peek_parent (our_class));
-    obj = parent_class->constructor(this_type, n_properties, properties);
+    GObject *obj = G_OBJECT_CLASS (gnc_plugin_page_report_parent_class)->constructor(this_type, n_properties, properties);
 
+    gint reportId = -42;
     for (decltype(n_properties) i = 0; i < n_properties; i++)
     {
         GObjectConstructParam prop = properties[i];
diff --git a/gnucash/gnome/gnc-plugin-page-sx-list.c b/gnucash/gnome/gnc-plugin-page-sx-list.c
index 423cb95b5c..61b32be911 100644
--- a/gnucash/gnome/gnc-plugin-page-sx-list.c
+++ b/gnucash/gnome/gnc-plugin-page-sx-list.c
@@ -102,14 +102,10 @@ G_DEFINE_TYPE_WITH_PRIVATE(GncPluginPageSxList, gnc_plugin_page_sx_list, GNC_TYP
 #define GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(o)  \
    ((GncPluginPageSxListPrivate*)gnc_plugin_page_sx_list_get_instance_private((GncPluginPageSxList*)o))
 
-static GObjectClass *parent_class = NULL;
-
 /************************************************************
  *                        Prototypes                        *
  ************************************************************/
 /* Plugin Actions */
-static void gnc_plugin_page_sx_list_class_init (GncPluginPageSxListClass *klass);
-static void gnc_plugin_page_sx_list_init (GncPluginPageSxList *plugin_page);
 static void gnc_plugin_page_sx_list_dispose (GObject *object);
 static void gnc_plugin_page_sx_list_finalize (GObject *object);
 
@@ -207,8 +203,6 @@ gnc_plugin_page_sx_list_class_init (GncPluginPageSxListClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS(klass);
     GncPluginPageClass *gnc_plugin_class = GNC_PLUGIN_PAGE_CLASS(klass);
 
-    parent_class = g_type_class_peek_parent(klass);
-
     object_class->dispose = gnc_plugin_page_sx_list_dispose;
     object_class->finalize = gnc_plugin_page_sx_list_finalize;
 
@@ -265,7 +259,7 @@ gnc_plugin_page_sx_list_dispose (GObject *object)
     g_object_unref (G_OBJECT(priv->instances));
     priv->instances = NULL;
 
-    G_OBJECT_CLASS(parent_class)->dispose (object);
+    G_OBJECT_CLASS(gnc_plugin_page_sx_list_parent_class)->dispose (object);
 }
 
 
@@ -280,7 +274,7 @@ gnc_plugin_page_sx_list_finalize (GObject *object)
     priv = GNC_PLUGIN_PAGE_SX_LIST_GET_PRIVATE(page);
     g_return_if_fail (priv != NULL);
 
-    G_OBJECT_CLASS(parent_class)->finalize (object);
+    G_OBJECT_CLASS(gnc_plugin_page_sx_list_parent_class)->finalize (object);
 }
 
 
diff --git a/gnucash/gnome/gnc-plugin-register.c b/gnucash/gnome/gnc-plugin-register.c
index 9e0b5c715b..4cae800185 100644
--- a/gnucash/gnome/gnc-plugin-register.c
+++ b/gnucash/gnome/gnc-plugin-register.c
@@ -34,8 +34,6 @@
 #include "gnc-prefs.h"
 
 
-static void gnc_plugin_register_class_init (GncPluginRegisterClass *klass);
-static void gnc_plugin_register_init (GncPluginRegister *plugin);
 static void gnc_plugin_register_finalize (GObject *object);
 
 static void gnc_plugin_register_add_to_window (GncPlugin *plugin, GncMainWindow *window, GQuark type);
@@ -71,7 +69,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GncPluginRegister, gnc_plugin_register, GNC_TYPE_PLUG
 #define GNC_PLUGIN_REGISTER_GET_PRIVATE(o)  \
    ((GncPluginRegisterPrivate*)gnc_plugin_register_get_instance_private((GncPluginRegister*)o))
 
-static GObjectClass *parent_class = NULL;
 static QofLogModule log_module = GNC_MOD_GUI;
 
 /************************************************************
@@ -124,8 +121,6 @@ gnc_plugin_register_class_init (GncPluginRegisterClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_register_finalize;
 
     /* plugin info */
@@ -154,7 +149,7 @@ gnc_plugin_register_finalize (GObject *object)
 {
     g_return_if_fail (GNC_IS_PLUGIN_REGISTER (object));
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_register_parent_class)->finalize (object);
 }
 
 /************************************************************
diff --git a/gnucash/gnome/gnc-plugin-report-system.c b/gnucash/gnome/gnc-plugin-report-system.c
index b5eb4d31e7..1a70836a5d 100644
--- a/gnucash/gnome/gnc-plugin-report-system.c
+++ b/gnucash/gnome/gnc-plugin-report-system.c
@@ -37,8 +37,6 @@
 #include "gnc-engine.h"
 #include "window-report.h"
 
-static void gnc_plugin_report_system_class_init (GncPluginReportSystemClass *klass);
-static void gnc_plugin_report_system_init (GncPluginReportSystem *plugin);
 static void gnc_plugin_report_system_finalize (GObject *object);
 
 
@@ -73,8 +71,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GncPluginReportSystem, gnc_plugin_report_system, GNC_
 #define GNC_PLUGIN_REPORT_SYSTEM_GET_PRIVATE(o)  \
    (G_TYPE_INSTANCE_GET_PRIVATE ((o), GNC_TYPE_PLUGIN_REPORT_SYSTEM, GncPluginReportSystemPrivate))
 
-static GObjectClass *parent_class = NULL;
-
 /************************************************************
  *                   Object Implementation                  *
  ************************************************************/
@@ -85,8 +81,6 @@ gnc_plugin_report_system_class_init (GncPluginReportSystemClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_report_system_finalize;
 
     /* plugin info */
@@ -110,7 +104,7 @@ gnc_plugin_report_system_finalize (GObject *object)
 {
     g_return_if_fail (GNC_IS_PLUGIN_REPORT_SYSTEM (object));
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_report_system_parent_class)->finalize (object);
 }
 
 /************************************************************
diff --git a/gnucash/gnome/search-owner.c b/gnucash/gnome/search-owner.c
index 60baddebbe..fad235fbf0 100644
--- a/gnucash/gnome/search-owner.c
+++ b/gnucash/gnome/search-owner.c
@@ -45,8 +45,6 @@ static gboolean gncs_validate (GNCSearchCoreType *fe);
 static GtkWidget *gncs_get_widget(GNCSearchCoreType *fe);
 static QofQueryPredData* gncs_get_predicate (GNCSearchCoreType *fe);
 
-static void gnc_search_owner_class_init (GNCSearchOwnerClass *klass);
-static void gnc_search_owner_init   (GNCSearchOwner *gspaper);
 static void gnc_search_owner_finalize   (GObject *obj);
 
 typedef struct _GNCSearchOwnerPrivate
@@ -62,8 +60,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GNCSearchOwner, gnc_search_owner, GNC_TYPE_SEARCH_COR
 #define _PRIVATE(o)  \
    ((GNCSearchOwnerPrivate*)gnc_search_owner_get_instance_private((GNCSearchOwner*)o))
 
-static GNCSearchCoreTypeClass *parent_class;
-
 enum
 {
     LAST_SIGNAL
@@ -80,7 +76,6 @@ gnc_search_owner_class_init (GNCSearchOwnerClass *klass)
     GNCSearchCoreTypeClass *gnc_search_core_type = (GNCSearchCoreTypeClass *)klass;
 
     object_class = G_OBJECT_CLASS (klass);
-    parent_class = g_type_class_peek_parent (klass);
 
     object_class->finalize = gnc_search_owner_finalize;
 
@@ -102,7 +97,7 @@ gnc_search_owner_finalize (GObject *obj)
 {
     g_assert (IS_GNCSEARCH_OWNER (obj));
 
-    G_OBJECT_CLASS (parent_class)->finalize(obj);
+    G_OBJECT_CLASS (gnc_search_owner_parent_class)->finalize(obj);
 }
 
 /**
diff --git a/gnucash/html/gnc-html-webkit1.c b/gnucash/html/gnc-html-webkit1.c
index 6db5dfc0e5..8164b64131 100644
--- a/gnucash/html/gnc-html-webkit1.c
+++ b/gnucash/html/gnc-html-webkit1.c
@@ -53,8 +53,6 @@ G_DEFINE_TYPE(GncHtmlWebkit, gnc_html_webkit, GNC_TYPE_HTML )
 
 static void gnc_html_webkit_dispose( GObject* obj );
 static void gnc_html_webkit_finalize( GObject* obj );
-static void gnc_html_webkit_class_init( GncHtmlWebkitClass* klass );
-static void gnc_html_webkit_init( GncHtmlWebkit* gs );
 
 #define GNC_HTML_WEBKIT_GET_PRIVATE(o) (GNC_HTML_WEBKIT(o)->priv)
 
diff --git a/gnucash/html/gnc-html-webkit2.c b/gnucash/html/gnc-html-webkit2.c
index 683c8eec63..b204da4755 100644
--- a/gnucash/html/gnc-html-webkit2.c
+++ b/gnucash/html/gnc-html-webkit2.c
@@ -62,8 +62,6 @@ G_DEFINE_TYPE(GncHtmlWebkit, gnc_html_webkit, GNC_TYPE_HTML )
 
 static void gnc_html_webkit_dispose( GObject* obj );
 static void gnc_html_webkit_finalize( GObject* obj );
-static void gnc_html_webkit_class_init( GncHtmlWebkitClass* klass );
-static void gnc_html_webkit_init( GncHtmlWebkit* gs );
 
 #define GNC_HTML_WEBKIT_GET_PRIVATE(o) (GNC_HTML_WEBKIT(o)->priv)
 
diff --git a/gnucash/html/gnc-html.c b/gnucash/html/gnc-html.c
index 81ba4a4ca2..c5e121fd2e 100644
--- a/gnucash/html/gnc-html.c
+++ b/gnucash/html/gnc-html.c
@@ -68,7 +68,6 @@ extern GHashTable* gnc_html_object_handlers;
 
 G_DEFINE_ABSTRACT_TYPE(GncHtml, gnc_html, GTK_TYPE_BIN)
 
-static void gnc_html_class_init( GncHtmlClass* klass );
 static void gnc_html_dispose( GObject* obj );
 static void gnc_html_finalize( GObject* obj );
 /*
diff --git a/gnucash/import-export/aqb/gnc-plugin-aqbanking.c b/gnucash/import-export/aqb/gnc-plugin-aqbanking.c
index bf8254b69c..b92728b11d 100644
--- a/gnucash/import-export/aqb/gnc-plugin-aqbanking.c
+++ b/gnucash/import-export/aqb/gnc-plugin-aqbanking.c
@@ -53,8 +53,6 @@
 /* This static indicates the debugging module that this .o belongs to.  */
 static QofLogModule log_module = G_LOG_DOMAIN;
 
-static void gnc_plugin_aqbanking_class_init(GncPluginAqBankingClass *klass);
-static void gnc_plugin_aqbanking_init(GncPluginAqBanking *plugin);
 static void gnc_plugin_aqbanking_add_to_window(GncPlugin *plugin, GncMainWindow *window, GQuark type);
 static void gnc_plugin_aqbanking_remove_from_window(GncPlugin *plugin, GncMainWindow *window, GQuark type);
 
diff --git a/gnucash/import-export/bi-import/gnc-plugin-bi-import.c b/gnucash/import-export/bi-import/gnc-plugin-bi-import.c
index 6174feff24..33afe70248 100644
--- a/gnucash/import-export/bi-import/gnc-plugin-bi-import.c
+++ b/gnucash/import-export/bi-import/gnc-plugin-bi-import.c
@@ -41,8 +41,6 @@
 /* This static indicates the debugging module that this .o belongs to.  */
 static QofLogModule log_module = G_LOG_DOMAIN;
 
-static void gnc_plugin_bi_import_class_init         (GncPluginbi_importClass *klass);
-static void gnc_plugin_bi_import_init               (GncPluginbi_import *plugin);
 static void gnc_plugin_bi_import_finalize           (GObject *object);
 
 /* Command callbacks */
diff --git a/gnucash/import-export/csv-exp/gnc-plugin-csv-export.c b/gnucash/import-export/csv-exp/gnc-plugin-csv-export.c
index 0e41ba7b69..acb2982728 100644
--- a/gnucash/import-export/csv-exp/gnc-plugin-csv-export.c
+++ b/gnucash/import-export/csv-exp/gnc-plugin-csv-export.c
@@ -33,8 +33,6 @@
 #include "gnc-plugin-page-register.h"
 #include "Query.h"
 
-static void gnc_plugin_csv_export_class_init (GncPluginCsvExportClass *klass);
-static void gnc_plugin_csv_export_init (GncPluginCsvExport *plugin);
 static void gnc_plugin_csv_export_finalize (GObject *object);
 
 /* Command callbacks */
@@ -71,8 +69,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GncPluginCsvExport, gnc_plugin_csv_export, GNC_TYPE_P
 #define GNC_PLUGIN_CSV_EXPORT_GET_PRIVATE(o)  \
    ((GncPluginCsvExportPrivate*)gnc_plugin_csv_export_get_instance_private((GncPluginCsvExport*)o))
 
-static GObjectClass *parent_class = NULL;
-
 GncPlugin *
 gnc_plugin_csv_export_new (void)
 {
@@ -85,8 +81,6 @@ gnc_plugin_csv_export_class_init (GncPluginCsvExportClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_csv_export_finalize;
 
     /* plugin info */
@@ -110,7 +104,7 @@ gnc_plugin_csv_export_finalize (GObject *object)
 {
     g_return_if_fail (GNC_IS_PLUGIN_CSV_EXPORT (object));
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_csv_export_parent_class)->finalize (object);
 }
 
 /************************************************************
diff --git a/gnucash/import-export/csv-imp/gnc-plugin-csv-import.c b/gnucash/import-export/csv-imp/gnc-plugin-csv-import.c
index 6a3afdad14..cb01075abd 100644
--- a/gnucash/import-export/csv-imp/gnc-plugin-csv-import.c
+++ b/gnucash/import-export/csv-imp/gnc-plugin-csv-import.c
@@ -32,8 +32,6 @@
 #include "assistant-csv-trans-import.h"
 #include "assistant-csv-price-import.h"
 
-static void gnc_plugin_csv_import_class_init (GncPluginCsvImportClass *klass);
-static void gnc_plugin_csv_import_init (GncPluginCsvImport *plugin);
 static void gnc_plugin_csv_import_finalize (GObject *object);
 
 /* Command callbacks */
@@ -70,8 +68,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GncPluginCsvImport, gnc_plugin_csv_import, GNC_TYPE_P
 #define GNC_PLUGIN_CSV_IMPORT_GET_PRIVATE(o)  \
    ((GncPluginCsvImportPrivate*)gnc_plugin_csv_import_get_instance_private((GncPluginCsvImport*)o))
 
-static GObjectClass *parent_class = NULL;
-
 GncPlugin *
 gnc_plugin_csv_import_new (void)
 {
@@ -84,8 +80,6 @@ gnc_plugin_csv_import_class_init (GncPluginCsvImportClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_csv_import_finalize;
 
     /* plugin info */
@@ -109,7 +103,7 @@ gnc_plugin_csv_import_finalize (GObject *object)
 {
     g_return_if_fail (GNC_IS_PLUGIN_CSV_IMPORT (object));
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_csv_import_parent_class)->finalize (object);
 }
 
 /************************************************************
diff --git a/gnucash/import-export/customer-import/gnc-plugin-customer-import.c b/gnucash/import-export/customer-import/gnc-plugin-customer-import.c
index e0188cecd0..eae4b0b2cc 100644
--- a/gnucash/import-export/customer-import/gnc-plugin-customer-import.c
+++ b/gnucash/import-export/customer-import/gnc-plugin-customer-import.c
@@ -41,8 +41,6 @@
 /* This static indicates the debugging module that this .o belongs to.  */
 static QofLogModule log_module = G_LOG_DOMAIN;
 
-static void gnc_plugin_customer_import_class_init         (GncPlugincustomer_importClass *klass);
-static void gnc_plugin_customer_import_init               (GncPlugincustomer_import *plugin);
 static void gnc_plugin_customer_import_finalize           (GObject *object);
 
 /* Command callbacks */
diff --git a/gnucash/import-export/log-replay/gnc-plugin-log-replay.c b/gnucash/import-export/log-replay/gnc-plugin-log-replay.c
index 526a3e1600..28b11592bd 100644
--- a/gnucash/import-export/log-replay/gnc-plugin-log-replay.c
+++ b/gnucash/import-export/log-replay/gnc-plugin-log-replay.c
@@ -31,8 +31,6 @@
 #include "gnc-plugin-manager.h"
 #include "gnc-component-manager.h"
 
-static void gnc_plugin_log_replay_class_init (GncPluginLogreplayClass *klass);
-static void gnc_plugin_log_replay_init (GncPluginLogreplay *plugin);
 static void gnc_plugin_log_replay_finalize (GObject *object);
 
 /* Command callbacks */
@@ -66,8 +64,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GncPluginLogreplay, gnc_plugin_log_replay, GNC_TYPE_P
 #define GNC_PLUGIN_LOG_REPLAY_GET_PRIVATE(o)  \
    ((GncPluginLogreplayPrivate*)gnc_plugin_log_replay_get_instance_private((GncPluginLogReplay*)o))
 
-static GObjectClass *parent_class = NULL;
-
 GncPlugin *
 gnc_plugin_log_replay_new (void)
 {
@@ -80,8 +76,6 @@ gnc_plugin_log_replay_class_init (GncPluginLogreplayClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_log_replay_finalize;
 
     /* plugin info */
@@ -105,7 +99,7 @@ gnc_plugin_log_replay_finalize (GObject *object)
 {
     g_return_if_fail (GNC_IS_PLUGIN_LOG_REPLAY (object));
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_log_replay_parent_class)->finalize (object);
 }
 
 /************************************************************
diff --git a/gnucash/import-export/ofx/gnc-plugin-ofx.c b/gnucash/import-export/ofx/gnc-plugin-ofx.c
index 4d72b8d978..8a1f626527 100644
--- a/gnucash/import-export/ofx/gnc-plugin-ofx.c
+++ b/gnucash/import-export/ofx/gnc-plugin-ofx.c
@@ -29,8 +29,6 @@
 #include "gnc-plugin-ofx.h"
 #include "gnc-plugin-manager.h"
 
-static void gnc_plugin_ofx_class_init (GncPluginOfxClass *klass);
-static void gnc_plugin_ofx_init (GncPluginOfx *plugin);
 static void gnc_plugin_ofx_finalize (GObject *object);
 
 /* Command callbacks */
@@ -64,8 +62,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GncPluginOfx, gnc_plugin_ofx, GNC_TYPE_PLUGIN)
 #define GNC_PLUGIN_OFX_GET_PRIVATE(o)  \
    ((GncPluginOfxPrivate*)gnc_plugin_ofx_get_instance_private((GncPluginOfx*)o))
 
-static GObjectClass *parent_class = NULL;
-
 GncPlugin *
 gnc_plugin_ofx_new (void)
 {
@@ -78,8 +74,6 @@ gnc_plugin_ofx_class_init (GncPluginOfxClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_ofx_finalize;
 
     /* plugin info */
@@ -103,7 +97,7 @@ gnc_plugin_ofx_finalize (GObject *object)
 {
     g_return_if_fail (GNC_IS_PLUGIN_OFX (object));
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_ofx_parent_class)->finalize (object);
 }
 
 /************************************************************
diff --git a/gnucash/import-export/qif-imp/gnc-plugin-qif-import.c b/gnucash/import-export/qif-imp/gnc-plugin-qif-import.c
index ab1ba6f36f..b14ccfe50a 100644
--- a/gnucash/import-export/qif-imp/gnc-plugin-qif-import.c
+++ b/gnucash/import-export/qif-imp/gnc-plugin-qif-import.c
@@ -32,8 +32,6 @@
 #include "gnc-plugin-manager.h"
 #include "gnc-plugin-qif-import.h"
 
-static void gnc_plugin_qif_import_class_init (GncPluginQifImportClass *klass);
-static void gnc_plugin_qif_import_init (GncPluginQifImport *plugin);
 static void gnc_plugin_qif_import_finalize (GObject *object);
 
 /* Command callbacks */
@@ -66,8 +64,6 @@ G_DEFINE_TYPE_WITH_PRIVATE(GncPluginQifImport, gnc_plugin_qif_import, GNC_TYPE_P
 #define GNC_PLUGIN_QIF_IMPORT_GET_PRIVATE(o)  \
    ((GncPluginQifImportPrivate*)gnc_plugin_qif_import_get_instance_private((GncPluginQifImport*)o))
 
-static GObjectClass *parent_class = NULL;
-
 GncPlugin *
 gnc_plugin_qif_import_new (void)
 {
@@ -80,8 +76,6 @@ gnc_plugin_qif_import_class_init (GncPluginQifImportClass *klass)
     GObjectClass *object_class = G_OBJECT_CLASS (klass);
     GncPluginClass *plugin_class = GNC_PLUGIN_CLASS (klass);
 
-    parent_class = g_type_class_peek_parent (klass);
-
     object_class->finalize = gnc_plugin_qif_import_finalize;
 
     /* plugin info */
@@ -105,7 +99,7 @@ gnc_plugin_qif_import_finalize (GObject *object)
 {
     g_return_if_fail (GNC_IS_PLUGIN_QIF_IMPORT (object));
 
-    G_OBJECT_CLASS (parent_class)->finalize (object);
+    G_OBJECT_CLASS (gnc_plugin_qif_import_parent_class)->finalize (object);
 }
 
 /************************************************************
diff --git a/libgnucash/gnc-module/example/gnc-plugin.example.c b/libgnucash/gnc-module/example/gnc-plugin.example.c
index b55899d17c..6a739866f3 100644
--- a/libgnucash/gnc-module/example/gnc-plugin.example.c
+++ b/libgnucash/gnc-module/example/gnc-plugin.example.c
@@ -35,8 +35,6 @@
 /* This static indicates the debugging module that this .o belongs to.  */
 static QofLogModule log_module = G_LOG_DOMAIN;
 
-static void gnc_plugin_example_class_init         (GncPluginexampleClass *klass);
-static void gnc_plugin_example_init               (GncPluginexample *plugin);
 static void gnc_plugin_example_finalize           (GObject *object);
 
 /* Command callbacks */



Summary of changes:
 gnucash/gnome-search/gnc-general-search.c           |  7 +------
 gnucash/gnome-search/search-account.c               |  7 +------
 gnucash/gnome-search/search-boolean.c               |  7 +------
 gnucash/gnome-search/search-core-type.c             |  7 +------
 gnucash/gnome-search/search-date.c                  |  7 +------
 gnucash/gnome-search/search-double.c                |  7 +------
 gnucash/gnome-search/search-int64.c                 |  7 +------
 gnucash/gnome-search/search-numeric.c               |  7 +------
 gnucash/gnome-search/search-reconciled.c            |  7 +------
 gnucash/gnome-search/search-string.c                |  7 +------
 gnucash/gnome-utils/gnc-account-sel.c               | 10 ++--------
 gnucash/gnome-utils/gnc-amount-edit.c               |  2 --
 gnucash/gnome-utils/gnc-cell-renderer-text-view.c   |  3 ---
 gnucash/gnome-utils/gnc-cell-view.c                 |  2 --
 gnucash/gnome-utils/gnc-currency-edit.c             |  8 +-------
 gnucash/gnome-utils/gnc-date-format.c               |  9 +--------
 gnucash/gnome-utils/gnc-embedded-window.c           |  9 ++-------
 gnucash/gnome-utils/gnc-main-window.cpp             | 12 +++---------
 gnucash/gnome-utils/gnc-period-select.c             | 10 +---------
 gnucash/gnome-utils/gnc-plugin-file-history.c       | 11 +++--------
 gnucash/gnome-utils/gnc-plugin-manager.c            | 10 ++--------
 gnucash/gnome-utils/gnc-plugin-menu-additions.c     |  8 +-------
 gnucash/gnome-utils/gnc-plugin-page.c               |  8 +-------
 gnucash/gnome-utils/gnc-plugin.c                    |  8 +-------
 gnucash/gnome-utils/gnc-query-view.c                |  9 ++-------
 gnucash/gnome-utils/gnc-report-combo.c              |  2 --
 gnucash/gnome-utils/gnc-tree-model-account-types.c  | 10 +---------
 gnucash/gnome-utils/gnc-tree-model-account.c        | 13 ++-----------
 gnucash/gnome-utils/gnc-tree-model-commodity.c      | 12 ++----------
 gnucash/gnome-utils/gnc-tree-model-owner.c          | 13 ++-----------
 gnucash/gnome-utils/gnc-tree-model-price.c          | 12 ++----------
 gnucash/gnome-utils/gnc-tree-model-selection.c      |  8 +-------
 gnucash/gnome-utils/gnc-tree-model.c                | 11 +----------
 gnucash/gnome-utils/gnc-tree-view-account.c         |  9 +--------
 gnucash/gnome-utils/gnc-tree-view-commodity.c       | 12 ++----------
 gnucash/gnome-utils/gnc-tree-view-owner.c           |  9 +--------
 gnucash/gnome-utils/gnc-tree-view-price.c           | 12 ++----------
 gnucash/gnome-utils/gnc-tree-view-sx-list.c         | 11 ++---------
 gnucash/gnome-utils/gnc-tree-view.c                 | 12 ++----------
 gnucash/gnome-utils/search-param.c                  | 21 +++------------------
 gnucash/gnome/gnc-budget-view.c                     |  4 ----
 gnucash/gnome/gnc-plugin-account-tree.c             |  9 +--------
 gnucash/gnome/gnc-plugin-basic-commands.c           |  9 +--------
 gnucash/gnome/gnc-plugin-budget.c                   |  7 +------
 gnucash/gnome/gnc-plugin-business.c                 |  8 +-------
 gnucash/gnome/gnc-plugin-page-account-tree.c        |  8 +-------
 gnucash/gnome/gnc-plugin-page-budget.c              |  9 +--------
 gnucash/gnome/gnc-plugin-page-invoice.c             |  8 +-------
 gnucash/gnome/gnc-plugin-page-owner-tree.c          |  8 +-------
 gnucash/gnome/gnc-plugin-page-register.c            | 11 ++---------
 gnucash/gnome/gnc-plugin-page-report.cpp            | 19 +++----------------
 gnucash/gnome/gnc-plugin-page-sx-list.c             | 10 ++--------
 gnucash/gnome/gnc-plugin-register.c                 |  7 +------
 gnucash/gnome/gnc-plugin-report-system.c            |  8 +-------
 gnucash/gnome/search-owner.c                        |  7 +------
 gnucash/html/gnc-html-webkit1.c                     |  2 --
 gnucash/html/gnc-html-webkit2.c                     |  2 --
 gnucash/html/gnc-html.c                             |  1 -
 gnucash/import-export/aqb/gnc-plugin-aqbanking.c    |  2 --
 .../import-export/bi-import/gnc-plugin-bi-import.c  |  2 --
 .../import-export/csv-exp/gnc-plugin-csv-export.c   |  8 +-------
 .../import-export/csv-imp/gnc-plugin-csv-import.c   |  8 +-------
 .../customer-import/gnc-plugin-customer-import.c    |  2 --
 .../log-replay/gnc-plugin-log-replay.c              |  8 +-------
 gnucash/import-export/ofx/gnc-plugin-ofx.c          |  8 +-------
 .../import-export/qif-imp/gnc-plugin-qif-import.c   |  8 +-------
 libgnucash/gnc-module/example/gnc-plugin.example.c  |  2 --
 67 files changed, 77 insertions(+), 464 deletions(-)



More information about the gnucash-changes mailing list