@@ -49,39 +49,26 @@ PyFile_FromFd(int fd, const char *name, const char *mode, int buffering, const c
49
49
PyObject *
50
50
PyFile_GetLine (PyObject * f , int n )
51
51
{
52
+ _Py_IDENTIFIER (readline );
52
53
PyObject * result ;
53
54
54
55
if (f == NULL ) {
55
56
PyErr_BadInternalCall ();
56
57
return NULL ;
57
58
}
58
59
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" );
85
72
}
86
73
87
74
if (n < 0 && result != NULL && PyBytes_Check (result )) {
@@ -197,7 +184,7 @@ PyObject_AsFileDescriptor(PyObject *o)
197
184
}
198
185
else if ((meth = _PyObject_GetAttrId (o , & PyId_fileno )) != NULL )
199
186
{
200
- PyObject * fno = PyEval_CallObject (meth , NULL );
187
+ PyObject * fno = _PyObject_CallNoArg (meth );
201
188
Py_DECREF (meth );
202
189
if (fno == NULL )
203
190
return -1 ;
0 commit comments