[glib] Make the GVariant code compile with a non-gcc compiler



commit 2ab76c5b3610faa20dfae2550688ab0d6620b29b
Author: Tor Lillqvist <tml iki fi>
Date:   Sun Mar 21 11:22:06 2010 +0200

    Make the GVariant code compile with a non-gcc compiler
    
    In particular, tested with Microsoft Visual C 2008.

 glib/gvariant-core.c       |    2 +-
 glib/gvariant-serialiser.c |   28 ++++++++++++++--------------
 glib/gvariant.c            |    8 ++++++--
 glib/gvarianttypeinfo.c    |   22 ++++++++++++----------
 4 files changed, 33 insertions(+), 27 deletions(-)
---
diff --git a/glib/gvariant-core.c b/glib/gvariant-core.c
index 183fa09..e3597e4 100644
--- a/glib/gvariant-core.c
+++ b/glib/gvariant-core.c
@@ -357,7 +357,7 @@ static void
 g_variant_serialise (GVariant *value,
                      gpointer  data)
 {
-  GVariantSerialised serialised = {  };
+  GVariantSerialised serialised = { 0, };
   gpointer *children;
   gsize n_children;
 
diff --git a/glib/gvariant-serialiser.c b/glib/gvariant-serialiser.c
index 1cf330c..b365a49 100644
--- a/glib/gvariant-serialiser.c
+++ b/glib/gvariant-serialiser.c
@@ -333,7 +333,7 @@ gvs_variable_sized_maybe_needed_size (GVariantTypeInfo         *type_info,
 {
   if (n_children)
     {
-      GVariantSerialised child = {  };
+      GVariantSerialised child = { 0, };
 
       gvs_filler (&child, children[0]);
 
@@ -414,7 +414,7 @@ static GVariantSerialised
 gvs_fixed_sized_array_get_child (GVariantSerialised value,
                                  gsize              index_)
 {
-  GVariantSerialised child = {  };
+  GVariantSerialised child = { 0, };
 
   child.type_info = g_variant_type_info_element (value.type_info);
   g_variant_type_info_query (child.type_info, NULL, &child.size);
@@ -443,7 +443,7 @@ gvs_fixed_sized_array_serialise (GVariantSerialised        value,
                                  const gpointer           *children,
                                  gsize                     n_children)
 {
-  GVariantSerialised child = {  };
+  GVariantSerialised child = { 0, };
   gsize i;
 
   child.type_info = g_variant_type_info_element (value.type_info);
@@ -460,7 +460,7 @@ gvs_fixed_sized_array_serialise (GVariantSerialised        value,
 static gboolean
 gvs_fixed_sized_array_is_normal (GVariantSerialised value)
 {
-  GVariantSerialised child = {  };
+  GVariantSerialised child = { 0, };
 
   child.type_info = g_variant_type_info_element (value.type_info);
   g_variant_type_info_query (child.type_info, NULL, &child.size);
@@ -620,7 +620,7 @@ static GVariantSerialised
 gvs_variable_sized_array_get_child (GVariantSerialised value,
                                     gsize              index_)
 {
-  GVariantSerialised child = {  };
+  GVariantSerialised child = { 0, };
   gsize offset_size;
   gsize last_end;
   gsize start;
@@ -676,7 +676,7 @@ gvs_variable_sized_array_needed_size (GVariantTypeInfo         *type_info,
 
   for (i = 0; i < n_children; i++)
     {
-      GVariantSerialised child = {  };
+      GVariantSerialised child = { 0, };
 
       offset += (-offset) & alignment;
       gvs_filler (&child, children[i]);
@@ -706,7 +706,7 @@ gvs_variable_sized_array_serialise (GVariantSerialised        value,
 
   for (i = 0; i < n_children; i++)
     {
-      GVariantSerialised child = {  };
+      GVariantSerialised child = { 0, };
 
       while (offset & alignment)
         value.data[offset++] = '\0';
@@ -723,7 +723,7 @@ gvs_variable_sized_array_serialise (GVariantSerialised        value,
 static gboolean
 gvs_variable_sized_array_is_normal (GVariantSerialised value)
 {
-  GVariantSerialised child = {  };
+  GVariantSerialised child = { 0, };
   gsize offsets_array_size;
   guchar *offsets_array;
   guint offset_size;
@@ -825,7 +825,7 @@ gvs_tuple_get_child (GVariantSerialised value,
                      gsize              index_)
 {
   const GVariantMemberInfo *member_info;
-  GVariantSerialised child = {  };
+  GVariantSerialised child = { 0, };
   gsize offset_size;
   gsize start, end;
 
@@ -936,7 +936,7 @@ gvs_tuple_needed_size (GVariantTypeInfo         *type_info,
         offset += fixed_size;
       else
         {
-          GVariantSerialised child = {  };
+          GVariantSerialised child = { 0, };
 
           gvs_filler (&child, children[i]);
           offset += child.size;
@@ -962,7 +962,7 @@ gvs_tuple_serialise (GVariantSerialised        value,
   for (i = 0; i < n_children; i++)
     {
       const GVariantMemberInfo *member_info;
-      GVariantSerialised child = {  };
+      GVariantSerialised child = { 0, };
       guint alignment;
 
       member_info = g_variant_type_info_member_info (value.type_info, i);
@@ -1112,7 +1112,7 @@ static inline GVariantSerialised
 gvs_variant_get_child (GVariantSerialised value,
                        gsize              index_)
 {
-  GVariantSerialised child = {  };
+  GVariantSerialised child = { 0, };
 
   /* NOTE: not O(1) and impossible for it to be... */
   if (value.size)
@@ -1169,7 +1169,7 @@ gvs_variant_needed_size (GVariantTypeInfo         *type_info,
                          const gpointer           *children,
                          gsize                     n_children)
 {
-  GVariantSerialised child = {  };
+  GVariantSerialised child = { 0, };
   const gchar *type_string;
 
   gvs_filler (&child, children[0]);
@@ -1184,7 +1184,7 @@ gvs_variant_serialise (GVariantSerialised        value,
                        const gpointer           *children,
                        gsize                     n_children)
 {
-  GVariantSerialised child = {  };
+  GVariantSerialised child = { 0, };
   const gchar *type_string;
 
   child.data = value.data;
diff --git a/glib/gvariant.c b/glib/gvariant.c
index be33fec..154b0ba 100644
--- a/glib/gvariant.c
+++ b/glib/gvariant.c
@@ -1084,13 +1084,17 @@ const gchar *
 g_variant_get_string (GVariant *value,
                       gsize    *length)
 {
+  gconstpointer data;
+  gsize size;
+
   g_return_val_if_fail (value != NULL, NULL);
   g_return_val_if_fail (
     g_variant_is_of_type (value, G_VARIANT_TYPE_STRING) ||
     g_variant_is_of_type (value, G_VARIANT_TYPE_OBJECT_PATH) ||
     g_variant_is_of_type (value, G_VARIANT_TYPE_SIGNATURE), NULL);
-  gconstpointer data = g_variant_get_data (value);
-  gsize size = g_variant_get_size (value);
+
+  data = g_variant_get_data (value);
+  size = g_variant_get_size (value);
 
   if (!g_variant_is_trusted (value))
     {
diff --git a/glib/gvarianttypeinfo.c b/glib/gvarianttypeinfo.c
index f85db7e..52f7b7d 100644
--- a/glib/gvarianttypeinfo.c
+++ b/glib/gvarianttypeinfo.c
@@ -111,33 +111,35 @@ typedef struct
 /* Hard-code the base types in a constant array */
 static const GVariantTypeInfo g_variant_type_info_basic_table[24] = {
 #define fixed_aligned(x)  x, x - 1
+#define not_a_type             0,
 #define unaligned         0, 0
 #define aligned(x)        0, x - 1
   /* 'b' */ { fixed_aligned(1) },   /* boolean */
-  /* 'c' */ { },
+  /* 'c' */ { not_a_type },
   /* 'd' */ { fixed_aligned(8) },   /* double */
-  /* 'e' */ { },
-  /* 'f' */ { },
+  /* 'e' */ { not_a_type },
+  /* 'f' */ { not_a_type },
   /* 'g' */ { unaligned        },   /* signature string */
   /* 'h' */ { fixed_aligned(4) },   /* file handle (int32) */
   /* 'i' */ { fixed_aligned(4) },   /* int32 */
-  /* 'j' */ { },
-  /* 'k' */ { },
-  /* 'l' */ { },
-  /* 'm' */ { },
+  /* 'j' */ { not_a_type },
+  /* 'k' */ { not_a_type },
+  /* 'l' */ { not_a_type },
+  /* 'm' */ { not_a_type },
   /* 'n' */ { fixed_aligned(2) },   /* int16 */
   /* 'o' */ { unaligned        },   /* object path string */
-  /* 'p' */ { },
+  /* 'p' */ { not_a_type },
   /* 'q' */ { fixed_aligned(2) },   /* uint16 */
-  /* 'r' */ { },
+  /* 'r' */ { not_a_type },
   /* 's' */ { unaligned        },   /* string */
   /* 't' */ { fixed_aligned(8) },   /* uint64 */
   /* 'u' */ { fixed_aligned(4) },   /* uint32 */
   /* 'v' */ { aligned(8)       },   /* variant */
-  /* 'w' */ { },
+  /* 'w' */ { not_a_type },
   /* 'x' */ { fixed_aligned(8) },   /* int64 */
   /* 'y' */ { fixed_aligned(1) },   /* byte */
 #undef fixed_aligned
+#undef not_a_type
 #undef unaligned
 #undef aligned
 };



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]