[Pkg-telepathy-commits] [telepathy-glib-1] 169/212: TpBaseConnection: add a static assertion that guint is guint32

Simon McVittie smcv at debian.org
Wed May 14 12:09:11 UTC 2014


This is an automated email from the git hooks/post-receive script.

smcv pushed a commit to branch debian
in repository telepathy-glib-1.

commit 30c0885320258d375468d1b7391f375e6bf6ce99
Author: Simon McVittie <simon.mcvittie at collabora.co.uk>
Date:   Fri Apr 11 15:18:27 2014 +0100

    TpBaseConnection: add a static assertion that guint is guint32
    
    In principle, this could be false, but in the real world,
    sizeof(int) is a power of 2, computers with 16-bit int are
    decades obsolete, and if int was 64-bit or larger, there'd be a
    problem with int16_t and int32_t ('short' can only be one of those).
    
    With this static assertion in place, we could even change TpHandle
    to be guint32, although there isn't necessarily much point.
    
    Reviewed-by: Xavier Claessens <xavier.claessens at collabora.com>
    Bug: https://bugs.freedesktop.org/show_bug.cgi?id=77189
---
 telepathy-glib/base-connection.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/telepathy-glib/base-connection.c b/telepathy-glib/base-connection.c
index f7a13e9..9a5b244 100644
--- a/telepathy-glib/base-connection.c
+++ b/telepathy-glib/base-connection.c
@@ -2961,6 +2961,14 @@ contacts_get_contact_attributes_impl (_TpGDBusConnection *skeleton,
   GHashTable *attributes;
   GValue value = G_VALUE_INIT;
   GVariant *result;
+  /* In principle C does not guarantee that TpHandle (which is an
+   * unsigned int) is exactly 32 bits. In practice, int is 32-bit on
+   * every relevant platform.
+   *
+   * If this assertion fails, the g_variant_get_fixed_array() call
+   * will fail at runtime too, and we'll have to change the code to copy
+   * handles into @array one at a time. */
+  G_STATIC_ASSERT (sizeof (TpHandle) == sizeof (guint32));
 
   _TP_GDBUS_ERROR_IF_NOT_CONNECTED (conn, context);
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-telepathy/telepathy-glib-1.git



More information about the Pkg-telepathy-commits mailing list