mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +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; | ||||
|  |  | |||
|  | @ -1735,10 +1735,10 @@ create_stdio(const PyConfig *config, PyObject* io, | |||
|         mode = "wb"; | ||||
|     else | ||||
|         mode = "rb"; | ||||
|     buf = _PyObject_CallMethodId(io, &PyId_open, "isiOOOi", | ||||
|     buf = _PyObject_CallMethodId(io, &PyId_open, "isiOOOO", | ||||
|                                  fd, mode, buffering, | ||||
|                                  Py_None, Py_None, /* encoding, errors */ | ||||
|                                  Py_None, 0); /* newline, closefd */ | ||||
|                                  Py_None, Py_False); /* newline, closefd */ | ||||
|     if (buf == NULL) | ||||
|         goto error; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Serhiy Storchaka
						Serhiy Storchaka