summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2001-10-27 04:45:34 (GMT)
committerTim Peters <tim.peters@gmail.com>2001-10-27 04:45:34 (GMT)
commitb0872fc8a6045e66df687d978be67d299cbc50e1 (patch)
treefe6cb1bffded8ef3b65a147dd045eea01b8c1d18
parent6fb2635f257f8288413c6f4fb028e67c12ae8fa1 (diff)
downloadcpython-b0872fc8a6045e66df687d978be67d299cbc50e1.zip
cpython-b0872fc8a6045e66df687d978be67d299cbc50e1.tar.gz
cpython-b0872fc8a6045e66df687d978be67d299cbc50e1.tar.bz2
vgetargskeywords:
+ Got rid of now-redundant dict typecheck. + Renamed nkwds to nkwlist. Now all the "counting" vrbls have names related to the things they're counting in an obvious way.
-rw-r--r--Python/getargs.c27
1 files changed, 7 insertions, 20 deletions
diff --git a/Python/getargs.c b/Python/getargs.c
index 2f876ff..dd80fd1 100644
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -1034,7 +1034,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format,
char *formatsave;
int i, len, nargs, nkeywords;
char *msg, *ks, **p;
- int nkwds, pos, match, converted;
+ int nkwlist, pos, match, converted;
PyObject *key, *value;
assert(args != NULL && PyTuple_Check(args));
@@ -1080,24 +1080,11 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format,
format = formatsave;
nargs = PyTuple_GET_SIZE(args);
+ nkeywords = keywords == NULL ? 0 : PyDict_Size(keywords);
- /* do a cursory check of the keywords just to see how many we got */
-
- nkeywords = 0;
- if (keywords) {
- if (!PyDict_Check(keywords)) {
- PyErr_Format(PyExc_SystemError,
- "%s received when keyword dictionary expected",
- keywords->ob_type->tp_name);
- return 0;
- }
- nkeywords = PyDict_Size(keywords);
- }
-
/* make sure there are no duplicate values for an argument;
its not clear when to use the term "keyword argument vs.
keyword parameter in messages */
-
if (keywords) {
for (i = 0; i < nargs; i++) {
char *thiskw = kwlist[i];
@@ -1175,14 +1162,14 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format,
/* make sure the number of keywords in the keyword list matches the
number of items in the format string */
- nkwds = 0;
+ nkwlist = 0;
p = kwlist;
for (;;) {
if (!*(p++)) break;
- nkwds++;
+ nkwlist++;
}
- if (nkwds != max) {
+ if (nkwlist != max) {
PyErr_SetString(PyExc_SystemError,
"number of items in format string and keyword list do not match");
return 0;
@@ -1192,7 +1179,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format,
string where it was left after processing args */
converted = 0;
- for (i = nargs; i < nkwds; i++) {
+ for (i = nargs; i < nkwlist; i++) {
PyObject *item;
if (*format == '|')
format++;
@@ -1223,7 +1210,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format,
while (PyDict_Next(keywords, &pos, &key, &value)) {
match = 0;
ks = PyString_AsString(key);
- for (i = 0; i < nkwds; i++) {
+ for (i = 0; i < nkwlist; i++) {
if (!strcmp(ks, kwlist[i])) {
match = 1;
break;