From 65c423b458d9fd1338cab0de7951092c09ab1686 Mon Sep 17 00:00:00 2001 From: Tim Janik Date: Mon, 30 Oct 2000 03:36:22 +0000 Subject: [PATCH] renamed owen's g_type_signals(), added required mutex locks. Mon Oct 30 03:00:07 2000 Tim Janik * gsignal.[hc] (g_signal_list_ids): renamed owen's g_type_signals(), added required mutex locks. --- gobject/ChangeLog | 5 +++++ gobject/gsignal.c | 43 +++++++++++++++++++++++-------------------- gobject/gsignal.h | 5 ++--- 3 files changed, 30 insertions(+), 23 deletions(-) diff --git a/gobject/ChangeLog b/gobject/ChangeLog index 49e93e4..2b4b184 100644 --- a/gobject/ChangeLog +++ b/gobject/ChangeLog @@ -1,3 +1,8 @@ +Mon Oct 30 03:00:07 2000 Tim Janik + + * gsignal.[hc] (g_signal_list_ids): renamed owen's g_type_signals(), + added required mutex locks. + Sun Oct 29 02:31:03 2000 Owen Taylor * gsignal.c (g_type_signals): Fix problem where signals diff --git a/gobject/gsignal.c b/gobject/gsignal.c index 48ad7c1..6744eac 100644 --- a/gobject/gsignal.c +++ b/gobject/gsignal.c @@ -693,45 +693,48 @@ g_signal_query (guint signal_id, } /** - * gtk_signals_list: + * g_signal_list_ids: * @itype: an - * @n_ids: location to store number of ids in @itype + * @n_ids: location to store number of signal ids for @itype * * List all signals for a given type. * - * Return value: Array + * Return value: Newly allocated array of signal ids. **/ -guint * -g_type_signals (GType itype, - guint *n_ids) +guint* +g_signal_list_ids (GType itype, + guint *n_ids) { - guint i; SignalKey *keys; - guint n_nodes; GArray *result; + guint n_nodes; + guint i; - g_return_val_if_fail (n_ids != NULL, NULL); g_return_val_if_fail (G_TYPE_IS_INSTANTIATABLE (itype) || G_TYPE_IS_INTERFACE (itype), NULL); + g_return_val_if_fail (n_ids != NULL, NULL); + + G_LOCK (g_signal_mutex); keys = g_signal_key_bsa.nodes; n_nodes = g_signal_key_bsa.n_nodes; result = g_array_new (FALSE, FALSE, sizeof (guint)); for (i = 0; i < n_nodes; i++) - { - if (keys[i].itype == itype) - { - gchar *name = g_quark_to_string (keys[i].quark); - /* Signal names with "_" in them are aliases to the same - * name with "-" instead of "_". - */ - if (!strchr (name, '_')) - g_array_append_val (result, keys[i].signal_id); - } - } + if (keys[i].itype == itype) + { + gchar *name = g_quark_to_string (keys[i].quark); + + /* Signal names with "_" in them are aliases to the same + * name with "-" instead of "_". + */ + if (!strchr (name, '_')) + g_array_append_val (result, keys[i].signal_id); + } *n_ids = result->len; + G_UNLOCK (g_signal_mutex); + return (guint *) g_array_free (result, FALSE); } diff --git a/gobject/gsignal.h b/gobject/gsignal.h index 600b93d..f6db745 100644 --- a/gobject/gsignal.h +++ b/gobject/gsignal.h @@ -104,9 +104,8 @@ guint g_signal_lookup (const gchar *name, gchar* g_signal_name (guint signal_id); void g_signal_query (guint signal_id, GSignalQuery *query); - -guint * g_type_signals (GType itype, - guint *n_ids); +guint* g_signal_list_ids (GType itype, + guint *n_ids); /* --- signal handlers --- */ guint g_signal_connect_closure (gpointer instance, -- 2.7.4