X-Git-Url: https://git.distorted.org.uk/~mdw/catacomb-python/blobdiff_plain/a172f897f4fdd800b3f70cdfe2140205f6b2f531..bfbe5e4064e7e94b71858868f485963e3e7e9ff1:/mapping.c diff --git a/mapping.c b/mapping.c index 229dfa9..363a2f0 100644 --- a/mapping.c +++ b/mapping.c @@ -54,7 +54,7 @@ static PyObject *itemiter_pynext(PyObject *me) return (rc); } -static PyTypeObject itemiter_pytype_skel = { +static const PyTypeObject itemiter_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "ItemIter", /* @tp_name@ */ sizeof(iter_pyobj), /* @tp_basicsize@ */ @@ -112,7 +112,7 @@ static PyObject *valiter_pynext(PyObject *me) return (rc); } -static PyTypeObject valiter_pytype_skel = { +static const PyTypeObject valiter_pytype_skel = { PyObject_HEAD_INIT(0) 0, /* Header */ "ValueIter", /* @tp_name@ */ sizeof(iter_pyobj), /* @tp_basicsize@ */ @@ -160,7 +160,7 @@ static PyTypeObject valiter_pytype_skel = { 0 /* @tp_is_gc@ */ }; -PySequenceMethods gmap_pysequence = { +const PySequenceMethods gmap_pysequence = { 0, /* @sq_length@ */ 0, /* @sq_concat@ */ 0, /* @sq_repeat@ */ @@ -196,13 +196,12 @@ PyObject *gmapmeth_has_key(PyObject *me, PyObject *arg) return (getbool(PyMapping_HasKey(me, k))); } -PyObject *gmapmeth_keys(PyObject *me, PyObject *arg) +PyObject *gmapmeth_keys(PyObject *me) { PyObject *l = 0, *i = 0, *k, *rc = 0; int err; - if (!PyArg_ParseTuple(arg, ":keys") || - (l = PyList_New(0)) == 0 || + if ((l = PyList_New(0)) == 0 || (i = PyObject_GetIter(me)) == 0) goto done; while ((k = PyIter_Next(i)) != 0) @@ -214,13 +213,12 @@ done: return (rc); } -PyObject *gmapmeth_values(PyObject *me, PyObject *arg) +PyObject *gmapmeth_values(PyObject *me) { PyObject *l = 0, *i = 0, *k, *v, *rc = 0; int err = 0; - if (!PyArg_ParseTuple(arg, ":values") || - (l = PyList_New(0)) == 0 || + if ((l = PyList_New(0)) == 0 || (i = PyObject_GetIter(me)) == 0) goto done; while ((k = PyIter_Next(i)) != 0) { @@ -237,13 +235,12 @@ done: return (rc); } -PyObject *gmapmeth_items(PyObject *me, PyObject *arg) +PyObject *gmapmeth_items(PyObject *me) { PyObject *l = 0, *i = 0, *k, *v, *z, *rc = 0; int err = 0; - if (!PyArg_ParseTuple(arg, ":items") || - (l = PyList_New(0)) == 0 || + if ((l = PyList_New(0)) == 0 || (i = PyObject_GetIter(me)) == 0) goto done; while ((k = PyIter_Next(i)) != 0) { @@ -262,19 +259,15 @@ done: return (rc); } -PyObject *gmapmeth_iterkeys(PyObject *me, PyObject *arg) -{ - if (!PyArg_ParseTuple(arg, ":iterkeys")) return (0); - return (PyObject_GetIter(me)); -} +PyObject *gmapmeth_iterkeys(PyObject *me) + { return (PyObject_GetIter(me)); } -PyObject *gmapmeth_itervalues(PyObject *me, PyObject *arg) +PyObject *gmapmeth_itervalues(PyObject *me) { PyObject *i; iter_pyobj *ii; - if (!PyArg_ParseTuple(arg, ":itervalues") || - (i = PyObject_GetIter(me)) == 0) + if ((i = PyObject_GetIter(me)) == 0) return (0); ii = PyObject_NEW(iter_pyobj, valiter_pytype); ii->map = me; Py_INCREF(me); @@ -282,13 +275,12 @@ PyObject *gmapmeth_itervalues(PyObject *me, PyObject *arg) return ((PyObject *)ii); } -PyObject *gmapmeth_iteritems(PyObject *me, PyObject *arg) +PyObject *gmapmeth_iteritems(PyObject *me) { PyObject *i; iter_pyobj *ii; - if (!PyArg_ParseTuple(arg, ":iteritems") || - (i = PyObject_GetIter(me)) == 0) + if ((i = PyObject_GetIter(me)) == 0) return (0); ii = PyObject_NEW(iter_pyobj, itemiter_pytype); ii->map = me; Py_INCREF(me); @@ -296,12 +288,11 @@ PyObject *gmapmeth_iteritems(PyObject *me, PyObject *arg) return ((PyObject *)ii); } -PyObject *gmapmeth_clear(PyObject *me, PyObject *arg) +PyObject *gmapmeth_clear(PyObject *me) { PyObject *i = 0, *k = 0, *rc = 0; - if (!PyArg_ParseTuple(arg, ":clear") || - (i = PyObject_GetIter(me)) == 0) + if ((i = PyObject_GetIter(me)) == 0) goto end; while ((k = PyIter_Next(i)) != 0) { PyObject_DelItem(me, k); @@ -315,14 +306,13 @@ end: } static const char *const def_kwlist[] = { "key", "default", 0 }; +#define DEF_KWLIST ((/*unconst*/ char **)def_kwlist) PyObject *gmapmeth_get(PyObject *me, PyObject *arg, PyObject *kw) { PyObject *k, *def = Py_None, *v; - if (!PyArg_ParseTupleAndKeywords(arg, kw, "O|O:get", - (/*unconst*/ char **)def_kwlist, - &k, &def)) + if (!PyArg_ParseTupleAndKeywords(arg, kw, "O|O:get", DEF_KWLIST, &k, &def)) return (0); if ((v = PyObject_GetItem(me, k)) != 0) return (v); PyErr_Clear(); @@ -333,8 +323,7 @@ PyObject *gmapmeth_setdefault(PyObject *me, PyObject *arg, PyObject *kw) { PyObject *k, *def = Py_None, *v; - if (!PyArg_ParseTupleAndKeywords(arg, kw, "O|O:setdefault", - (/*unconst*/ char **)def_kwlist, + if (!PyArg_ParseTupleAndKeywords(arg, kw, "O|O:setdefault", DEF_KWLIST, &k, &def)) return (0); if ((v = PyObject_GetItem(me, k)) != 0) return (v); @@ -347,9 +336,7 @@ PyObject *gmapmeth_pop(PyObject *me, PyObject *arg, PyObject *kw) { PyObject *k, *def = 0, *v; - if (!PyArg_ParseTupleAndKeywords(arg, kw, "O|O:pop", - (/*unconst*/ char **)def_kwlist, - &k, &def)) + if (!PyArg_ParseTupleAndKeywords(arg, kw, "O|O:pop", DEF_KWLIST, &k, &def)) return (0); if ((v = PyObject_GetItem(me, k)) != 0) { PyObject_DelItem(me, k); @@ -383,12 +370,11 @@ end: return (rc); } -PyObject *gmapmeth_popitem(PyObject *me, PyObject *arg) +PyObject *gmapmeth_popitem(PyObject *me) { PyObject *i = 0, *k = 0, *v = 0, *rc = 0; - if (!PyArg_ParseTuple(arg, ":popitem") || - (i = PyObject_GetIter(me)) == 0) + if ((i = PyObject_GetIter(me)) == 0) goto end; if ((k = PyIter_Next(i)) == 0) { if (!PyErr_Occurred()) VALERR("popitem(): mapping is empty"); @@ -403,7 +389,7 @@ end: return (rc); } -PyMethodDef gmap_pymethods[] = { +const PyMethodDef gmap_pymethods[] = { GMAP_METHODS { 0 } };