[balsa] toolbar-model: Declare it final
- From: Peter Bloomfield <peterb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [balsa] toolbar-model: Declare it final
- Date: Tue, 30 Jul 2019 01:40:28 +0000 (UTC)
commit 7369460db5c6a5cf700e74ffda7f703f5f4a3af4
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Tue May 1 18:17:54 2018 -0400
toolbar-model: Declare it final
The object structure is already private.
src/toolbar-factory.c | 57 ++++++++++++++++-----------------------------------
src/toolbar-factory.h | 25 ++++++----------------
2 files changed, 24 insertions(+), 58 deletions(-)
---
diff --git a/src/toolbar-factory.c b/src/toolbar-factory.c
index f26b29f94..799d2ccdb 100644
--- a/src/toolbar-factory.c
+++ b/src/toolbar-factory.c
@@ -42,7 +42,7 @@ static const gchar *const balsa_toolbar_names[] =
* The BalsaToolbarModel class.
*/
-struct BalsaToolbarModel_ {
+struct _BalsaToolbarModel {
GObject object;
GHashTable *legal;
@@ -58,23 +58,30 @@ enum {
LAST_SIGNAL
};
-static GObjectClass* parent_class;
static guint model_signals[LAST_SIGNAL] = { 0 };
+G_DEFINE_TYPE(BalsaToolbarModel, balsa_toolbar_model, G_TYPE_OBJECT)
+
+static void
+balsa_toolbar_model_dispose(GObject * object)
+{
+ BalsaToolbarModel *model = BALSA_TOOLBAR_MODEL(object);
+
+ g_clear_object(&model->settings);
+
+ G_OBJECT_CLASS(balsa_toolbar_model_parent_class)->dispose(object);
+}
+
+
static void
balsa_toolbar_model_finalize(GObject * object)
{
BalsaToolbarModel *model = BALSA_TOOLBAR_MODEL(object);
- if (model->legal) {
+ if (model->legal != NULL)
g_hash_table_destroy(model->legal);
- model->legal = NULL;
- }
- if (model->settings) {
- g_object_unref(model->settings);
- model->settings = NULL;
- }
- G_OBJECT_CLASS(parent_class)->finalize(object);
+
+ G_OBJECT_CLASS(balsa_toolbar_model_parent_class)->finalize(object);
}
static void
@@ -82,8 +89,6 @@ balsa_toolbar_model_class_init(BalsaToolbarModelClass* klass)
{
GObjectClass *object_class = (GObjectClass *) klass;
- parent_class = g_type_class_peek_parent(klass);
-
model_signals[CHANGED] =
g_signal_new("changed", G_TYPE_FROM_CLASS(object_class),
G_SIGNAL_RUN_FIRST,
@@ -93,6 +98,7 @@ balsa_toolbar_model_class_init(BalsaToolbarModelClass* klass)
object_class = G_OBJECT_CLASS(klass);
object_class->finalize = balsa_toolbar_model_finalize;
+ object_class->dispose = balsa_toolbar_model_dispose;
}
static void
@@ -102,33 +108,6 @@ balsa_toolbar_model_init(BalsaToolbarModel * model)
g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free);
}
-GType
-balsa_toolbar_model_get_type()
-{
- static GType balsa_toolbar_model_type = 0;
-
- if (!balsa_toolbar_model_type) {
- static const GTypeInfo balsa_toolbar_model_info = {
- sizeof(BalsaToolbarModelClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) balsa_toolbar_model_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof(BalsaToolbarModel),
- 0, /* n_preallocs */
- (GInstanceInitFunc) balsa_toolbar_model_init,
- };
-
- balsa_toolbar_model_type =
- g_type_register_static(G_TYPE_OBJECT,
- "BalsaToolbarModel",
- &balsa_toolbar_model_info, 0);
- }
-
- return balsa_toolbar_model_type;
-}
-
/* End of class boilerplate */
/* The descriptions must be SHORT */
diff --git a/src/toolbar-factory.h b/src/toolbar-factory.h
index 7a664fbc3..1b003ae3a 100644
--- a/src/toolbar-factory.h
+++ b/src/toolbar-factory.h
@@ -23,27 +23,14 @@
#include <glib-object.h>
#include "toolbar-prefs.h"
-GType balsa_toolbar_model_get_type(void);
+#define BALSA_TYPE_TOOLBAR_MODEL balsa_toolbar_model_get_type()
-#define BALSA_TYPE_TOOLBAR_MODEL \
- (balsa_toolbar_model_get_type ())
-#define BALSA_TOOLBAR_MODEL(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST (obj, BALSA_TYPE_TOOLBAR_MODEL, \
- BalsaToolbarModel))
-#define BALSA_TOOLBAR_MODEL_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_CAST (klass, BALSA_TYPE_TOOLBAR_MODEL, \
- BalsaToolbarModelClass))
-#define BALSA_IS_TOOLBAR_MODEL(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE (obj, BALSA_TYPE_TOOLBAR_MODEL))
-#define BALSA_IS_TOOLBAR_MODEL_CLASS(klass) \
- (G_TYPE_CHECK_CLASS_TYPE (klass, BALSA_TYPE_TOOLBAR_MODEL))
+G_DECLARE_FINAL_TYPE(BalsaToolbarModel,
+ balsa_toolbar_model,
+ BALSA,
+ TOOLBAR_MODEL,
+ GObject);
-typedef struct BalsaToolbarModel_ BalsaToolbarModel;
-typedef struct BalsaToolbarModelClass_ BalsaToolbarModelClass;
-
-struct BalsaToolbarModelClass_ {
- GObjectClass parent_class;
-};
typedef void (*BalsaToolbarFunc) (GtkWidget *, gpointer);
#define BALSA_TOOLBAR_FUNC(f) ((BalsaToolbarFunc) (f))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]