[glade] GladeWidgetAdaptor: fix glade_widget_adaptor_get_parent_adaptor()
- From: Juan Pablo Ugarte <jpu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade] GladeWidgetAdaptor: fix glade_widget_adaptor_get_parent_adaptor()
- Date: Mon, 26 Feb 2018 20:46:02 +0000 (UTC)
commit b9763bfada7c9ecc2532563a97c387f8c20962b5
Author: Juan Pablo Ugarte <juanpablougarte gmail com>
Date: Mon Feb 26 17:41:23 2018 -0300
GladeWidgetAdaptor: fix glade_widget_adaptor_get_parent_adaptor()
Use adaptor real_type instead of runtime type which could be a derived type
glade_widget_adaptor_from_catalog() Add check for get-type-function return value
gladeui/glade-widget-adaptor.c | 16 +++++++++++++++-
1 files changed, 15 insertions(+), 1 deletions(-)
---
diff --git a/gladeui/glade-widget-adaptor.c b/gladeui/glade-widget-adaptor.c
index f785498..afa5749 100644
--- a/gladeui/glade-widget-adaptor.c
+++ b/gladeui/glade-widget-adaptor.c
@@ -297,7 +297,7 @@ glade_widget_adaptor_get_parent_adaptor (GladeWidgetAdaptor *adaptor)
{
g_return_val_if_fail (GLADE_IS_WIDGET_ADAPTOR (adaptor), NULL);
- return glade_widget_adaptor_get_parent_adaptor_by_type (adaptor->priv->type);
+ return glade_widget_adaptor_get_parent_adaptor_by_type (adaptor->priv->real_type);
}
gboolean
@@ -2709,7 +2709,21 @@ glade_widget_adaptor_from_catalog (GladeCatalog *catalog,
glade_xml_get_property_string (class_node,
GLADE_TAG_GET_TYPE_FUNCTION)) != NULL)
{
+ GType real_type;
+
object_type = glade_util_get_type_from_name (func_name, TRUE);
+ real_type = g_type_from_name (name);
+
+ if (object_type != G_TYPE_INVALID && !g_type_is_a (object_type, real_type))
+ {
+ g_warning ("Trying to define class '%s' with %s() function. "
+ "But it returns a non derived class %s",
+ name, func_name, g_type_name (object_type));
+ g_free (name);
+ g_free (func_name);
+ return NULL;
+ }
+
g_free (func_name);
}
else
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]