From 2ab76c5b3610faa20dfae2550688ab0d6620b29b Mon Sep 17 00:00:00 2001 From: Tor Lillqvist Date: Sun, 21 Mar 2010 11:22:06 +0200 Subject: [PATCH] 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 183fa09d7..e3597e484 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 1cf330cf2..b365a491b 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 be33fec9c..154b0bab7 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 f85db7e60..52f7b7d76 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 };