[glade/glade-3-20] GladeWidgetAdaptor: fix glade_widget_adaptor_get_parent_adaptor()
- From: Juan Pablo Ugarte <jpu src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade/glade-3-20] GladeWidgetAdaptor: fix glade_widget_adaptor_get_parent_adaptor()
- Date: Mon, 26 Feb 2018 21:01:09 +0000 (UTC)
commit 2405795a80c95a4e1002b41e94265e4d9d23ed7a
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 d9ada45..a174480 100644
--- a/gladeui/glade-widget-adaptor.c
+++ b/gladeui/glade-widget-adaptor.c
@@ -309,7 +309,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
@@ -2711,7 +2711,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]