summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--gobject/pygtype.c18
2 files changed, 19 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 2e190a5..514f324 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2008-08-28 Paul Pogonyshev <pogonyshev@gmx.net>
+ Bug 549191 – Constructor of gtk.TreeView raises TypeError when
+ model is None
+
+ * gobject/pygtype.c (pyg_value_from_pyobject): Handle None in
+ G_TYPE_INTERFACE branch.
+
+2008-08-28 Paul Pogonyshev <pogonyshev@gmx.net>
+
Bug 549351 – an unitialized variable in PyGLib
* glib/pygmainloop.c (pyg_main_loop_init): Initialize
diff --git a/gobject/pygtype.c b/gobject/pygtype.c
index 715ed39..b12133d 100644
--- a/gobject/pygtype.c
+++ b/gobject/pygtype.c
@@ -657,14 +657,18 @@ pyg_value_from_pyobject(GValue *value, PyObject *obj)
case G_TYPE_INTERFACE:
/* we only handle interface types that have a GObject prereq */
if (g_type_is_a(G_VALUE_TYPE(value), G_TYPE_OBJECT)) {
- if (!PyObject_TypeCheck(obj, &PyGObject_Type)) {
- return -1;
- }
- if (!G_TYPE_CHECK_INSTANCE_TYPE(pygobject_get(obj),
- G_VALUE_TYPE(value))) {
- return -1;
+ if (obj == Py_None)
+ g_value_set_object(value, NULL);
+ else {
+ if (!PyObject_TypeCheck(obj, &PyGObject_Type)) {
+ return -1;
+ }
+ if (!G_TYPE_CHECK_INSTANCE_TYPE(pygobject_get(obj),
+ G_VALUE_TYPE(value))) {
+ return -1;
+ }
+ g_value_set_object(value, pygobject_get(obj));
}
- g_value_set_object(value, pygobject_get(obj));
} else {
return -1;
}