From 077f574db1b76484690fd46ddf342ec7e80f929a Mon Sep 17 00:00:00 2001 From: Tim Peters Date: Sat, 27 Oct 2001 05:50:39 +0000 Subject: [PATCH] vgetargskeywords: The keywords arg is a dict (if non-NULL), so use the dict API everywhere on it instead of sometimes using the slower mapping API. --- Python/getargs.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Python/getargs.c b/Python/getargs.c index a68940a57c..5c78dd734f 100644 --- a/Python/getargs.c +++ b/Python/getargs.c @@ -1090,7 +1090,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format, char *thiskw = kwlist[i]; if (thiskw == NULL) break; - if (PyMapping_HasKeyString(keywords, thiskw)) { + if (PyDict_GetItemString(keywords, thiskw)) { PyErr_Format(PyExc_TypeError, "keyword parameter '%s' was given " "by position and by name", @@ -1105,9 +1105,8 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format, len = nargs; if (keywords && nargs < min) { for (i = nargs; i < min; i++) { - if (PyMapping_HasKeyString(keywords, kwlist[i])) { + if (PyDict_GetItemString(keywords, kwlist[i])) len++; - } } } PyErr_Clear(); @@ -1168,15 +1167,16 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format, PyObject *item; if (*format == '|') format++; - item = PyMapping_GetItemString(keywords, kwlist[i]); + item = PyDict_GetItemString(keywords, kwlist[i]); if (item != NULL) { + Py_INCREF(item); msg = convertitem(item, &format, p_va, levels, msgbuf); + Py_DECREF(item); if (msg) { seterror(i+1, msg, levels, fname, message); return 0; } converted++; - Py_DECREF(item); } else { PyErr_Clear(); -- 2.40.0