[Telepathy-commits] [telepathy-salut/master] salut_tubes_channel_foreach: use GHashTableIter
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Thu Feb 5 04:07:01 PST 2009
---
src/salut-tubes-channel.c | 36 +++++++++++-------------------------
1 files changed, 11 insertions(+), 25 deletions(-)
diff --git a/src/salut-tubes-channel.c b/src/salut-tubes-channel.c
index 1d68bad..3895200 100644
--- a/src/salut-tubes-channel.c
+++ b/src/salut-tubes-channel.c
@@ -2478,36 +2478,22 @@ emit_tube_closed_signal (gpointer key,
tp_svc_channel_type_tubes_emit_tube_closed (self, id);
}
-struct _ForeachData
-{
- TpExportableChannelFunc foreach;
- gpointer user_data;
-};
-
-static void
-foreach_slave (gpointer key,
- gpointer value,
- gpointer user_data)
-{
- SalutTubeIface *tube = SALUT_TUBE_IFACE (value);
- struct _ForeachData *data = (struct _ForeachData *) user_data;
-
- data->foreach (TP_EXPORTABLE_CHANNEL (tube), data->user_data);
-}
-
-void salut_tubes_channel_foreach (SalutTubesChannel *self,
- TpExportableChannelFunc foreach, gpointer user_data)
+void
+salut_tubes_channel_foreach (SalutTubesChannel *self,
+ TpExportableChannelFunc foreach,
+ gpointer user_data)
{
- struct _ForeachData data;
SalutTubesChannelPrivate *priv = SALUT_TUBES_CHANNEL_GET_PRIVATE (self);
+ GHashTableIter iter;
+ gpointer value;
- data.user_data = user_data;
- data.foreach = foreach;
-
- g_hash_table_foreach (priv->tubes, foreach_slave, &data);
+ g_hash_table_iter_init (&iter, priv->tubes);
+ while (g_hash_table_iter_next (&iter, NULL, &value))
+ {
+ foreach (TP_EXPORTABLE_CHANNEL (value), user_data);
+ }
}
-
void
salut_tubes_channel_close (SalutTubesChannel *self)
{
--
1.5.6.5
More information about the telepathy-commits
mailing list