summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2010-10-05 13:53:24 +0100
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2010-10-05 14:04:15 +0100
commitbe35d7da176b8c5457a2c3c3e7a0b7113894ffec (patch)
tree8c44a60aa0244a16425a14f1e3eba27b23f2e51a
parent422a2b4ecdf3062d1c565c820ddac20c3d267637 (diff)
downloadtelepathy-salut-be35d7da176b8c5457a2c3c3e7a0b7113894ffec.tar.gz
SalutSelf: use a safer idiom for private struct access
-rw-r--r--src/salut-self.c53
-rw-r--r--src/salut-self.h3
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);