chiark
/
gitweb
/
~mdw
/
pyke
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
pyke/mapping.c: Introduce macro for unconstifying common keyword list.
[pyke]
/
mapping.c
diff --git
a/mapping.c
b/mapping.c
index 229dfa99b32eafb136c9c9cb3d01b74a7f54cad7..363a2f07808d1d43f00fb5280722674ecdfea756 100644
(file)
--- a/
mapping.c
+++ b/
mapping.c
@@
-54,7
+54,7
@@
static PyObject *itemiter_pynext(PyObject *me)
return (rc);
}
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@ */
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);
}
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@ */
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@ */
};
0 /* @tp_is_gc@ */
};
-PySequenceMethods gmap_pysequence = {
+
const
PySequenceMethods gmap_pysequence = {
0, /* @sq_length@ */
0, /* @sq_concat@ */
0, /* @sq_repeat@ */
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)));
}
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;
{
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)
(i = PyObject_GetIter(me)) == 0)
goto done;
while ((k = PyIter_Next(i)) != 0)
@@
-214,13
+213,12
@@
done:
return (rc);
}
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;
{
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) {
(i = PyObject_GetIter(me)) == 0)
goto done;
while ((k = PyIter_Next(i)) != 0) {
@@
-237,13
+235,12
@@
done:
return (rc);
}
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;
{
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) {
(i = PyObject_GetIter(me)) == 0)
goto done;
while ((k = PyIter_Next(i)) != 0) {
@@
-262,19
+259,15
@@
done:
return (rc);
}
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;
{
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);
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);
}
return ((PyObject *)ii);
}
-PyObject *gmapmeth_iteritems(PyObject *me
, PyObject *arg
)
+PyObject *gmapmeth_iteritems(PyObject *me)
{
PyObject *i;
iter_pyobj *ii;
{
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);
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);
}
return ((PyObject *)ii);
}
-PyObject *gmapmeth_clear(PyObject *me
, PyObject *arg
)
+PyObject *gmapmeth_clear(PyObject *me)
{
PyObject *i = 0, *k = 0, *rc = 0;
{
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);
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 };
}
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;
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();
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;
{
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);
&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;
{
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);
return (0);
if ((v = PyObject_GetItem(me, k)) != 0) {
PyObject_DelItem(me, k);
@@
-383,12
+370,11
@@
end:
return (rc);
}
return (rc);
}
-PyObject *gmapmeth_popitem(PyObject *me
, PyObject *arg
)
+PyObject *gmapmeth_popitem(PyObject *me)
{
PyObject *i = 0, *k = 0, *v = 0, *rc = 0;
{
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");
goto end;
if ((k = PyIter_Next(i)) == 0) {
if (!PyErr_Occurred()) VALERR("popitem(): mapping is empty");
@@
-403,7
+389,7
@@
end:
return (rc);
}
return (rc);
}
-PyMethodDef gmap_pymethods[] = {
+
const
PyMethodDef gmap_pymethods[] = {
GMAP_METHODS
{ 0 }
};
GMAP_METHODS
{ 0 }
};