[telepathy-mission-control/master] McdAccount: serialize uint32 values larger than G_MAXINT correctly

Simon McVittie simon.mcvittie at collabora.co.uk
Wed Jun 10 03:39:56 PDT 2009


---
 src/mcd-account.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/mcd-account.c b/src/mcd-account.c
index e371495..85bc75c 100644
--- a/src/mcd-account.c
+++ b/src/mcd-account.c
@@ -274,6 +274,7 @@ set_parameter (McdAccount *account, const gchar *name, const GValue *value)
 {
     McdAccountPrivate *priv = account->priv;
     gchar key[MAX_KEY_LENGTH];
+    gchar buf[21];  /* enough for '-' + the 19 digits of 2**63 + '\0' */
 
     g_snprintf (key, sizeof (key), "param-%s", name);
 
@@ -290,14 +291,18 @@ set_parameter (McdAccount *account, const gchar *name, const GValue *value)
 	g_key_file_set_string (priv->keyfile, priv->unique_name, key,
 			       g_value_get_string (value));
 	break;
+
     case G_TYPE_UINT:
-	g_key_file_set_integer (priv->keyfile, priv->unique_name, key,
-				g_value_get_uint (value));
-	break;
+        g_snprintf (buf, sizeof (buf), "%u", g_value_get_uint (value));
+        g_key_file_set_string (priv->keyfile, priv->unique_name, key,
+                               buf);
+        break;
+
     case G_TYPE_INT:
 	g_key_file_set_integer (priv->keyfile, priv->unique_name, key,
 				g_value_get_int (value));
 	break;
+
     case G_TYPE_BOOLEAN:
 	g_key_file_set_boolean (priv->keyfile, priv->unique_name, key,
 				g_value_get_boolean (value));
-- 
1.5.6.5




More information about the telepathy-commits mailing list