From 312a94f41a11802edcac19ecc44bf73ac1c7adba Mon Sep 17 00:00:00 2001 From: Johan Dahlin Date: Thu, 4 Mar 2004 17:39:17 +0000 Subject: Fixes for bug 132704, Patch by John Ehresman. * pygobject.c (pygobject_chain_from_overridden): * pygtype.c (pyg_signal_class_closure_marshal): Fixes for bug 132704, Patch by John Ehresman. --- gobject/pygobject.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'gobject/pygobject.c') diff --git a/gobject/pygobject.c b/gobject/pygobject.c index 07a33a7..efa51b2 100644 --- a/gobject/pygobject.c +++ b/gobject/pygobject.c @@ -991,7 +991,10 @@ pygobject_chain_from_overridden(PyGObject *self, PyObject *args) for (i = 0; i < query.n_params; i++) { PyObject *item = PyTuple_GetItem(args, i); - if (pyg_value_from_pyobject(¶ms[i+1], item) < 0) { + if (pyg_boxed_check(item, (query.param_types[i] & ~G_SIGNAL_TYPE_STATIC_SCOPE))) { + g_value_set_static_boxed(¶ms[i+1], pyg_boxed_get(item, void)); + } + else if (pyg_value_from_pyobject(¶ms[i+1], item) < 0) { gchar buf[128]; g_snprintf(buf, sizeof(buf), @@ -1011,7 +1014,7 @@ pygobject_chain_from_overridden(PyGObject *self, PyObject *args) for (i = 0; i < query.n_params + 1; i++) g_value_unset(¶ms[i]); g_free(params); - if ((query.return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE) != G_TYPE_NONE) { + if (query.return_type != G_TYPE_NONE) { py_ret = pyg_value_as_pyobject(&ret, TRUE); g_value_unset(&ret); } else { -- cgit