Commit 28bf7a97 authored by Tim Peters's avatar Tim Peters

vgetargskeywords:

+ Removed now-redundant tuple typecheck.
+ Renamed "tplen" local to "argslen" (it's the length of the "args"
  argument; I suppose "tp" was for "Tim Peters should rename me
  someday <wink>).
parent f8cd3e86
...@@ -1032,7 +1032,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format, ...@@ -1032,7 +1032,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format,
char *fname, *message; char *fname, *message;
int min, max; int min, max;
char *formatsave = format; char *formatsave = format;
int i, len, tplen, kwlen; int i, len, argslen, kwlen;
char *msg, *ks, **p; char *msg, *ks, **p;
int nkwds, pos, match, converted; int nkwds, pos, match, converted;
PyObject *key, *value; PyObject *key, *value;
...@@ -1078,13 +1078,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format, ...@@ -1078,13 +1078,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format,
} }
format = formatsave; format = formatsave;
if (!PyTuple_Check(args)) { argslen = PyTuple_GET_SIZE(args);
PyErr_SetString(PyExc_SystemError,
"new style getargs format but argument is not a tuple");
return 0;
}
tplen = PyTuple_GET_SIZE(args);
/* do a cursory check of the keywords just to see how many we got */ /* do a cursory check of the keywords just to see how many we got */
...@@ -1104,7 +1098,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format, ...@@ -1104,7 +1098,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format,
keyword parameter in messages */ keyword parameter in messages */
if (keywords) { if (keywords) {
for (i = 0; i < tplen; i++) { for (i = 0; i < argslen; i++) {
char *thiskw = kwlist[i]; char *thiskw = kwlist[i];
if (thiskw == NULL) if (thiskw == NULL)
break; break;
...@@ -1129,9 +1123,9 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format, ...@@ -1129,9 +1123,9 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format,
/* required arguments missing from args can be supplied by keyword /* required arguments missing from args can be supplied by keyword
arguments */ arguments */
len = tplen; len = argslen;
if (keywords && tplen < min) { if (keywords && argslen < min) {
for (i = tplen; i < min; i++) { for (i = argslen; i < min; i++) {
if (PyMapping_HasKeyString(keywords, kwlist[i])) { if (PyMapping_HasKeyString(keywords, kwlist[i])) {
len++; len++;
} }
...@@ -1161,7 +1155,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format, ...@@ -1161,7 +1155,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format,
return 0; return 0;
} }
for (i = 0; i < tplen; i++) { for (i = 0; i < argslen; i++) {
if (*format == '|') if (*format == '|')
format++; format++;
msg = convertitem(PyTuple_GET_ITEM(args, i), &format, p_va, msg = convertitem(PyTuple_GET_ITEM(args, i), &format, p_va,
...@@ -1174,7 +1168,8 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format, ...@@ -1174,7 +1168,8 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format,
/* handle no keyword parameters in call */ /* handle no keyword parameters in call */
if (!keywords) return 1; if (!keywords)
return 1;
/* make sure the number of keywords in the keyword list matches the /* make sure the number of keywords in the keyword list matches the
number of items in the format string */ number of items in the format string */
...@@ -1196,7 +1191,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format, ...@@ -1196,7 +1191,7 @@ vgetargskeywords(PyObject *args, PyObject *keywords, char *format,
string where it was left after processing args */ string where it was left after processing args */
converted = 0; converted = 0;
for (i = tplen; i < nkwds; i++) { for (i = argslen; i < nkwds; i++) {
PyObject *item; PyObject *item;
if (*format == '|') if (*format == '|')
format++; format++;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment