[glade] Utils: Add glade_util_list_objects_ref()
- From: Juan Pablo Ugarte <jpu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade] Utils: Add glade_util_list_objects_ref()
- Date: Mon, 17 Aug 2020 22:28:42 +0000 (UTC)
commit a987d81b4e9a7c9a3d1f616444500d36c6dda274
Author: Juan Pablo Ugarte <juanpablougarte gmail com>
Date: Mon Aug 17 17:18:10 2020 -0300
Utils: Add glade_util_list_objects_ref()
Use new function to fix -Wcast-function-type warnings
gladeui/glade-command.c | 9 +++------
gladeui/glade-utils.c | 14 ++++++++++++++
gladeui/glade-utils.h | 1 +
plugins/gtk+/glade-gtk-grid.c | 5 ++---
plugins/gtk+/glade-gtk-notebook.c | 2 +-
plugins/gtk+/glade-gtk-table.c | 5 ++---
6 files changed, 23 insertions(+), 13 deletions(-)
---
diff --git a/gladeui/glade-command.c b/gladeui/glade-command.c
index 5c87a710..eaec608b 100644
--- a/gladeui/glade-command.c
+++ b/gladeui/glade-command.c
@@ -1240,7 +1240,7 @@ glade_command_add (GList *widgets,
/* Parentless ref */
if ((cdata->reffed =
get_all_parentless_reffed_widgets (cdata->reffed, widget)) != NULL)
- g_list_foreach (cdata->reffed, (GFunc) g_object_ref, NULL);
+ glade_util_list_objects_ref (cdata->reffed);
/* Parent */
if (parent == NULL)
@@ -1410,7 +1410,7 @@ glade_command_remove (GList *widgets)
if ((cdata->reffed =
get_all_parentless_reffed_widgets (cdata->reffed, widget)) != NULL)
- g_list_foreach (cdata->reffed, (GFunc) g_object_ref, NULL);
+ glade_util_list_objects_ref (cdata->reffed);
/* If we're removing the template widget, then we need to unset it as template */
if (glade_project_get_template (priv->project) == widget)
@@ -1541,10 +1541,7 @@ glade_command_add_execute (GladeCommandAddRemove *me)
glade_command_transfer_props (cdata->widget, saved_props);
if (saved_props)
- {
- g_list_foreach (saved_props, (GFunc) g_object_unref, NULL);
- g_list_free (saved_props);
- }
+ g_list_free_full (saved_props, g_object_unref);
/* Now that we've added, apply any packing props if nescisary. */
for (l = cdata->pack_props; l; l = l->next)
diff --git a/gladeui/glade-utils.c b/gladeui/glade-utils.c
index c11e2821..e7d91636 100644
--- a/gladeui/glade-utils.c
+++ b/gladeui/glade-utils.c
@@ -773,6 +773,20 @@ glade_util_find_iter_by_widget (GtkTreeModel *model,
return NULL;
}
+/**
+ * glade_util_list_objects_ref: (skip)
+ * @list: (transfer full): A #GList
+ *
+ * Add a reference to each GObject in the list.
+ */
+void
+glade_util_list_objects_ref (GList *list)
+{
+ GList *l;
+ for (l = list; l; l = g_list_next (l))
+ g_object_ref (l->data);
+}
+
/**
* glade_util_purify_list: (skip)
* @list: (transfer full): A #GList
diff --git a/gladeui/glade-utils.h b/gladeui/glade-utils.h
index 9e4d0e1a..903c45db 100644
--- a/gladeui/glade-utils.h
+++ b/gladeui/glade-utils.h
@@ -103,6 +103,7 @@ void glade_utils_cairo_draw_rectangle (cairo_t *cr,
gint height);
/* Lists */
+void glade_util_list_objects_ref (GList *list);
GList *glade_util_purify_list (GList *list);
GList *glade_util_added_in_list (GList *old_list,
GList *new_list);
diff --git a/plugins/gtk+/glade-gtk-grid.c b/plugins/gtk+/glade-gtk-grid.c
index f1760fa0..a851b2e7 100644
--- a/plugins/gtk+/glade-gtk-grid.c
+++ b/plugins/gtk+/glade-gtk-grid.c
@@ -530,7 +530,7 @@ glade_gtk_grid_child_insert_remove_action (GladeWidgetAdaptor *adaptor,
children = glade_widget_adaptor_get_children (adaptor, container);
/* Make sure widgets does not get destroyed */
- g_list_foreach (children, (GFunc) g_object_ref, NULL);
+ glade_util_object_list_ref (children);
glade_widget_property_get (parent, n_row_col, &size);
@@ -612,8 +612,7 @@ glade_gtk_grid_child_insert_remove_action (GladeWidgetAdaptor *adaptor,
size - 1);
}
- g_list_foreach (children, (GFunc) g_object_unref, NULL);
- g_list_free (children);
+ g_list_free_full (children, g_object_unref);
glade_command_pop_group ();
}
diff --git a/plugins/gtk+/glade-gtk-notebook.c b/plugins/gtk+/glade-gtk-notebook.c
index cd5de473..8847e5da 100644
--- a/plugins/gtk+/glade-gtk-notebook.c
+++ b/plugins/gtk+/glade-gtk-notebook.c
@@ -1005,7 +1005,7 @@ glade_gtk_box_notebook_child_insert_remove_action (GladeWidgetAdaptor *adaptor,
/* Make sure widgets does not get destroyed */
children = glade_widget_adaptor_get_children (adaptor, container);
- g_list_foreach (children, (GFunc) g_object_ref, NULL);
+ glade_util_object_list_ref (children);
glade_widget_property_get (parent, size_prop, &size);
diff --git a/plugins/gtk+/glade-gtk-table.c b/plugins/gtk+/glade-gtk-table.c
index dbaa0a28..2c67f338 100644
--- a/plugins/gtk+/glade-gtk-table.c
+++ b/plugins/gtk+/glade-gtk-table.c
@@ -563,7 +563,7 @@ glade_gtk_table_child_insert_remove_action (GladeWidgetAdaptor *adaptor,
children = glade_widget_adaptor_get_children (adaptor, container);
/* Make sure widgets does not get destroyed */
- g_list_foreach (children, (GFunc) g_object_ref, NULL);
+ glade_util_object_list_ref (children);
glade_widget_property_get (parent, n_row_col, &size);
@@ -660,8 +660,7 @@ glade_gtk_table_child_insert_remove_action (GladeWidgetAdaptor *adaptor,
size - 1);
}
- g_list_foreach (children, (GFunc) g_object_unref, NULL);
- g_list_free (children);
+ g_list_free_full (children, g_object_unref);
glade_command_pop_group ();
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]