Make the GVariant code compile with a non-gcc compiler

In particular, tested with Microsoft Visual C 2008.
This commit is contained in:
Tor Lillqvist 2010-03-21 11:22:06 +02:00
parent dc51eff2a9
commit 2ab76c5b36
4 changed files with 33 additions and 27 deletions

View File

@ -357,7 +357,7 @@ static void
g_variant_serialise (GVariant *value,
gpointer data)
{
GVariantSerialised serialised = { };
GVariantSerialised serialised = { 0, };
gpointer *children;
gsize n_children;

View File

@ -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;

View File

@ -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))
{

View File

@ -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
};