mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-03-27 18:10:03 +01:00
Make the GVariant code compile with a non-gcc compiler
In particular, tested with Microsoft Visual C 2008.
This commit is contained in:
parent
dc51eff2a9
commit
2ab76c5b36
@ -357,7 +357,7 @@ static void
|
||||
g_variant_serialise (GVariant *value,
|
||||
gpointer data)
|
||||
{
|
||||
GVariantSerialised serialised = { };
|
||||
GVariantSerialised serialised = { 0, };
|
||||
gpointer *children;
|
||||
gsize n_children;
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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))
|
||||
{
|
||||
|
@ -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
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user