[Telepathy-commits] [telepathy-salut/master] salut_tubes_manager_foreach_channel: use GHashTableIter
Guillaume Desmottes
guillaume.desmottes at collabora.co.uk
Thu Feb 5 04:13:39 PST 2009
---
src/salut-tubes-manager.c | 41 ++++++++++++++---------------------------
1 files changed, 14 insertions(+), 27 deletions(-)
diff --git a/src/salut-tubes-manager.c b/src/salut-tubes-manager.c
index 0969485..1a289ec 100644
--- a/src/salut-tubes-manager.c
+++ b/src/salut-tubes-manager.c
@@ -683,29 +683,6 @@ new_tubes_channel (SalutTubesManager *fac,
return chan;
}
-struct _ForeachData
-{
- TpExportableChannelFunc foreach;
- gpointer user_data;
-};
-
-static void
-_foreach_slave (gpointer key,
- gpointer value,
- gpointer user_data)
-{
- struct _ForeachData *data = (struct _ForeachData *) user_data;
- TpExportableChannel *chan = TP_EXPORTABLE_CHANNEL (value);
-
- /* Add channels of type Channel.Type.Tubes */
- data->foreach (chan, data->user_data);
-
- /* Add channels of type Channel.Type.{Stream|DBus}Tube which live in the
- * SalutTubesChannel object */
- salut_tubes_channel_foreach (SALUT_TUBES_CHANNEL (chan), data->foreach,
- data->user_data);
-}
-
static void
salut_tubes_manager_foreach_channel (TpChannelManager *manager,
TpExportableChannelFunc foreach,
@@ -714,12 +691,22 @@ salut_tubes_manager_foreach_channel (TpChannelManager *manager,
SalutTubesManager *fac = SALUT_TUBES_MANAGER (manager);
SalutTubesManagerPrivate *priv =
SALUT_TUBES_MANAGER_GET_PRIVATE (fac);
- struct _ForeachData data;
+ GHashTableIter iter;
+ gpointer value;
- data.user_data = user_data;
- data.foreach = foreach;
+ g_hash_table_iter_init (&iter, priv->tubes_channels);
+ while (g_hash_table_iter_next (&iter, NULL, &value))
+ {
+ TpExportableChannel *chan = TP_EXPORTABLE_CHANNEL (value);
+
+ /* Add channels of type Channel.Type.Tubes */
+ foreach (chan, user_data);
- g_hash_table_foreach (priv->tubes_channels, _foreach_slave, &data);
+ /* Add channels of type Channel.Type.{Stream|DBus}Tube which live in the
+ * SalutTubesChannel object */
+ salut_tubes_channel_foreach (SALUT_TUBES_CHANNEL (chan), foreach,
+ user_data);
+ }
}
static const gchar * const tubes_channel_fixed_properties[] = {
--
1.5.6.5
More information about the telepathy-commits
mailing list