summaryrefslogtreecommitdiffstats
path: root/gobject/pygobject.c
diff options
context:
space:
mode:
authorJohan Dahlin <zilch@src.gnome.org>2004-03-04 17:39:17 +0000
committerJohan Dahlin <zilch@src.gnome.org>2004-03-04 17:39:17 +0000
commit312a94f41a11802edcac19ecc44bf73ac1c7adba (patch)
tree27e9dcd5c9921382dc05a1aebc7a0bb65febedc7 /gobject/pygobject.c
parent2f0295c4790abbeb97f6106df68815a028513b7a (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.c7
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(&params[i+1], item) < 0) {
+ if (pyg_boxed_check(item, (query.param_types[i] & ~G_SIGNAL_TYPE_STATIC_SCOPE))) {
+ g_value_set_static_boxed(&params[i+1], pyg_boxed_get(item, void));
+ }
+ else if (pyg_value_from_pyobject(&params[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(&params[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 {