[telepathy-mission-control/master] McdAccount: in all accessors for presences, allow NULL output arguments

Simon McVittie simon.mcvittie at collabora.co.uk
Mon Apr 13 04:08:48 PDT 2009


This costs ~1 CPU instruction per parameter per call, makes callers
simpler, and is the usual GLib/GObject convention.h
---
 src/mcd-account.c |   33 ++++++++++++++++++++++++---------
 1 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/src/mcd-account.c b/src/mcd-account.c
index 469b5f9..e57a95b 100644
--- a/src/mcd-account.c
+++ b/src/mcd-account.c
@@ -1899,9 +1899,14 @@ mcd_account_get_requested_presence (McdAccount *account,
 {
     McdAccountPrivate *priv = account->priv;
 
-    *presence = priv->req_presence_type;
-    *status = priv->req_presence_status;
-    *message = priv->req_presence_message;
+    if (presence != NULL)
+        *presence = priv->req_presence_type;
+
+    if (status != NULL)
+        *status = priv->req_presence_status;
+
+    if (message != NULL)
+        *message = priv->req_presence_message;
 }
 
 /* TODO: remove when the relative members will become public */
@@ -1913,9 +1918,14 @@ mcd_account_get_current_presence (McdAccount *account,
 {
     McdAccountPrivate *priv = account->priv;
 
-    *presence = priv->curr_presence_type;
-    *status = priv->curr_presence_status;
-    *message = priv->curr_presence_message;
+    if (presence != NULL)
+        *presence = priv->curr_presence_type;
+
+    if (status != NULL)
+        *status = priv->curr_presence_status;
+
+    if (message != NULL)
+        *message = priv->curr_presence_message;
 }
 
 gboolean
@@ -1934,9 +1944,14 @@ mcd_account_get_automatic_presence (McdAccount *account,
 {
     McdAccountPrivate *priv = account->priv;
 
-    *presence = priv->auto_presence_type;
-    *status = priv->auto_presence_status;
-    *message = priv->auto_presence_message;
+    if (presence != NULL)
+        *presence = priv->auto_presence_type;
+
+    if (status != NULL)
+        *status = priv->auto_presence_status;
+
+    if (message != NULL)
+        *message = priv->auto_presence_message;
 }
 
 /* TODO: remove when the relative members will become public */
-- 
1.5.6.5




More information about the telepathy-commits mailing list