Add some checks to g_object_interface_install_property() similar to
those in g_object_class_install_property().
https://bugzilla.gnome.org/show_bug.cgi?id=666616
g_return_if_fail (G_IS_PARAM_SPEC (pspec));
g_return_if_fail (!G_IS_PARAM_SPEC_OVERRIDE (pspec)); /* paranoid */
g_return_if_fail (PARAM_SPEC_PARAM_ID (pspec) == 0); /* paranoid */
-
+
+ g_return_if_fail (pspec->flags & (G_PARAM_READABLE | G_PARAM_WRITABLE));
+ if (pspec->flags & G_PARAM_CONSTRUCT)
+ g_return_if_fail ((pspec->flags & G_PARAM_CONSTRUCT_ONLY) == 0);
+ if (pspec->flags & (G_PARAM_CONSTRUCT | G_PARAM_CONSTRUCT_ONLY))
+ g_return_if_fail (pspec->flags & G_PARAM_WRITABLE);
+
install_property_internal (iface_class->g_type, 0, pspec);
}
g_object_interface_install_property (iface, pspec);
exit (0);
}
- //g_test_trap_assert_failed (); XXX g_object_interface_install_property has no checks
+ g_test_trap_assert_failed ();
continue;
}