[Python-checkins] cpython: Cleanup getargs.c
victor.stinner
python-checkins at python.org
Mon Jan 16 17:58:00 EST 2017
https://hg.python.org/cpython/rev/7203b2cf233f
changeset: 106171:7203b2cf233f
user: Victor Stinner <victor.stinner at gmail.com>
date: Mon Jan 16 23:16:47 2017 +0100
summary:
Cleanup getargs.c
Factorize argument checks in:
* vgetargskeywordsfast()
* vgetargskeywordsfast_impl()
files:
Python/getargs.c | 66 +++++++++--------------------------
1 files changed, 17 insertions(+), 49 deletions(-)
diff --git a/Python/getargs.c b/Python/getargs.c
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -1453,14 +1453,6 @@
int retval;
va_list va;
- if ((args == NULL || !PyTuple_Check(args)) ||
- (keywords != NULL && !PyDict_Check(keywords)) ||
- parser == NULL)
- {
- PyErr_BadInternalCall();
- return 0;
- }
-
va_start(va, parser);
retval = vgetargskeywordsfast(args, keywords, parser, &va, 0);
va_end(va);
@@ -1474,14 +1466,6 @@
int retval;
va_list va;
- if ((args == NULL || !PyTuple_Check(args)) ||
- (keywords != NULL && !PyDict_Check(keywords)) ||
- parser == NULL)
- {
- PyErr_BadInternalCall();
- return 0;
- }
-
va_start(va, parser);
retval = vgetargskeywordsfast(args, keywords, parser, &va, FLAG_SIZE_T);
va_end(va);
@@ -1495,13 +1479,6 @@
int retval;
va_list va;
- if ((kwnames != NULL && !PyTuple_Check(kwnames)) ||
- parser == NULL)
- {
- PyErr_BadInternalCall();
- return 0;
- }
-
va_start(va, parser);
retval = vgetargskeywordsfast_impl(args, nargs, NULL, kwnames, parser, &va, 0);
va_end(va);
@@ -1515,13 +1492,6 @@
int retval;
va_list va;
- if ((kwnames != NULL && !PyTuple_Check(kwnames)) ||
- parser == NULL)
- {
- PyErr_BadInternalCall();
- return 0;
- }
-
va_start(va, parser);
retval = vgetargskeywordsfast_impl(args, nargs, NULL, kwnames, parser, &va, FLAG_SIZE_T);
va_end(va);
@@ -1536,14 +1506,6 @@
int retval;
va_list lva;
- if ((args == NULL || !PyTuple_Check(args)) ||
- (keywords != NULL && !PyDict_Check(keywords)) ||
- parser == NULL)
- {
- PyErr_BadInternalCall();
- return 0;
- }
-
va_copy(lva, va);
retval = vgetargskeywordsfast(args, keywords, parser, &lva, 0);
@@ -1558,14 +1520,6 @@
int retval;
va_list lva;
- if ((args == NULL || !PyTuple_Check(args)) ||
- (keywords != NULL && !PyDict_Check(keywords)) ||
- parser == NULL)
- {
- PyErr_BadInternalCall();
- return 0;
- }
-
va_copy(lva, va);
retval = vgetargskeywordsfast(args, keywords, parser, &lva, FLAG_SIZE_T);
@@ -2010,12 +1964,20 @@
freelist.entries_malloced = 0;
assert(keywords == NULL || PyDict_Check(keywords));
- assert(kwnames == NULL || PyTuple_Check(kwnames));
assert((keywords != NULL || kwnames != NULL)
|| (keywords == NULL && kwnames == NULL));
- assert(parser != NULL);
assert(p_va != NULL);
+ if (parser == NULL) {
+ PyErr_BadInternalCall();
+ return 0;
+ }
+
+ if (kwnames != NULL && !PyTuple_Check(kwnames)) {
+ PyErr_BadInternalCall();
+ return 0;
+ }
+
if (!parser_init(parser)) {
return 0;
}
@@ -2204,7 +2166,13 @@
PyObject **stack;
Py_ssize_t nargs;
- assert(args != NULL && PyTuple_Check(args));
+ if (args == NULL
+ || !PyTuple_Check(args)
+ || (keywords != NULL && !PyDict_Check(keywords)))
+ {
+ PyErr_BadInternalCall();
+ return 0;
+ }
stack = &PyTuple_GET_ITEM(args, 0);
nargs = PyTuple_GET_SIZE(args);
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list