diff options
author | Matt Wilson <msw@redhat.com> | 2001-10-05 19:01:08 +0000 |
---|---|---|
committer | Matt Wilson <msw@src.gnome.org> | 2001-10-05 19:01:08 +0000 |
commit | ab42d05513681bacddda67c9e57095451341cfc4 (patch) | |
tree | 29a202b5e9a7c43bdd455cfc96067a36babb24be | |
parent | 0641e0011345d4c20fce5a8490c74bfc854f740c (diff) | |
download | pygobject-ab42d05513681bacddda67c9e57095451341cfc4.tar.gz |
mask out G_SIGNAL_TYPE_STATIC_SCOPE to fix signal emission.
2001-10-05 Matt Wilson <msw@redhat.com>
* gobjectmodule.c (pygobject_emit): mask out
G_SIGNAL_TYPE_STATIC_SCOPE to fix signal emission.
-rw-r--r-- | gobject/gobjectmodule.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index b5b99ce8..ee76f47d 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -1534,7 +1534,8 @@ pygobject_emit(PyGObject *self, PyObject *args) g_value_set_object(¶ms[0], G_OBJECT(self->obj)); for (i = 0; i < query.n_params; i++) - g_value_init(¶ms[i + 1], query.param_types[i]); + g_value_init(¶ms[i + 1], + query.param_types[i] & ~G_SIGNAL_TYPE_STATIC_SCOPE); for (i = 0; i < query.n_params; i++) { PyObject *item = PyTuple_GetItem(args, i+1); @@ -1553,12 +1554,12 @@ pygobject_emit(PyGObject *self, PyObject *args) } } if (query.return_type != G_TYPE_NONE) - g_value_init(&ret, query.return_type); + g_value_init(&ret, query.return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE); g_signal_emitv(params, signal_id, detail, &ret); for (i = 0; i < query.n_params + 1; i++) g_value_unset(¶ms[i]); g_free(params); - if (query.return_type != G_TYPE_NONE) { + if (query.return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE != G_TYPE_NONE) { py_ret = pyg_value_as_pyobject(&ret); g_value_unset(&ret); } else { |