summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--gobject/pygtype.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/gobject/pygtype.c b/gobject/pygtype.c
index 686e4a8..d03f7f6 100644
--- a/gobject/pygtype.c
+++ b/gobject/pygtype.c
@@ -565,9 +565,15 @@ pyg_value_as_pyobject(const GValue *value)
{
PyGBoxedMarshal *bm;
- if (G_VALUE_HOLDS(value, PY_TYPE_OBJECT))
- return (PyObject *)g_value_dup_boxed(value);
-
+ if (G_VALUE_HOLDS(value, PY_TYPE_OBJECT)) {
+ PyObject *ret = (PyObject *)g_value_dup_boxed(value);
+ if (ret == NULL) {
+ Py_INCREF(Py_None);
+ return Py_None;
+ }
+ return ret;
+ }
+
bm = pyg_boxed_lookup(G_VALUE_TYPE(value));
if (bm)
return bm->fromvalue(value);