mirror of
https://github.com/python/cpython.git
synced 2025-07-09 20:35:26 +00:00
bpo-15999: Clean up of handling boolean arguments. (GH-15610)
* Use the 'p' format unit instead of manually called PyObject_IsTrue(). * Pass boolean value instead 0/1 integers to functions that needs boolean. * Convert some arguments to boolean only once.
This commit is contained in:
parent
5eca7f3f38
commit
1f21eaa15e
21 changed files with 69 additions and 78 deletions
|
@ -1820,8 +1820,9 @@ static PyObject *
|
|||
builtin_print(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames)
|
||||
{
|
||||
static const char * const _keywords[] = {"sep", "end", "file", "flush", 0};
|
||||
static struct _PyArg_Parser _parser = {"|OOOO:print", _keywords, 0};
|
||||
PyObject *sep = NULL, *end = NULL, *file = NULL, *flush = NULL;
|
||||
static struct _PyArg_Parser _parser = {"|OOOp:print", _keywords, 0};
|
||||
PyObject *sep = NULL, *end = NULL, *file = NULL;
|
||||
int flush = 0;
|
||||
int i, err;
|
||||
|
||||
if (kwnames != NULL &&
|
||||
|
@ -1883,18 +1884,11 @@ builtin_print(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
|
|||
if (err)
|
||||
return NULL;
|
||||
|
||||
if (flush != NULL) {
|
||||
PyObject *tmp;
|
||||
int do_flush = PyObject_IsTrue(flush);
|
||||
if (do_flush == -1)
|
||||
if (flush) {
|
||||
PyObject *tmp = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
|
||||
if (tmp == NULL)
|
||||
return NULL;
|
||||
else if (do_flush) {
|
||||
tmp = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
|
||||
if (tmp == NULL)
|
||||
return NULL;
|
||||
else
|
||||
Py_DECREF(tmp);
|
||||
}
|
||||
Py_DECREF(tmp);
|
||||
}
|
||||
|
||||
Py_RETURN_NONE;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue