From: Benjamin Otte Date: Mon, 2 May 2011 17:22:25 +0000 (+0200) Subject: gobject: Warn if someone uses the wrong property in g_object_get/set X-Git-Tag: 2.29.4~22 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=02877e29020c2a0f34283435ecf544b1f6793077;p=platform%2Fupstream%2Fglib.git gobject: Warn if someone uses the wrong property in g_object_get/set "Interface::property" was not detected before and led to a crash. --- diff --git a/gobject/gobject.c b/gobject/gobject.c index 7fa845f..ead9071 100644 --- a/gobject/gobject.c +++ b/gobject/gobject.c @@ -1124,6 +1124,13 @@ object_get_property (GObject *object, guint param_id = PARAM_SPEC_PARAM_ID (pspec); GParamSpec *redirect; + if (class == NULL) + { + g_warning ("'%s::%s' is not a valid property name; '%s' is not a GObject subtype", + g_type_name (pspec->owner_type), pspec->name, g_type_name (pspec->owner_type)); + return; + } + redirect = g_param_spec_get_redirect_target (pspec); if (redirect) pspec = redirect; @@ -1143,6 +1150,13 @@ object_set_property (GObject *object, GParamSpec *redirect; static gchar* enable_diagnostic = NULL; + if (class == NULL) + { + g_warning ("'%s::%s' is not a valid property name; '%s' is not a GObject subtype", + g_type_name (pspec->owner_type), pspec->name, g_type_name (pspec->owner_type)); + return; + } + redirect = g_param_spec_get_redirect_target (pspec); if (redirect) pspec = redirect;