mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-26 15:36:14 +01:00
GVariantTypeInfo tweaks
1) always emit ending type FIXED for fixed sized items The serialiser needs to know if it dealing with a fixed sized item in case the serialised data is corrupt and the item has the wrong size. 2) add a macro that will be used by test cases to check that all memory has been freed.
This commit is contained in:
parent
cb7dfdc194
commit
6d6d7a8bb2
@ -362,10 +362,10 @@ tuple_allocate_members (const GVariantType *type,
|
|||||||
member->type_info = g_variant_type_info_get (item_type);
|
member->type_info = g_variant_type_info_get (item_type);
|
||||||
item_type = g_variant_type_next (item_type);
|
item_type = g_variant_type_next (item_type);
|
||||||
|
|
||||||
if (item_type == NULL)
|
if (member->type_info->fixed_size)
|
||||||
member->ending_type = G_VARIANT_MEMBER_ENDING_LAST;
|
|
||||||
else if (member->type_info->fixed_size)
|
|
||||||
member->ending_type = G_VARIANT_MEMBER_ENDING_FIXED;
|
member->ending_type = G_VARIANT_MEMBER_ENDING_FIXED;
|
||||||
|
else if (item_type == NULL)
|
||||||
|
member->ending_type = G_VARIANT_MEMBER_ENDING_LAST;
|
||||||
else
|
else
|
||||||
member->ending_type = G_VARIANT_MEMBER_ENDING_OFFSET;
|
member->ending_type = G_VARIANT_MEMBER_ENDING_OFFSET;
|
||||||
}
|
}
|
||||||
@ -848,3 +848,7 @@ g_variant_type_info_unref (GVariantTypeInfo *info)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* used from the test cases */
|
||||||
|
#define assert_no_type_infos() \
|
||||||
|
g_assert_cmpint (g_hash_table_size (g_variant_type_info_table), ==, 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user