diff options
author | James Henstridge <james@daa.com.au> | 2001-12-20 05:49:35 +0000 |
---|---|---|
committer | James Henstridge <jamesh@src.gnome.org> | 2001-12-20 05:49:35 +0000 |
commit | eb6002723a0cd3d6c8d2f203cb31a3bc11fdaa38 (patch) | |
tree | 5538de29cb850d08f7caf007e9562be9bdb2ec4d | |
parent | 243c22eb6156ff292d7ef41d3f84da64b2941126 (diff) | |
download | pygtk-eb6002723a0cd3d6c8d2f203cb31a3bc11fdaa38.tar.gz |
fix for updated API. (pygobject_methods): just call the method "chain".
2001-12-20 James Henstridge <james@daa.com.au>
* gobjectmodule.c (pygobject_chain_from_overridden): fix for
updated API.
(pygobject_methods): just call the method "chain".
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | gobject/gobjectmodule.c | 26 | ||||
-rw-r--r-- | gobjectmodule.c | 26 |
3 files changed, 26 insertions, 32 deletions
@@ -1,3 +1,9 @@ +2001-12-20 James Henstridge <james@daa.com.au> + + * gobjectmodule.c (pygobject_chain_from_overridden): fix for + updated API. + (pygobject_methods): just call the method "chain". + 2001-12-19 James Henstridge <james@daa.com.au> * codegen/docgen.py (DocWriter.output_object_docs): fix for diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index 0feeda19..8c027d0e 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -1698,35 +1698,29 @@ pygobject_stop_emission(PyGObject *self, PyObject *args) static PyObject * pygobject_chain_from_overridden(PyGObject *self, PyObject *args) { + GSignalInvocationHint *ihint; guint signal_id, i, len; PyObject *first, *py_ret; gchar *name; GSignalQuery query; GValue *params, ret = { 0, }; + ihint = g_signal_get_invocation_hint(self->obj); + signal_id = ihint->signal_id; + name = g_signal_name(signal_id); + len = PyTuple_Size(args); - if (len < 1) { - PyErr_SetString(PyExc_TypeError,"GObject.chain_from_overridden needs at least one arg"); - return NULL; - } - first = PySequence_GetSlice(args, 0, 1); - if (!PyArg_ParseTuple(first, "s:GObject.emit", &name)) { - Py_DECREF(first); - return NULL; - } - Py_DECREF(first); - signal_id = g_signal_lookup(name, G_OBJECT_TYPE(self->obj)); if (signal_id == 0) { PyErr_SetString(PyExc_TypeError, "unknown signal name"); return NULL; } g_signal_query(signal_id, &query); - if (len != query.n_params + 1) { + if (len != query.n_params) { gchar buf[128]; g_snprintf(buf, sizeof(buf), "%d parameters needed for signal %s; %d given", - query.n_params, name, len - 1); + query.n_params, name, len); PyErr_SetString(PyExc_TypeError, buf); return NULL; } @@ -1738,7 +1732,7 @@ pygobject_chain_from_overridden(PyGObject *self, PyObject *args) 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); + PyObject *item = PyTuple_GetItem(args, i); if (pyg_value_from_pyobject(¶ms[i+1], item) < 0) { gchar buf[128]; @@ -1756,7 +1750,7 @@ pygobject_chain_from_overridden(PyGObject *self, PyObject *args) } if (query.return_type != G_TYPE_NONE) g_value_init(&ret, query.return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE); - g_signal_chain_from_overridden(params, signal_id, &ret); + g_signal_chain_from_overridden(params, &ret); for (i = 0; i < query.n_params + 1; i++) g_value_unset(¶ms[i]); g_free(params); @@ -1791,7 +1785,7 @@ static PyMethodDef pygobject_methods[] = { { "emit", (PyCFunction)pygobject_emit, METH_VARARGS }, { "stop_emission", (PyCFunction)pygobject_stop_emission, METH_VARARGS }, { "emit_stop_by_name", (PyCFunction)pygobject_stop_emission,METH_VARARGS }, - { "chain_from_overridden", (PyCFunction)pygobject_chain_from_overridden,METH_VARARGS }, + { "chain", (PyCFunction)pygobject_chain_from_overridden,METH_VARARGS }, { NULL, NULL, 0 } }; diff --git a/gobjectmodule.c b/gobjectmodule.c index 0feeda19..8c027d0e 100644 --- a/gobjectmodule.c +++ b/gobjectmodule.c @@ -1698,35 +1698,29 @@ pygobject_stop_emission(PyGObject *self, PyObject *args) static PyObject * pygobject_chain_from_overridden(PyGObject *self, PyObject *args) { + GSignalInvocationHint *ihint; guint signal_id, i, len; PyObject *first, *py_ret; gchar *name; GSignalQuery query; GValue *params, ret = { 0, }; + ihint = g_signal_get_invocation_hint(self->obj); + signal_id = ihint->signal_id; + name = g_signal_name(signal_id); + len = PyTuple_Size(args); - if (len < 1) { - PyErr_SetString(PyExc_TypeError,"GObject.chain_from_overridden needs at least one arg"); - return NULL; - } - first = PySequence_GetSlice(args, 0, 1); - if (!PyArg_ParseTuple(first, "s:GObject.emit", &name)) { - Py_DECREF(first); - return NULL; - } - Py_DECREF(first); - signal_id = g_signal_lookup(name, G_OBJECT_TYPE(self->obj)); if (signal_id == 0) { PyErr_SetString(PyExc_TypeError, "unknown signal name"); return NULL; } g_signal_query(signal_id, &query); - if (len != query.n_params + 1) { + if (len != query.n_params) { gchar buf[128]; g_snprintf(buf, sizeof(buf), "%d parameters needed for signal %s; %d given", - query.n_params, name, len - 1); + query.n_params, name, len); PyErr_SetString(PyExc_TypeError, buf); return NULL; } @@ -1738,7 +1732,7 @@ pygobject_chain_from_overridden(PyGObject *self, PyObject *args) 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); + PyObject *item = PyTuple_GetItem(args, i); if (pyg_value_from_pyobject(¶ms[i+1], item) < 0) { gchar buf[128]; @@ -1756,7 +1750,7 @@ pygobject_chain_from_overridden(PyGObject *self, PyObject *args) } if (query.return_type != G_TYPE_NONE) g_value_init(&ret, query.return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE); - g_signal_chain_from_overridden(params, signal_id, &ret); + g_signal_chain_from_overridden(params, &ret); for (i = 0; i < query.n_params + 1; i++) g_value_unset(¶ms[i]); g_free(params); @@ -1791,7 +1785,7 @@ static PyMethodDef pygobject_methods[] = { { "emit", (PyCFunction)pygobject_emit, METH_VARARGS }, { "stop_emission", (PyCFunction)pygobject_stop_emission, METH_VARARGS }, { "emit_stop_by_name", (PyCFunction)pygobject_stop_emission,METH_VARARGS }, - { "chain_from_overridden", (PyCFunction)pygobject_chain_from_overridden,METH_VARARGS }, + { "chain", (PyCFunction)pygobject_chain_from_overridden,METH_VARARGS }, { NULL, NULL, 0 } }; |