X-Git-Url: https://git.distorted.org.uk/~mdw/pyke/blobdiff_plain/41efbcc08120755b34f8157cae1fe855314b5c9f..c6a36308d930f04e4cce57b319d9ea6628fc3f4c:/util.c diff --git a/util.c b/util.c index 29f7d12..55de789 100644 --- a/util.c +++ b/util.c @@ -32,7 +32,7 @@ /*----- External values ---------------------------------------------------*/ -static PyObject *modname = 0; +PyObject *modname = 0; PyObject *home_module = 0; /*----- Conversions -------------------------------------------------------*/ @@ -68,8 +68,8 @@ PyObject *getk64(kludge64 u) Py_DECREF(i); i = t; if ((rc = PyNumber_Int(i)) == 0) goto end; end: - if (i) Py_DECREF(i); - if (j) Py_DECREF(j); + Py_XDECREF(i); + Py_XDECREF(j); return (rc); #endif } @@ -185,7 +185,7 @@ int convk64(PyObject *o, void *pp) rc = 1; end: - if (i) Py_DECREF(i); + Py_XDECREF(i); return (rc); } @@ -504,7 +504,7 @@ static PyTypeObject itemiter_pytype_skel = { Py_TPFLAGS_BASETYPE, /* @tp_doc@ */ -"Iterates over the keys of a mapping.", + "Iterates over the items of a mapping.", 0, /* @tp_traverse@ */ 0, /* @tp_clear@ */ @@ -562,7 +562,7 @@ static PyTypeObject valiter_pytype_skel = { Py_TPFLAGS_BASETYPE, /* @tp_doc@ */ -"Iterates over the values of a mapping.", + "Iterates over the values of a mapping.", 0, /* @tp_traverse@ */ 0, /* @tp_clear@ */ @@ -737,13 +737,15 @@ end: return (rc); } -static char *def_kwlist[] = { "key", "default", 0 }; +static const char *const def_kwlist[] = { "key", "default", 0 }; PyObject *gmapmeth_get(PyObject *me, PyObject *arg, PyObject *kw) { PyObject *k, *def = Py_None, *v; - if (!PyArg_ParseTupleAndKeywords(arg, kw, "O|O:get", def_kwlist, &k, &def)) + if (!PyArg_ParseTupleAndKeywords(arg, kw, "O|O:get", + (/*unconst*/ char **)def_kwlist, + &k, &def)) return (0); if ((v = PyObject_GetItem(me, k)) != 0) return (v); PyErr_Clear(); @@ -755,7 +757,8 @@ PyObject *gmapmeth_setdefault(PyObject *me, PyObject *arg, PyObject *kw) PyObject *k, *def = Py_None, *v; if (!PyArg_ParseTupleAndKeywords(arg, kw, "O|O:setdefault", - def_kwlist, &k, &def)) + (/*unconst*/ char **)def_kwlist, + &k, &def)) return (0); if ((v = PyObject_GetItem(me, k)) != 0) return (v); PyErr_Clear(); @@ -767,7 +770,9 @@ PyObject *gmapmeth_pop(PyObject *me, PyObject *arg, PyObject *kw) { PyObject *k, *def = 0, *v; - if (!PyArg_ParseTupleAndKeywords(arg, kw, "O|O:pop", def_kwlist, &k, &def)) + if (!PyArg_ParseTupleAndKeywords(arg, kw, "O|O:pop", + (/*unconst*/ char **)def_kwlist, + &k, &def)) return (0); if ((v = PyObject_GetItem(me, k)) != 0) { PyObject_DelItem(me, k); @@ -840,14 +845,13 @@ static PyObject *meth__set_home_module(PyObject *me, PyObject *arg) static const PyMethodDef methods[] = { #define METHNAME(func) meth_##func - METH (_set_home_module, "_set_home_module(MOD)") + METH (_set_home_module, "_set_home_module(MOD)") #undef METHNAME { 0 } }; void util_pyinit(void) { - modname = PyString_FromString("catacomb"); INITTYPE(itemiter, root); INITTYPE(valiter, root); addmethods(methods);