pyke/mapping.c: Introduce macro for unconstifying common keyword list.
authorMark Wooding <mdw@distorted.org.uk>
Sun, 20 Oct 2019 21:57:54 +0000 (22:57 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 11 Apr 2020 11:44:14 +0000 (12:44 +0100)
mapping.c

index e97fcb0..363a2f0 100644 (file)
--- a/mapping.c
+++ b/mapping.c
@@ -306,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();
@@ -324,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);
@@ -338,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);