[tepl] SignalGroup: replace free() by clear() function
- From: Sébastien Wilmet <swilmet src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tepl] SignalGroup: replace free() by clear() function
- Date: Wed, 26 Jul 2017 12:34:57 +0000 (UTC)
commit 143e584a827ce290f33b46dc383be2774e4af03d
Author: Sébastien Wilmet <swilmet gnome org>
Date: Wed Jul 26 14:31:25 2017 +0200
SignalGroup: replace free() by clear() function
To simplify the code (only one line needed), and improve type checking.
tepl/tepl-application-window.c | 14 ++++----------
tepl/tepl-notebook.c | 6 ++----
tepl/tepl-signal-group.c | 11 ++++++++++-
tepl/tepl-signal-group.h | 2 +-
4 files changed, 17 insertions(+), 16 deletions(-)
---
diff --git a/tepl/tepl-application-window.c b/tepl/tepl-application-window.c
index 7b997b3..1653338 100644
--- a/tepl/tepl-application-window.c
+++ b/tepl/tepl-application-window.c
@@ -349,12 +349,8 @@ tepl_application_window_dispose (GObject *object)
tepl_window->priv->gtk_window = NULL;
g_clear_object (&tepl_window->priv->tab_group);
-
- g_clear_pointer (&tepl_window->priv->view_signal_group,
- (GDestroyNotify) _tepl_signal_group_free);
-
- g_clear_pointer (&tepl_window->priv->buffer_signal_group,
- (GDestroyNotify) _tepl_signal_group_free);
+ _tepl_signal_group_clear (&tepl_window->priv->view_signal_group);
+ _tepl_signal_group_clear (&tepl_window->priv->buffer_signal_group);
G_OBJECT_CLASS (tepl_application_window_parent_class)->dispose (object);
}
@@ -534,8 +530,7 @@ active_view_notify_cb (TeplTabGroup *tab_group,
{
TeplView *active_view;
- g_clear_pointer (&tepl_window->priv->view_signal_group,
- (GDestroyNotify) _tepl_signal_group_free);
+ _tepl_signal_group_clear (&tepl_window->priv->view_signal_group);
active_view = tepl_tab_group_get_active_view (tab_group);
@@ -571,8 +566,7 @@ active_buffer_notify_cb (TeplTabGroup *tab_group,
{
TeplBuffer *active_buffer;
- g_clear_pointer (&tepl_window->priv->buffer_signal_group,
- (GDestroyNotify) _tepl_signal_group_free);
+ _tepl_signal_group_clear (&tepl_window->priv->buffer_signal_group);
active_buffer = tepl_tab_group_get_active_buffer (tab_group);
diff --git a/tepl/tepl-notebook.c b/tepl/tepl-notebook.c
index 68e1a0d..8832a11 100644
--- a/tepl/tepl-notebook.c
+++ b/tepl/tepl-notebook.c
@@ -114,8 +114,7 @@ tepl_notebook_dispose (GObject *object)
{
TeplNotebook *notebook = TEPL_NOTEBOOK (object);
- g_clear_pointer (¬ebook->priv->view_signal_group,
- (GDestroyNotify) _tepl_signal_group_free);
+ _tepl_signal_group_clear (¬ebook->priv->view_signal_group);
G_OBJECT_CLASS (tepl_notebook_parent_class)->dispose (object);
}
@@ -142,8 +141,7 @@ check_active_tab_changed (TeplNotebook *notebook)
notebook->priv->active_tab = active_tab;
- g_clear_pointer (¬ebook->priv->view_signal_group,
- (GDestroyNotify) _tepl_signal_group_free);
+ _tepl_signal_group_clear (¬ebook->priv->view_signal_group);
active_view = tepl_tab_group_get_active_view (TEPL_TAB_GROUP (notebook));
diff --git a/tepl/tepl-signal-group.c b/tepl/tepl-signal-group.c
index dfbd69c..2587407 100644
--- a/tepl/tepl-signal-group.c
+++ b/tepl/tepl-signal-group.c
@@ -58,7 +58,7 @@ _tepl_signal_group_new (GObject *object)
return group;
}
-void
+static void
_tepl_signal_group_free (TeplSignalGroup *group)
{
if (group == NULL)
@@ -89,6 +89,15 @@ _tepl_signal_group_free (TeplSignalGroup *group)
}
void
+_tepl_signal_group_clear (TeplSignalGroup **group_pointer)
+{
+ g_return_if_fail (group_pointer != NULL);
+
+ _tepl_signal_group_free (*group_pointer);
+ *group_pointer = NULL;
+}
+
+void
_tepl_signal_group_add (TeplSignalGroup *group,
gulong signal_handler_id)
{
diff --git a/tepl/tepl-signal-group.h b/tepl/tepl-signal-group.h
index e6f38a1..bb0671d 100644
--- a/tepl/tepl-signal-group.h
+++ b/tepl/tepl-signal-group.h
@@ -30,7 +30,7 @@ G_GNUC_INTERNAL
TeplSignalGroup * _tepl_signal_group_new (GObject *object);
G_GNUC_INTERNAL
-void _tepl_signal_group_free (TeplSignalGroup *group);
+void _tepl_signal_group_clear (TeplSignalGroup **group_pointer);
G_GNUC_INTERNAL
void _tepl_signal_group_add (TeplSignalGroup *group,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]