diff options
| -rw-r--r-- | gobject/pygtype.c | 12 |
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); |
