diff options
Diffstat (limited to 'Python')
-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(); |