diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2010-10-05 13:53:24 +0100 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2010-10-05 14:04:15 +0100 |
commit | be35d7da176b8c5457a2c3c3e7a0b7113894ffec (patch) | |
tree | 8c44a60aa0244a16425a14f1e3eba27b23f2e51a | |
parent | 422a2b4ecdf3062d1c565c820ddac20c3d267637 (diff) | |
download | telepathy-salut-be35d7da176b8c5457a2c3c3e7a0b7113894ffec.tar.gz |
SalutSelf: use a safer idiom for private struct access
-rw-r--r-- | src/salut-self.c | 53 | ||||
-rw-r--r-- | src/salut-self.h | 3 |
2 files changed, 33 insertions, 23 deletions
diff --git a/src/salut-self.c b/src/salut-self.c index b6e6b508..a0f23cd8 100644 --- a/src/salut-self.c +++ b/src/salut-self.c @@ -78,7 +78,6 @@ enum static guint signals[LAST_SIGNAL] = {0}; /* private structure */ -typedef struct _SalutSelfPrivate SalutSelfPrivate; struct _SalutSelfPrivate { @@ -105,12 +104,13 @@ contact_manager_contact_change_cb (SalutContactManager *mgr, SalutContact *contact, int changes, gpointer user_data); #endif -#define SALUT_SELF_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), SALUT_TYPE_SELF, SalutSelfPrivate)) - static void salut_self_init (SalutSelf *obj) { - SalutSelfPrivate *priv = SALUT_SELF_GET_PRIVATE (obj); + SalutSelfPrivate *priv = G_TYPE_INSTANCE_GET_PRIVATE (obj, SALUT_TYPE_SELF, + SalutSelfPrivate); + + obj->priv = priv; /* allocate any data required by the object here */ obj->status = SALUT_PRESENCE_AVAILABLE; @@ -257,7 +257,7 @@ salut_self_constructor (GType type, constructor (type, n_props, props); self = SALUT_SELF (obj); - priv = SALUT_SELF_GET_PRIVATE (self); + priv = self->priv; g_assert (self->connection != NULL); g_object_get (self->connection, @@ -435,7 +435,7 @@ void salut_self_dispose (GObject *object) { SalutSelf *self = SALUT_SELF (object); - SalutSelfPrivate *priv = SALUT_SELF_GET_PRIVATE (self); + SalutSelfPrivate *priv = self->priv; if (priv->dispose_has_run) return; @@ -633,9 +633,9 @@ gboolean salut_self_add_olpc_activity (SalutSelf *self, const gchar *activity_id, TpHandle room, GError **error) { - SalutSelfPrivate *priv = SALUT_SELF_GET_PRIVATE (self); SalutOlpcActivity *activity; + g_return_val_if_fail (SALUT_IS_SELF (self), FALSE); g_return_val_if_fail (activity_id != NULL, FALSE); g_return_val_if_fail (room != 0, FALSE); @@ -647,7 +647,7 @@ salut_self_add_olpc_activity (SalutSelf *self, const gchar *activity_id, } activity = salut_olpc_activity_manager_ensure_activity_by_room ( - priv->olpc_activity_manager, room); + self->priv->olpc_activity_manager, room); if (!salut_olpc_activity_joined (activity, error)) { @@ -658,7 +658,7 @@ salut_self_add_olpc_activity (SalutSelf *self, const gchar *activity_id, salut_olpc_activity_update (activity, room, activity_id, NULL, NULL, NULL, NULL, activity->is_private); - g_hash_table_insert (priv->olpc_activities, GUINT_TO_POINTER (room), + g_hash_table_insert (self->priv->olpc_activities, GUINT_TO_POINTER (room), activity); return TRUE; @@ -727,12 +727,13 @@ salut_self_set_olpc_activities (SalutSelf *self, GError **error) { GError *e = NULL; - SalutSelfPrivate *priv = SALUT_SELF_GET_PRIVATE (self); - struct _set_olpc_activities_ctx data = { self, priv->room_repo, - priv->olpc_activities, room_to_act_id, &e }; + struct _set_olpc_activities_ctx data = { self, self->priv->room_repo, + self->priv->olpc_activities, room_to_act_id, &e }; + + g_return_val_if_fail (SALUT_IS_SELF (self), FALSE); /* delete any which aren't in room_to_act_id. Can't fail */ - g_hash_table_foreach_remove (priv->olpc_activities, + g_hash_table_foreach_remove (self->priv->olpc_activities, _set_olpc_activities_delete, &data); /* add any which aren't in olpc_activities */ @@ -749,10 +750,10 @@ salut_self_set_olpc_current_activity (SalutSelf *self, TpHandle room, GError **error) { - SalutSelfPrivate *priv = SALUT_SELF_GET_PRIVATE (self); GError *err = NULL; const gchar *room_name; + g_return_val_if_fail (SALUT_IS_SELF (self), FALSE); g_return_val_if_fail (id != NULL, FALSE); /* if one of id and room is empty, require the other to be */ @@ -770,7 +771,7 @@ salut_self_set_olpc_current_activity (SalutSelf *self, } else { - room_name = tp_handle_inspect (priv->room_repo, room); + room_name = tp_handle_inspect (self->priv->room_repo, room); if (id[0] == '\0') { @@ -785,10 +786,10 @@ salut_self_set_olpc_current_activity (SalutSelf *self, self->olpc_cur_act = g_strdup (id); if (self->olpc_cur_act_room != 0) - tp_handle_unref (priv->room_repo, self->olpc_cur_act_room); + tp_handle_unref (self->priv->room_repo, self->olpc_cur_act_room); self->olpc_cur_act_room = room; if (room != 0) - tp_handle_ref (priv->room_repo, room); + tp_handle_ref (self->priv->room_repo, room); if (!SALUT_SELF_GET_CLASS (self)->update_current_activity (self, room_name, &err)) @@ -812,9 +813,13 @@ salut_self_set_olpc_activity_properties (SalutSelf *self, gboolean is_private, GError **error) { - SalutSelfPrivate *priv = SALUT_SELF_GET_PRIVATE (self); + SalutSelfPrivate *priv; SalutOlpcActivity *activity; + g_return_val_if_fail (SALUT_IS_SELF (self), FALSE); + + priv = self->priv; + activity = g_hash_table_lookup (priv->olpc_activities, GUINT_TO_POINTER (handle)); @@ -901,12 +906,13 @@ salut_self_foreach_olpc_activity (SalutSelf *self, SalutSelfOLPCActivityFunc foreach, gpointer user_data) { - SalutSelfPrivate *priv = SALUT_SELF_GET_PRIVATE (self); foreach_olpc_activity_ctx ctx = { foreach, user_data }; + g_return_if_fail (SALUT_IS_SELF (self)); + DEBUG ("called"); - g_hash_table_foreach (priv->olpc_activities, foreach_olpc_activity, + g_hash_table_foreach (self->priv->olpc_activities, foreach_olpc_activity, &ctx); DEBUG ("end"); @@ -918,10 +924,11 @@ salut_self_olpc_augment_invitation (SalutSelf *self, TpHandle contact, GibberXmppNode *invite_node) { - SalutSelfPrivate *priv = SALUT_SELF_GET_PRIVATE (self); SalutOlpcActivity *activity; - activity = g_hash_table_lookup (priv->olpc_activities, + g_return_if_fail (SALUT_IS_SELF (self)); + + activity = g_hash_table_lookup (self->priv->olpc_activities, GUINT_TO_POINTER (room)); if (activity == NULL) return; @@ -961,7 +968,7 @@ contact_manager_contact_change_cb (SalutContactManager *mgr, gpointer user_data) { SalutSelf *self = SALUT_SELF (user_data); - SalutSelfPrivate *priv = SALUT_SELF_GET_PRIVATE (self); + SalutSelfPrivate *priv = self->priv; TpHandleRepoIface *handle_repo = tp_base_connection_get_handles ( TP_BASE_CONNECTION (self->connection), TP_HANDLE_TYPE_CONTACT); TpHandle handle; diff --git a/src/salut-self.h b/src/salut-self.h index f6221bf1..d7cc5b4a 100644 --- a/src/salut-self.h +++ b/src/salut-self.h @@ -38,6 +38,7 @@ G_BEGIN_DECLS typedef struct _SalutSelf SalutSelf; typedef struct _SalutSelfClass SalutSelfClass; +typedef struct _SalutSelfPrivate SalutSelfPrivate; struct _SalutSelfClass { GObjectClass parent_class; @@ -88,6 +89,8 @@ struct _SalutSelf { gchar *email; gchar *published_name; gchar *alias; + + SalutSelfPrivate *priv; }; GType salut_self_get_type (void); |