[glib] GObject: do checks on interface property install
- From: Ryan Lortie <ryanl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib] GObject: do checks on interface property install
- Date: Wed, 21 Dec 2011 01:02:04 +0000 (UTC)
commit 557da1650707bbb67b80be0c986598eab3893071
Author: Ryan Lortie <desrt desrt ca>
Date: Tue Dec 20 19:45:57 2011 -0500
GObject: do checks on interface property install
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
gobject/gobject.c | 8 +++++++-
gobject/tests/param.c | 2 +-
2 files changed, 8 insertions(+), 2 deletions(-)
---
diff --git a/gobject/gobject.c b/gobject/gobject.c
index 446ea4a..874096e 100644
--- a/gobject/gobject.c
+++ b/gobject/gobject.c
@@ -706,7 +706,13 @@ g_object_interface_install_property (gpointer g_iface,
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);
}
diff --git a/gobject/tests/param.c b/gobject/tests/param.c
index 2250d61..7e7721b 100644
--- a/gobject/tests/param.c
+++ b/gobject/tests/param.c
@@ -487,7 +487,7 @@ test_interface_default_init (TestInterfaceInterface *iface)
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;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]