@@ -49,39 +49,26 @@ PyFile_FromFd(int fd, const char *name, const char *mode, int buffering, const c
4949PyObject *
5050PyFile_GetLine (PyObject * f , int n )
5151{
52+ _Py_IDENTIFIER (readline );
5253 PyObject * result ;
5354
5455 if (f == NULL ) {
5556 PyErr_BadInternalCall ();
5657 return NULL ;
5758 }
5859
59- {
60- PyObject * reader ;
61- PyObject * args ;
62- _Py_IDENTIFIER (readline );
63-
64- reader = _PyObject_GetAttrId (f , & PyId_readline );
65- if (reader == NULL )
66- return NULL ;
67- if (n <= 0 )
68- args = PyTuple_New (0 );
69- else
70- args = Py_BuildValue ("(i)" , n );
71- if (args == NULL ) {
72- Py_DECREF (reader );
73- return NULL ;
74- }
75- result = PyEval_CallObject (reader , args );
76- Py_DECREF (reader );
77- Py_DECREF (args );
78- if (result != NULL && !PyBytes_Check (result ) &&
79- !PyUnicode_Check (result )) {
80- Py_DECREF (result );
81- result = NULL ;
82- PyErr_SetString (PyExc_TypeError ,
83- "object.readline() returned non-string" );
84- }
60+ if (n <= 0 ) {
61+ result = _PyObject_CallMethodIdObjArgs (f , & PyId_readline , NULL );
62+ }
63+ else {
64+ result = _PyObject_CallMethodId (f , & PyId_readline , "i" , n );
65+ }
66+ if (result != NULL && !PyBytes_Check (result ) &&
67+ !PyUnicode_Check (result )) {
68+ Py_DECREF (result );
69+ result = NULL ;
70+ PyErr_SetString (PyExc_TypeError ,
71+ "object.readline() returned non-string" );
8572 }
8673
8774 if (n < 0 && result != NULL && PyBytes_Check (result )) {
@@ -197,7 +184,7 @@ PyObject_AsFileDescriptor(PyObject *o)
197184 }
198185 else if ((meth = _PyObject_GetAttrId (o , & PyId_fileno )) != NULL )
199186 {
200- PyObject * fno = PyEval_CallObject (meth , NULL );
187+ PyObject * fno = _PyObject_CallNoArg (meth );
201188 Py_DECREF (meth );
202189 if (fno == NULL )
203190 return -1 ;
0 commit comments