Check for duplicate property IDs as part of the property test
This commit is contained in:
parent
e04ca23c2f
commit
f4d19b68bf
1 changed files with 11 additions and 1 deletions
|
@ -58,6 +58,7 @@ properties_object_get_set (GObject* object)
|
|||
GType type = G_PARAM_SPEC_TYPE (pspec);
|
||||
const gchar* property = g_param_spec_get_name (pspec);
|
||||
void* value = NULL;
|
||||
guint j;
|
||||
|
||||
/* Skip properties of parent classes */
|
||||
if (pspec->owner_type != G_OBJECT_TYPE (object))
|
||||
|
@ -67,6 +68,16 @@ properties_object_get_set (GObject* object)
|
|||
if (properties_should_skip (G_OBJECT_TYPE_NAME (object), property))
|
||||
continue;
|
||||
|
||||
/* Verify that the ID is unique */
|
||||
if (pspecs[i]->owner_type == G_OBJECT_TYPE (object))
|
||||
for (j = 0; j < n_properties; j++)
|
||||
if (i != j && pspecs[j]->owner_type == G_OBJECT_TYPE (object))
|
||||
if (pspec->param_id == pspecs[j]->param_id)
|
||||
g_error ("Duplicate ID %d of %s and %s",
|
||||
pspec->param_id,
|
||||
g_param_spec_get_name (pspec),
|
||||
g_param_spec_get_name (pspecs[j]));
|
||||
|
||||
g_object_get (object, property, &value, NULL);
|
||||
if (type == G_TYPE_PARAM_BOOLEAN)
|
||||
{
|
||||
|
@ -111,7 +122,6 @@ properties_object_get_set (GObject* object)
|
|||
{
|
||||
GEnumClass* enum_class = G_ENUM_CLASS (
|
||||
g_type_class_ref (pspec->value_type));
|
||||
gint j;
|
||||
|
||||
if (pspec_is_writable (pspec))
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue