diff options
| author | Johan Dahlin <zilch@src.gnome.org> | 2004-03-04 17:39:17 +0000 |
|---|---|---|
| committer | Johan Dahlin <zilch@src.gnome.org> | 2004-03-04 17:39:17 +0000 |
| commit | 312a94f41a11802edcac19ecc44bf73ac1c7adba (patch) | |
| tree | 27e9dcd5c9921382dc05a1aebc7a0bb65febedc7 /gobject/pygobject.c | |
| parent | 2f0295c4790abbeb97f6106df68815a028513b7a (diff) | |
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.
Diffstat (limited to 'gobject/pygobject.c')
| -rw-r--r-- | gobject/pygobject.c | 7 |
1 files changed, 5 insertions, 2 deletions
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 { |
