diff options
author | Tim Peters <tim.peters@gmail.com> | 2001-10-27 05:50:39 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2001-10-27 05:50:39 (GMT) |
commit | 077f574db1b76484690fd46ddf342ec7e80f929a (patch) | |
tree | 3020beca10900040aafca12fa36adb400af27532 | |
parent | 61dde63e3bdcdca9e352ec91442137e9ace5f75d (diff) | |
download | cpython-077f574db1b76484690fd46ddf342ec7e80f929a.zip cpython-077f574db1b76484690fd46ddf342ec7e80f929a.tar.gz cpython-077f574db1b76484690fd46ddf342ec7e80f929a.tar.bz2 |
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.
-rw-r--r-- | Python/getargs.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/Python/getargs.c b/Python/getargs.c index a68940a..5c78dd7 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(); |