bpo-37337: Add _PyObject_CallMethodNoArgs() (GH-14267)
This commit is contained in:
parent
38f44b4a4a
commit
762f93ff2e
|
@ -364,6 +364,17 @@ Object Protocol
|
||||||
*NULL* on failure.
|
*NULL* on failure.
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: PyObject* _PyObject_CallMethodNoArgs(PyObject *obj, PyObject *name)
|
||||||
|
|
||||||
|
Call a method of the Python object *obj* without arguments,
|
||||||
|
where the name of the method is given as a Python string object in *name*.
|
||||||
|
|
||||||
|
Return the result of the call on success, or raise an exception and return
|
||||||
|
*NULL* on failure.
|
||||||
|
|
||||||
|
.. versionadded:: 3.9
|
||||||
|
|
||||||
|
|
||||||
.. c:function:: PyObject* _PyObject_Vectorcall(PyObject *callable, PyObject *const *args, size_t nargsf, PyObject *kwnames)
|
.. c:function:: PyObject* _PyObject_Vectorcall(PyObject *callable, PyObject *const *args, size_t nargsf, PyObject *kwnames)
|
||||||
|
|
||||||
Call a callable Python object *callable*, using
|
Call a callable Python object *callable*, using
|
||||||
|
|
|
@ -156,6 +156,13 @@ PyAPI_FUNC(PyObject *) _PyObject_VectorcallMethod(
|
||||||
PyObject *name, PyObject *const *args,
|
PyObject *name, PyObject *const *args,
|
||||||
size_t nargsf, PyObject *kwnames);
|
size_t nargsf, PyObject *kwnames);
|
||||||
|
|
||||||
|
static inline PyObject *
|
||||||
|
_PyObject_CallMethodNoArgs(PyObject *self, PyObject *name)
|
||||||
|
{
|
||||||
|
return _PyObject_VectorcallMethod(name, &self,
|
||||||
|
1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
/* Like PyObject_CallMethod(), but expect a _Py_Identifier*
|
/* Like PyObject_CallMethod(), but expect a _Py_Identifier*
|
||||||
as the method name. */
|
as the method name. */
|
||||||
PyAPI_FUNC(PyObject *) _PyObject_CallMethodId(PyObject *obj,
|
PyAPI_FUNC(PyObject *) _PyObject_CallMethodId(PyObject *obj,
|
||||||
|
@ -184,6 +191,13 @@ _PyObject_VectorcallMethodId(
|
||||||
return _PyObject_VectorcallMethod(oname, args, nargsf, kwnames);
|
return _PyObject_VectorcallMethod(oname, args, nargsf, kwnames);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline PyObject *
|
||||||
|
_PyObject_CallMethodIdNoArgs(PyObject *self, _Py_Identifier *name)
|
||||||
|
{
|
||||||
|
return _PyObject_VectorcallMethodId(name, &self,
|
||||||
|
1 | PY_VECTORCALL_ARGUMENTS_OFFSET, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
PyAPI_FUNC(int) _PyObject_HasLen(PyObject *o);
|
PyAPI_FUNC(int) _PyObject_HasLen(PyObject *o);
|
||||||
|
|
||||||
/* Guess the size of object 'o' using len(o) or o.__length_hint__().
|
/* Guess the size of object 'o' using len(o) or o.__length_hint__().
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
Add :c:func:`_PyObject_VectorcallMethod` for fast calling of methods.
|
Add fast functions for calling methods: :c:func:`_PyObject_VectorcallMethod`
|
||||||
|
and :c:func:`_PyObject_CallMethodNoArgs`
|
||||||
|
|
|
@ -332,7 +332,7 @@ get_event_loop(void)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
loop = _PyObject_CallMethodId(policy, &PyId_get_event_loop, NULL);
|
loop = _PyObject_CallMethodIdNoArgs(policy, &PyId_get_event_loop);
|
||||||
Py_DECREF(policy);
|
Py_DECREF(policy);
|
||||||
return loop;
|
return loop;
|
||||||
}
|
}
|
||||||
|
@ -493,7 +493,7 @@ future_init(FutureObj *fut, PyObject *loop)
|
||||||
}
|
}
|
||||||
fut->fut_loop = loop;
|
fut->fut_loop = loop;
|
||||||
|
|
||||||
res = _PyObject_CallMethodId(fut->fut_loop, &PyId_get_debug, NULL);
|
res = _PyObject_CallMethodIdNoArgs(fut->fut_loop, &PyId_get_debug);
|
||||||
if (res == NULL) {
|
if (res == NULL) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -1295,9 +1295,8 @@ FutureObj_repr(FutureObj *fut)
|
||||||
|
|
||||||
ENSURE_FUTURE_ALIVE(fut)
|
ENSURE_FUTURE_ALIVE(fut)
|
||||||
|
|
||||||
PyObject *rinfo = _PyObject_CallMethodIdObjArgs((PyObject*)fut,
|
PyObject *rinfo = _PyObject_CallMethodIdNoArgs((PyObject*)fut,
|
||||||
&PyId__repr_info,
|
&PyId__repr_info);
|
||||||
NULL);
|
|
||||||
if (rinfo == NULL) {
|
if (rinfo == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -2197,8 +2196,7 @@ _asyncio_Task_cancel_impl(TaskObj *self)
|
||||||
PyObject *res;
|
PyObject *res;
|
||||||
int is_true;
|
int is_true;
|
||||||
|
|
||||||
res = _PyObject_CallMethodId(
|
res = _PyObject_CallMethodIdNoArgs(self->task_fut_waiter, &PyId_cancel);
|
||||||
self->task_fut_waiter, &PyId_cancel, NULL);
|
|
||||||
if (res == NULL) {
|
if (res == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -2735,7 +2733,7 @@ set_exception:
|
||||||
if (task->task_must_cancel) {
|
if (task->task_must_cancel) {
|
||||||
PyObject *r;
|
PyObject *r;
|
||||||
int is_true;
|
int is_true;
|
||||||
r = _PyObject_CallMethodId(result, &PyId_cancel, NULL);
|
r = _PyObject_CallMethodIdNoArgs(result, &PyId_cancel);
|
||||||
if (r == NULL) {
|
if (r == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -2826,7 +2824,7 @@ set_exception:
|
||||||
if (task->task_must_cancel) {
|
if (task->task_must_cancel) {
|
||||||
PyObject *r;
|
PyObject *r;
|
||||||
int is_true;
|
int is_true;
|
||||||
r = _PyObject_CallMethodId(result, &PyId_cancel, NULL);
|
r = _PyObject_CallMethodIdNoArgs(result, &PyId_cancel);
|
||||||
if (r == NULL) {
|
if (r == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2039,7 +2039,7 @@ defdict_reduce(defdictobject *dd, PyObject *Py_UNUSED(ignored))
|
||||||
args = PyTuple_Pack(1, dd->default_factory);
|
args = PyTuple_Pack(1, dd->default_factory);
|
||||||
if (args == NULL)
|
if (args == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
items = _PyObject_CallMethodId((PyObject *)dd, &PyId_items, NULL);
|
items = _PyObject_CallMethodIdNoArgs((PyObject *)dd, &PyId_items);
|
||||||
if (items == NULL) {
|
if (items == NULL) {
|
||||||
Py_DECREF(args);
|
Py_DECREF(args);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -3974,7 +3974,7 @@ _build_result(PyObject *result, PyObject *callargs,
|
||||||
_Py_IDENTIFIER(__ctypes_from_outparam__);
|
_Py_IDENTIFIER(__ctypes_from_outparam__);
|
||||||
|
|
||||||
v = PyTuple_GET_ITEM(callargs, i);
|
v = PyTuple_GET_ITEM(callargs, i);
|
||||||
v = _PyObject_CallMethodId(v, &PyId___ctypes_from_outparam__, NULL);
|
v = _PyObject_CallMethodIdNoArgs(v, &PyId___ctypes_from_outparam__);
|
||||||
if (v == NULL || numretvals == 1) {
|
if (v == NULL || numretvals == 1) {
|
||||||
Py_DECREF(callargs);
|
Py_DECREF(callargs);
|
||||||
return v;
|
return v;
|
||||||
|
|
|
@ -2906,7 +2906,7 @@ _curses_getwin(PyObject *module, PyObject *file)
|
||||||
if (_Py_set_inheritable(fileno(fp), 0, NULL) < 0)
|
if (_Py_set_inheritable(fileno(fp), 0, NULL) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
data = _PyObject_CallMethodId(file, &PyId_read, NULL);
|
data = _PyObject_CallMethodIdNoArgs(file, &PyId_read);
|
||||||
if (data == NULL)
|
if (data == NULL)
|
||||||
goto error;
|
goto error;
|
||||||
if (!PyBytes_Check(data)) {
|
if (!PyBytes_Check(data)) {
|
||||||
|
|
|
@ -1659,7 +1659,7 @@ time_time(void)
|
||||||
if (time != NULL) {
|
if (time != NULL) {
|
||||||
_Py_IDENTIFIER(time);
|
_Py_IDENTIFIER(time);
|
||||||
|
|
||||||
result = _PyObject_CallMethodId(time, &PyId_time, NULL);
|
result = _PyObject_CallMethodIdNoArgs(time, &PyId_time);
|
||||||
Py_DECREF(time);
|
Py_DECREF(time);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
@ -1918,7 +1918,7 @@ get_float_as_integer_ratio(PyObject *floatobj)
|
||||||
PyObject *ratio;
|
PyObject *ratio;
|
||||||
|
|
||||||
assert(floatobj && PyFloat_Check(floatobj));
|
assert(floatobj && PyFloat_Check(floatobj));
|
||||||
ratio = _PyObject_CallMethodId(floatobj, &PyId_as_integer_ratio, NULL);
|
ratio = _PyObject_CallMethodIdNoArgs(floatobj, &PyId_as_integer_ratio);
|
||||||
if (ratio == NULL) {
|
if (ratio == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -3162,7 +3162,7 @@ date_isoformat(PyDateTime_Date *self, PyObject *Py_UNUSED(ignored))
|
||||||
static PyObject *
|
static PyObject *
|
||||||
date_str(PyDateTime_Date *self)
|
date_str(PyDateTime_Date *self)
|
||||||
{
|
{
|
||||||
return _PyObject_CallMethodId((PyObject *)self, &PyId_isoformat, NULL);
|
return _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_isoformat);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3188,7 +3188,7 @@ date_strftime(PyDateTime_Date *self, PyObject *args, PyObject *kw)
|
||||||
&format))
|
&format))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
tuple = _PyObject_CallMethodId((PyObject *)self, &PyId_timetuple, NULL);
|
tuple = _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_timetuple);
|
||||||
if (tuple == NULL)
|
if (tuple == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
result = wrap_strftime((PyObject *)self, format, tuple,
|
result = wrap_strftime((PyObject *)self, format, tuple,
|
||||||
|
@ -4175,7 +4175,7 @@ time_repr(PyDateTime_Time *self)
|
||||||
static PyObject *
|
static PyObject *
|
||||||
time_str(PyDateTime_Time *self)
|
time_str(PyDateTime_Time *self)
|
||||||
{
|
{
|
||||||
return _PyObject_CallMethodId((PyObject *)self, &PyId_isoformat, NULL);
|
return _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_isoformat);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
|
|
|
@ -370,7 +370,7 @@ static PyObject *
|
||||||
dbm__exit__(PyObject *self, PyObject *args)
|
dbm__exit__(PyObject *self, PyObject *args)
|
||||||
{
|
{
|
||||||
_Py_IDENTIFIER(close);
|
_Py_IDENTIFIER(close);
|
||||||
return _PyObject_CallMethodId(self, &PyId_close, NULL);
|
return _PyObject_CallMethodIdNoArgs(self, &PyId_close);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -497,7 +497,7 @@ static PyObject *
|
||||||
dbm__exit__(PyObject *self, PyObject *args)
|
dbm__exit__(PyObject *self, PyObject *args)
|
||||||
{
|
{
|
||||||
_Py_IDENTIFIER(close);
|
_Py_IDENTIFIER(close);
|
||||||
return _PyObject_CallMethodId(self, &PyId_close, NULL);
|
return _PyObject_CallMethodIdNoArgs(self, &PyId_close);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyMethodDef dbm_methods[] = {
|
static PyMethodDef dbm_methods[] = {
|
||||||
|
|
|
@ -400,7 +400,7 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode,
|
||||||
|
|
||||||
/* buffering */
|
/* buffering */
|
||||||
if (buffering < 0) {
|
if (buffering < 0) {
|
||||||
PyObject *res = _PyObject_CallMethodId(raw, &PyId_isatty, NULL);
|
PyObject *res = _PyObject_CallMethodIdNoArgs(raw, &PyId_isatty);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
goto error;
|
goto error;
|
||||||
isatty = PyLong_AsLong(res);
|
isatty = PyLong_AsLong(res);
|
||||||
|
@ -494,7 +494,7 @@ _io_open_impl(PyObject *module, PyObject *file, const char *mode,
|
||||||
if (result != NULL) {
|
if (result != NULL) {
|
||||||
PyObject *exc, *val, *tb, *close_result;
|
PyObject *exc, *val, *tb, *close_result;
|
||||||
PyErr_Fetch(&exc, &val, &tb);
|
PyErr_Fetch(&exc, &val, &tb);
|
||||||
close_result = _PyObject_CallMethodId(result, &PyId_close, NULL);
|
close_result = _PyObject_CallMethodIdNoArgs(result, &PyId_close);
|
||||||
_PyErr_ChainExceptions(exc, val, tb);
|
_PyErr_ChainExceptions(exc, val, tb);
|
||||||
Py_XDECREF(close_result);
|
Py_XDECREF(close_result);
|
||||||
Py_DECREF(result);
|
Py_DECREF(result);
|
||||||
|
|
|
@ -461,7 +461,7 @@ static PyObject *
|
||||||
buffered_simple_flush(buffered *self, PyObject *args)
|
buffered_simple_flush(buffered *self, PyObject *args)
|
||||||
{
|
{
|
||||||
CHECK_INITIALIZED(self)
|
CHECK_INITIALIZED(self)
|
||||||
return PyObject_CallMethodObjArgs(self->raw, _PyIO_str_flush, NULL);
|
return _PyObject_CallMethodNoArgs(self->raw, _PyIO_str_flush);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
@ -513,7 +513,7 @@ buffered_close(buffered *self, PyObject *args)
|
||||||
}
|
}
|
||||||
/* flush() will most probably re-take the lock, so drop it first */
|
/* flush() will most probably re-take the lock, so drop it first */
|
||||||
LEAVE_BUFFERED(self)
|
LEAVE_BUFFERED(self)
|
||||||
res = PyObject_CallMethodObjArgs((PyObject *)self, _PyIO_str_flush, NULL);
|
res = _PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
|
||||||
if (!ENTER_BUFFERED(self))
|
if (!ENTER_BUFFERED(self))
|
||||||
return NULL;
|
return NULL;
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
|
@ -521,7 +521,7 @@ buffered_close(buffered *self, PyObject *args)
|
||||||
else
|
else
|
||||||
Py_DECREF(res);
|
Py_DECREF(res);
|
||||||
|
|
||||||
res = PyObject_CallMethodObjArgs(self->raw, _PyIO_str_close, NULL);
|
res = _PyObject_CallMethodNoArgs(self->raw, _PyIO_str_close);
|
||||||
|
|
||||||
if (self->buffer) {
|
if (self->buffer) {
|
||||||
PyMem_Free(self->buffer);
|
PyMem_Free(self->buffer);
|
||||||
|
@ -545,7 +545,7 @@ buffered_detach(buffered *self, PyObject *Py_UNUSED(ignored))
|
||||||
{
|
{
|
||||||
PyObject *raw, *res;
|
PyObject *raw, *res;
|
||||||
CHECK_INITIALIZED(self)
|
CHECK_INITIALIZED(self)
|
||||||
res = PyObject_CallMethodObjArgs((PyObject *)self, _PyIO_str_flush, NULL);
|
res = _PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
Py_DECREF(res);
|
Py_DECREF(res);
|
||||||
|
@ -562,21 +562,21 @@ static PyObject *
|
||||||
buffered_seekable(buffered *self, PyObject *Py_UNUSED(ignored))
|
buffered_seekable(buffered *self, PyObject *Py_UNUSED(ignored))
|
||||||
{
|
{
|
||||||
CHECK_INITIALIZED(self)
|
CHECK_INITIALIZED(self)
|
||||||
return PyObject_CallMethodObjArgs(self->raw, _PyIO_str_seekable, NULL);
|
return _PyObject_CallMethodNoArgs(self->raw, _PyIO_str_seekable);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
buffered_readable(buffered *self, PyObject *Py_UNUSED(ignored))
|
buffered_readable(buffered *self, PyObject *Py_UNUSED(ignored))
|
||||||
{
|
{
|
||||||
CHECK_INITIALIZED(self)
|
CHECK_INITIALIZED(self)
|
||||||
return PyObject_CallMethodObjArgs(self->raw, _PyIO_str_readable, NULL);
|
return _PyObject_CallMethodNoArgs(self->raw, _PyIO_str_readable);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
buffered_writable(buffered *self, PyObject *Py_UNUSED(ignored))
|
buffered_writable(buffered *self, PyObject *Py_UNUSED(ignored))
|
||||||
{
|
{
|
||||||
CHECK_INITIALIZED(self)
|
CHECK_INITIALIZED(self)
|
||||||
return PyObject_CallMethodObjArgs(self->raw, _PyIO_str_writable, NULL);
|
return _PyObject_CallMethodNoArgs(self->raw, _PyIO_str_writable);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
|
@ -599,14 +599,14 @@ static PyObject *
|
||||||
buffered_fileno(buffered *self, PyObject *Py_UNUSED(ignored))
|
buffered_fileno(buffered *self, PyObject *Py_UNUSED(ignored))
|
||||||
{
|
{
|
||||||
CHECK_INITIALIZED(self)
|
CHECK_INITIALIZED(self)
|
||||||
return PyObject_CallMethodObjArgs(self->raw, _PyIO_str_fileno, NULL);
|
return _PyObject_CallMethodNoArgs(self->raw, _PyIO_str_fileno);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
buffered_isatty(buffered *self, PyObject *Py_UNUSED(ignored))
|
buffered_isatty(buffered *self, PyObject *Py_UNUSED(ignored))
|
||||||
{
|
{
|
||||||
CHECK_INITIALIZED(self)
|
CHECK_INITIALIZED(self)
|
||||||
return PyObject_CallMethodObjArgs(self->raw, _PyIO_str_isatty, NULL);
|
return _PyObject_CallMethodNoArgs(self->raw, _PyIO_str_isatty);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Forward decls */
|
/* Forward decls */
|
||||||
|
@ -670,7 +670,7 @@ _buffered_raw_tell(buffered *self)
|
||||||
{
|
{
|
||||||
Py_off_t n;
|
Py_off_t n;
|
||||||
PyObject *res;
|
PyObject *res;
|
||||||
res = PyObject_CallMethodObjArgs(self->raw, _PyIO_str_tell, NULL);
|
res = _PyObject_CallMethodNoArgs(self->raw, _PyIO_str_tell);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
n = PyNumber_AsOff_t(res, PyExc_ValueError);
|
n = PyNumber_AsOff_t(res, PyExc_ValueError);
|
||||||
|
@ -1350,8 +1350,8 @@ buffered_iternext(buffered *self)
|
||||||
line = _buffered_readline(self, -1);
|
line = _buffered_readline(self, -1);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
line = PyObject_CallMethodObjArgs((PyObject *)self,
|
line = _PyObject_CallMethodNoArgs((PyObject *)self,
|
||||||
_PyIO_str_readline, NULL);
|
_PyIO_str_readline);
|
||||||
if (line && !PyBytes_Check(line)) {
|
if (line && !PyBytes_Check(line)) {
|
||||||
PyErr_Format(PyExc_OSError,
|
PyErr_Format(PyExc_OSError,
|
||||||
"readline() should have returned a bytes object, "
|
"readline() should have returned a bytes object, "
|
||||||
|
@ -1566,7 +1566,7 @@ _bufferedreader_read_all(buffered *self)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Read until EOF or until read() would block. */
|
/* Read until EOF or until read() would block. */
|
||||||
data = PyObject_CallMethodObjArgs(self->raw, _PyIO_str_read, NULL);
|
data = _PyObject_CallMethodNoArgs(self->raw, _PyIO_str_read);
|
||||||
if (data == NULL)
|
if (data == NULL)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
if (data != Py_None && !PyBytes_Check(data)) {
|
if (data != Py_None && !PyBytes_Check(data)) {
|
||||||
|
|
|
@ -235,7 +235,7 @@ _io__IOBase_close_impl(PyObject *self)
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
res = PyObject_CallMethodObjArgs(self, _PyIO_str_flush, NULL);
|
res = _PyObject_CallMethodNoArgs(self, _PyIO_str_flush);
|
||||||
|
|
||||||
PyErr_Fetch(&exc, &val, &tb);
|
PyErr_Fetch(&exc, &val, &tb);
|
||||||
rc = _PyObject_SetAttrId(self, &PyId___IOBase_closed, Py_True);
|
rc = _PyObject_SetAttrId(self, &PyId___IOBase_closed, Py_True);
|
||||||
|
@ -281,8 +281,7 @@ iobase_finalize(PyObject *self)
|
||||||
finalization process. */
|
finalization process. */
|
||||||
if (_PyObject_SetAttrId(self, &PyId__finalizing, Py_True))
|
if (_PyObject_SetAttrId(self, &PyId__finalizing, Py_True))
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
res = PyObject_CallMethodObjArgs((PyObject *) self, _PyIO_str_close,
|
res = _PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_close);
|
||||||
NULL);
|
|
||||||
/* Silencing I/O errors is bad, but printing spurious tracebacks is
|
/* Silencing I/O errors is bad, but printing spurious tracebacks is
|
||||||
equally as bad, and potentially more frequent (because of
|
equally as bad, and potentially more frequent (because of
|
||||||
shutdown issues). */
|
shutdown issues). */
|
||||||
|
@ -383,7 +382,7 @@ _io__IOBase_seekable_impl(PyObject *self)
|
||||||
PyObject *
|
PyObject *
|
||||||
_PyIOBase_check_seekable(PyObject *self, PyObject *args)
|
_PyIOBase_check_seekable(PyObject *self, PyObject *args)
|
||||||
{
|
{
|
||||||
PyObject *res = PyObject_CallMethodObjArgs(self, _PyIO_str_seekable, NULL);
|
PyObject *res = _PyObject_CallMethodNoArgs(self, _PyIO_str_seekable);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (res != Py_True) {
|
if (res != Py_True) {
|
||||||
|
@ -416,7 +415,7 @@ _io__IOBase_readable_impl(PyObject *self)
|
||||||
PyObject *
|
PyObject *
|
||||||
_PyIOBase_check_readable(PyObject *self, PyObject *args)
|
_PyIOBase_check_readable(PyObject *self, PyObject *args)
|
||||||
{
|
{
|
||||||
PyObject *res = PyObject_CallMethodObjArgs(self, _PyIO_str_readable, NULL);
|
PyObject *res = _PyObject_CallMethodNoArgs(self, _PyIO_str_readable);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (res != Py_True) {
|
if (res != Py_True) {
|
||||||
|
@ -449,7 +448,7 @@ _io__IOBase_writable_impl(PyObject *self)
|
||||||
PyObject *
|
PyObject *
|
||||||
_PyIOBase_check_writable(PyObject *self, PyObject *args)
|
_PyIOBase_check_writable(PyObject *self, PyObject *args)
|
||||||
{
|
{
|
||||||
PyObject *res = PyObject_CallMethodObjArgs(self, _PyIO_str_writable, NULL);
|
PyObject *res = _PyObject_CallMethodNoArgs(self, _PyIO_str_writable);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (res != Py_True) {
|
if (res != Py_True) {
|
||||||
|
@ -478,7 +477,7 @@ iobase_enter(PyObject *self, PyObject *args)
|
||||||
static PyObject *
|
static PyObject *
|
||||||
iobase_exit(PyObject *self, PyObject *args)
|
iobase_exit(PyObject *self, PyObject *args)
|
||||||
{
|
{
|
||||||
return PyObject_CallMethodObjArgs(self, _PyIO_str_close, NULL);
|
return _PyObject_CallMethodNoArgs(self, _PyIO_str_close);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Lower-level APIs */
|
/* Lower-level APIs */
|
||||||
|
@ -656,7 +655,7 @@ iobase_iter(PyObject *self)
|
||||||
static PyObject *
|
static PyObject *
|
||||||
iobase_iternext(PyObject *self)
|
iobase_iternext(PyObject *self)
|
||||||
{
|
{
|
||||||
PyObject *line = PyObject_CallMethodObjArgs(self, _PyIO_str_readline, NULL);
|
PyObject *line = _PyObject_CallMethodNoArgs(self, _PyIO_str_readline);
|
||||||
|
|
||||||
if (line == NULL)
|
if (line == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -921,7 +920,7 @@ _io__RawIOBase_read_impl(PyObject *self, Py_ssize_t n)
|
||||||
if (n < 0) {
|
if (n < 0) {
|
||||||
_Py_IDENTIFIER(readall);
|
_Py_IDENTIFIER(readall);
|
||||||
|
|
||||||
return _PyObject_CallMethodId(self, &PyId_readall, NULL);
|
return _PyObject_CallMethodIdNoArgs(self, &PyId_readall);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* TODO: allocate a bytes object directly instead and manually construct
|
/* TODO: allocate a bytes object directly instead and manually construct
|
||||||
|
|
|
@ -408,8 +408,8 @@ stringio_iternext(stringio *self)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
/* XXX is subclassing StringIO really supported? */
|
/* XXX is subclassing StringIO really supported? */
|
||||||
line = PyObject_CallMethodObjArgs((PyObject *)self,
|
line = _PyObject_CallMethodNoArgs((PyObject *)self,
|
||||||
_PyIO_str_readline, NULL);
|
_PyIO_str_readline);
|
||||||
if (line && !PyUnicode_Check(line)) {
|
if (line && !PyUnicode_Check(line)) {
|
||||||
PyErr_Format(PyExc_OSError,
|
PyErr_Format(PyExc_OSError,
|
||||||
"readline() should have returned a str object, "
|
"readline() should have returned a str object, "
|
||||||
|
|
|
@ -527,8 +527,8 @@ _io_IncrementalNewlineDecoder_getstate_impl(nldecoder_object *self)
|
||||||
unsigned long long flag;
|
unsigned long long flag;
|
||||||
|
|
||||||
if (self->decoder != Py_None) {
|
if (self->decoder != Py_None) {
|
||||||
PyObject *state = PyObject_CallMethodObjArgs(self->decoder,
|
PyObject *state = _PyObject_CallMethodNoArgs(self->decoder,
|
||||||
_PyIO_str_getstate, NULL);
|
_PyIO_str_getstate);
|
||||||
if (state == NULL)
|
if (state == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
if (!PyTuple_Check(state)) {
|
if (!PyTuple_Check(state)) {
|
||||||
|
@ -601,7 +601,7 @@ _io_IncrementalNewlineDecoder_reset_impl(nldecoder_object *self)
|
||||||
self->seennl = 0;
|
self->seennl = 0;
|
||||||
self->pendingcr = 0;
|
self->pendingcr = 0;
|
||||||
if (self->decoder != Py_None)
|
if (self->decoder != Py_None)
|
||||||
return PyObject_CallMethodObjArgs(self->decoder, _PyIO_str_reset, NULL);
|
return _PyObject_CallMethodNoArgs(self->decoder, _PyIO_str_reset);
|
||||||
else
|
else
|
||||||
Py_RETURN_NONE;
|
Py_RETURN_NONE;
|
||||||
}
|
}
|
||||||
|
@ -862,7 +862,7 @@ _textiowrapper_set_decoder(textio *self, PyObject *codec_info,
|
||||||
PyObject *res;
|
PyObject *res;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
res = _PyObject_CallMethodId(self->buffer, &PyId_readable, NULL);
|
res = _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_readable);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@ -917,7 +917,7 @@ _textiowrapper_set_encoder(textio *self, PyObject *codec_info,
|
||||||
PyObject *res;
|
PyObject *res;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
res = _PyObject_CallMethodId(self->buffer, &PyId_writable, NULL);
|
res = _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_writable);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@ -963,8 +963,8 @@ _textiowrapper_fix_encoder_state(textio *self)
|
||||||
|
|
||||||
self->encoding_start_of_stream = 1;
|
self->encoding_start_of_stream = 1;
|
||||||
|
|
||||||
PyObject *cookieObj = PyObject_CallMethodObjArgs(
|
PyObject *cookieObj = _PyObject_CallMethodNoArgs(
|
||||||
self->buffer, _PyIO_str_tell, NULL);
|
self->buffer, _PyIO_str_tell);
|
||||||
if (cookieObj == NULL) {
|
if (cookieObj == NULL) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -1126,7 +1126,7 @@ _io_TextIOWrapper___init___impl(textio *self, PyObject *buffer,
|
||||||
state = IO_STATE();
|
state = IO_STATE();
|
||||||
if (state == NULL)
|
if (state == NULL)
|
||||||
goto error;
|
goto error;
|
||||||
fileno = _PyObject_CallMethodId(buffer, &PyId_fileno, NULL);
|
fileno = _PyObject_CallMethodIdNoArgs(buffer, &PyId_fileno);
|
||||||
/* Ignore only AttributeError and UnsupportedOperation */
|
/* Ignore only AttributeError and UnsupportedOperation */
|
||||||
if (fileno == NULL) {
|
if (fileno == NULL) {
|
||||||
if (PyErr_ExceptionMatches(PyExc_AttributeError) ||
|
if (PyErr_ExceptionMatches(PyExc_AttributeError) ||
|
||||||
|
@ -1241,7 +1241,7 @@ _io_TextIOWrapper___init___impl(textio *self, PyObject *buffer,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
res = _PyObject_CallMethodId(buffer, &PyId_seekable, NULL);
|
res = _PyObject_CallMethodIdNoArgs(buffer, &PyId_seekable);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
goto error;
|
goto error;
|
||||||
r = PyObject_IsTrue(res);
|
r = PyObject_IsTrue(res);
|
||||||
|
@ -1386,7 +1386,7 @@ _io_TextIOWrapper_reconfigure_impl(textio *self, PyObject *encoding,
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
PyObject *res = PyObject_CallMethodObjArgs((PyObject *)self, _PyIO_str_flush, NULL);
|
PyObject *res = _PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
|
||||||
if (res == NULL) {
|
if (res == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -1525,7 +1525,7 @@ _io_TextIOWrapper_detach_impl(textio *self)
|
||||||
{
|
{
|
||||||
PyObject *buffer, *res;
|
PyObject *buffer, *res;
|
||||||
CHECK_ATTACHED(self);
|
CHECK_ATTACHED(self);
|
||||||
res = PyObject_CallMethodObjArgs((PyObject *)self, _PyIO_str_flush, NULL);
|
res = _PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
Py_DECREF(res);
|
Py_DECREF(res);
|
||||||
|
@ -1720,7 +1720,7 @@ _io_TextIOWrapper_write_impl(textio *self, PyObject *text)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (needflush) {
|
if (needflush) {
|
||||||
ret = PyObject_CallMethodObjArgs(self->buffer, _PyIO_str_flush, NULL);
|
ret = _PyObject_CallMethodNoArgs(self->buffer, _PyIO_str_flush);
|
||||||
if (ret == NULL)
|
if (ret == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
Py_DECREF(ret);
|
Py_DECREF(ret);
|
||||||
|
@ -1730,7 +1730,7 @@ _io_TextIOWrapper_write_impl(textio *self, PyObject *text)
|
||||||
Py_CLEAR(self->snapshot);
|
Py_CLEAR(self->snapshot);
|
||||||
|
|
||||||
if (self->decoder) {
|
if (self->decoder) {
|
||||||
ret = _PyObject_CallMethodId(self->decoder, &PyId_reset, NULL);
|
ret = _PyObject_CallMethodIdNoArgs(self->decoder, &PyId_reset);
|
||||||
if (ret == NULL)
|
if (ret == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
Py_DECREF(ret);
|
Py_DECREF(ret);
|
||||||
|
@ -1810,9 +1810,8 @@ textiowrapper_read_chunk(textio *self, Py_ssize_t size_hint)
|
||||||
/* To prepare for tell(), we need to snapshot a point in the file
|
/* To prepare for tell(), we need to snapshot a point in the file
|
||||||
* where the decoder's input buffer is empty.
|
* where the decoder's input buffer is empty.
|
||||||
*/
|
*/
|
||||||
|
PyObject *state = _PyObject_CallMethodNoArgs(self->decoder,
|
||||||
PyObject *state = PyObject_CallMethodObjArgs(self->decoder,
|
_PyIO_str_getstate);
|
||||||
_PyIO_str_getstate, NULL);
|
|
||||||
if (state == NULL)
|
if (state == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
/* Given this, we know there was a valid snapshot point
|
/* Given this, we know there was a valid snapshot point
|
||||||
|
@ -1935,7 +1934,7 @@ _io_TextIOWrapper_read_impl(textio *self, Py_ssize_t n)
|
||||||
|
|
||||||
if (n < 0) {
|
if (n < 0) {
|
||||||
/* Read everything */
|
/* Read everything */
|
||||||
PyObject *bytes = _PyObject_CallMethodId(self->buffer, &PyId_read, NULL);
|
PyObject *bytes = _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_read);
|
||||||
PyObject *decoded;
|
PyObject *decoded;
|
||||||
if (bytes == NULL)
|
if (bytes == NULL)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
@ -2396,7 +2395,7 @@ _textiowrapper_decoder_setstate(textio *self, cookie_type *cookie)
|
||||||
utf-16, that we are expecting a BOM).
|
utf-16, that we are expecting a BOM).
|
||||||
*/
|
*/
|
||||||
if (cookie->start_pos == 0 && cookie->dec_flags == 0)
|
if (cookie->start_pos == 0 && cookie->dec_flags == 0)
|
||||||
res = PyObject_CallMethodObjArgs(self->decoder, _PyIO_str_reset, NULL);
|
res = _PyObject_CallMethodNoArgs(self->decoder, _PyIO_str_reset);
|
||||||
else
|
else
|
||||||
res = _PyObject_CallMethodId(self->decoder, &PyId_setstate,
|
res = _PyObject_CallMethodId(self->decoder, &PyId_setstate,
|
||||||
"((yi))", "", cookie->dec_flags);
|
"((yi))", "", cookie->dec_flags);
|
||||||
|
@ -2411,7 +2410,7 @@ _textiowrapper_encoder_reset(textio *self, int start_of_stream)
|
||||||
{
|
{
|
||||||
PyObject *res;
|
PyObject *res;
|
||||||
if (start_of_stream) {
|
if (start_of_stream) {
|
||||||
res = PyObject_CallMethodObjArgs(self->encoder, _PyIO_str_reset, NULL);
|
res = _PyObject_CallMethodNoArgs(self->encoder, _PyIO_str_reset);
|
||||||
self->encoding_start_of_stream = 1;
|
self->encoding_start_of_stream = 1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -2476,7 +2475,7 @@ _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence)
|
||||||
* sync the underlying buffer with the current position.
|
* sync the underlying buffer with the current position.
|
||||||
*/
|
*/
|
||||||
Py_DECREF(cookieObj);
|
Py_DECREF(cookieObj);
|
||||||
cookieObj = _PyObject_CallMethodId((PyObject *)self, &PyId_tell, NULL);
|
cookieObj = _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_tell);
|
||||||
if (cookieObj == NULL)
|
if (cookieObj == NULL)
|
||||||
goto fail;
|
goto fail;
|
||||||
break;
|
break;
|
||||||
|
@ -2492,7 +2491,7 @@ _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence)
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
res = _PyObject_CallMethodId((PyObject *)self, &PyId_flush, NULL);
|
res = _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_flush);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
goto fail;
|
goto fail;
|
||||||
Py_DECREF(res);
|
Py_DECREF(res);
|
||||||
|
@ -2500,7 +2499,7 @@ _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence)
|
||||||
textiowrapper_set_decoded_chars(self, NULL);
|
textiowrapper_set_decoded_chars(self, NULL);
|
||||||
Py_CLEAR(self->snapshot);
|
Py_CLEAR(self->snapshot);
|
||||||
if (self->decoder) {
|
if (self->decoder) {
|
||||||
res = _PyObject_CallMethodId(self->decoder, &PyId_reset, NULL);
|
res = _PyObject_CallMethodIdNoArgs(self->decoder, &PyId_reset);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
goto fail;
|
goto fail;
|
||||||
Py_DECREF(res);
|
Py_DECREF(res);
|
||||||
|
@ -2540,7 +2539,7 @@ _io_TextIOWrapper_seek_impl(textio *self, PyObject *cookieObj, int whence)
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
|
||||||
res = PyObject_CallMethodObjArgs((PyObject *)self, _PyIO_str_flush, NULL);
|
res = _PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
goto fail;
|
goto fail;
|
||||||
Py_DECREF(res);
|
Py_DECREF(res);
|
||||||
|
@ -2663,12 +2662,12 @@ _io_TextIOWrapper_tell_impl(textio *self)
|
||||||
|
|
||||||
if (_textiowrapper_writeflush(self) < 0)
|
if (_textiowrapper_writeflush(self) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
res = _PyObject_CallMethodId((PyObject *)self, &PyId_flush, NULL);
|
res = _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_flush);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
goto fail;
|
goto fail;
|
||||||
Py_DECREF(res);
|
Py_DECREF(res);
|
||||||
|
|
||||||
posobj = _PyObject_CallMethodId(self->buffer, &PyId_tell, NULL);
|
posobj = _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_tell);
|
||||||
if (posobj == NULL)
|
if (posobj == NULL)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
@ -2704,15 +2703,15 @@ _io_TextIOWrapper_tell_impl(textio *self)
|
||||||
chars_to_skip = self->decoded_chars_used;
|
chars_to_skip = self->decoded_chars_used;
|
||||||
|
|
||||||
/* Decoder state will be restored at the end */
|
/* Decoder state will be restored at the end */
|
||||||
saved_state = PyObject_CallMethodObjArgs(self->decoder,
|
saved_state = _PyObject_CallMethodNoArgs(self->decoder,
|
||||||
_PyIO_str_getstate, NULL);
|
_PyIO_str_getstate);
|
||||||
if (saved_state == NULL)
|
if (saved_state == NULL)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
#define DECODER_GETSTATE() do { \
|
#define DECODER_GETSTATE() do { \
|
||||||
PyObject *dec_buffer; \
|
PyObject *dec_buffer; \
|
||||||
PyObject *_state = PyObject_CallMethodObjArgs(self->decoder, \
|
PyObject *_state = _PyObject_CallMethodNoArgs(self->decoder, \
|
||||||
_PyIO_str_getstate, NULL); \
|
_PyIO_str_getstate); \
|
||||||
if (_state == NULL) \
|
if (_state == NULL) \
|
||||||
goto fail; \
|
goto fail; \
|
||||||
if (!PyTuple_Check(_state)) { \
|
if (!PyTuple_Check(_state)) { \
|
||||||
|
@ -2874,7 +2873,7 @@ _io_TextIOWrapper_truncate_impl(textio *self, PyObject *pos)
|
||||||
|
|
||||||
CHECK_ATTACHED(self)
|
CHECK_ATTACHED(self)
|
||||||
|
|
||||||
res = PyObject_CallMethodObjArgs((PyObject *) self, _PyIO_str_flush, NULL);
|
res = _PyObject_CallMethodNoArgs((PyObject *)self, _PyIO_str_flush);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
Py_DECREF(res);
|
Py_DECREF(res);
|
||||||
|
@ -2963,7 +2962,7 @@ _io_TextIOWrapper_fileno_impl(textio *self)
|
||||||
/*[clinic end generated code: output=21490a4c3da13e6c input=c488ca83d0069f9b]*/
|
/*[clinic end generated code: output=21490a4c3da13e6c input=c488ca83d0069f9b]*/
|
||||||
{
|
{
|
||||||
CHECK_ATTACHED(self);
|
CHECK_ATTACHED(self);
|
||||||
return _PyObject_CallMethodId(self->buffer, &PyId_fileno, NULL);
|
return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_fileno);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
|
@ -2975,7 +2974,7 @@ _io_TextIOWrapper_seekable_impl(textio *self)
|
||||||
/*[clinic end generated code: output=ab223dbbcffc0f00 input=8b005ca06e1fca13]*/
|
/*[clinic end generated code: output=ab223dbbcffc0f00 input=8b005ca06e1fca13]*/
|
||||||
{
|
{
|
||||||
CHECK_ATTACHED(self);
|
CHECK_ATTACHED(self);
|
||||||
return _PyObject_CallMethodId(self->buffer, &PyId_seekable, NULL);
|
return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_seekable);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
|
@ -2987,7 +2986,7 @@ _io_TextIOWrapper_readable_impl(textio *self)
|
||||||
/*[clinic end generated code: output=72ff7ba289a8a91b input=0704ea7e01b0d3eb]*/
|
/*[clinic end generated code: output=72ff7ba289a8a91b input=0704ea7e01b0d3eb]*/
|
||||||
{
|
{
|
||||||
CHECK_ATTACHED(self);
|
CHECK_ATTACHED(self);
|
||||||
return _PyObject_CallMethodId(self->buffer, &PyId_readable, NULL);
|
return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_readable);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
|
@ -2999,7 +2998,7 @@ _io_TextIOWrapper_writable_impl(textio *self)
|
||||||
/*[clinic end generated code: output=a728c71790d03200 input=c41740bc9d8636e8]*/
|
/*[clinic end generated code: output=a728c71790d03200 input=c41740bc9d8636e8]*/
|
||||||
{
|
{
|
||||||
CHECK_ATTACHED(self);
|
CHECK_ATTACHED(self);
|
||||||
return _PyObject_CallMethodId(self->buffer, &PyId_writable, NULL);
|
return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_writable);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
|
@ -3011,7 +3010,7 @@ _io_TextIOWrapper_isatty_impl(textio *self)
|
||||||
/*[clinic end generated code: output=12be1a35bace882e input=fb68d9f2c99bbfff]*/
|
/*[clinic end generated code: output=12be1a35bace882e input=fb68d9f2c99bbfff]*/
|
||||||
{
|
{
|
||||||
CHECK_ATTACHED(self);
|
CHECK_ATTACHED(self);
|
||||||
return _PyObject_CallMethodId(self->buffer, &PyId_isatty, NULL);
|
return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_isatty);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
|
@ -3027,7 +3026,7 @@ _io_TextIOWrapper_flush_impl(textio *self)
|
||||||
self->telling = self->seekable;
|
self->telling = self->seekable;
|
||||||
if (_textiowrapper_writeflush(self) < 0)
|
if (_textiowrapper_writeflush(self) < 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
return _PyObject_CallMethodId(self->buffer, &PyId_flush, NULL);
|
return _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_flush);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*[clinic input]
|
/*[clinic input]
|
||||||
|
@ -3064,13 +3063,13 @@ _io_TextIOWrapper_close_impl(textio *self)
|
||||||
else
|
else
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
}
|
}
|
||||||
res = _PyObject_CallMethodId((PyObject *)self, &PyId_flush, NULL);
|
res = _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_flush);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
PyErr_Fetch(&exc, &val, &tb);
|
PyErr_Fetch(&exc, &val, &tb);
|
||||||
else
|
else
|
||||||
Py_DECREF(res);
|
Py_DECREF(res);
|
||||||
|
|
||||||
res = _PyObject_CallMethodId(self->buffer, &PyId_close, NULL);
|
res = _PyObject_CallMethodIdNoArgs(self->buffer, &PyId_close);
|
||||||
if (exc != NULL) {
|
if (exc != NULL) {
|
||||||
_PyErr_ChainExceptions(exc, val, tb);
|
_PyErr_ChainExceptions(exc, val, tb);
|
||||||
Py_CLEAR(res);
|
Py_CLEAR(res);
|
||||||
|
@ -3092,8 +3091,8 @@ textiowrapper_iternext(textio *self)
|
||||||
line = _textiowrapper_readline(self, -1);
|
line = _textiowrapper_readline(self, -1);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
line = PyObject_CallMethodObjArgs((PyObject *)self,
|
line = _PyObject_CallMethodNoArgs((PyObject *)self,
|
||||||
_PyIO_str_readline, NULL);
|
_PyIO_str_readline);
|
||||||
if (line && !PyUnicode_Check(line)) {
|
if (line && !PyUnicode_Check(line)) {
|
||||||
PyErr_Format(PyExc_OSError,
|
PyErr_Format(PyExc_OSError,
|
||||||
"readline() should have returned a str object, "
|
"readline() should have returned a str object, "
|
||||||
|
|
|
@ -3305,7 +3305,7 @@ save_dict(PicklerObject *self, PyObject *obj)
|
||||||
} else {
|
} else {
|
||||||
_Py_IDENTIFIER(items);
|
_Py_IDENTIFIER(items);
|
||||||
|
|
||||||
items = _PyObject_CallMethodId(obj, &PyId_items, NULL);
|
items = _PyObject_CallMethodIdNoArgs(obj, &PyId_items);
|
||||||
if (items == NULL)
|
if (items == NULL)
|
||||||
goto error;
|
goto error;
|
||||||
iter = PyObject_GetIter(items);
|
iter = PyObject_GetIter(items);
|
||||||
|
|
|
@ -60,7 +60,7 @@ _enable_gc(int need_to_reenable_gc, PyObject *gc_module)
|
||||||
|
|
||||||
if (need_to_reenable_gc) {
|
if (need_to_reenable_gc) {
|
||||||
PyErr_Fetch(&exctype, &val, &tb);
|
PyErr_Fetch(&exctype, &val, &tb);
|
||||||
result = _PyObject_CallMethodId(gc_module, &PyId_enable, NULL);
|
result = _PyObject_CallMethodIdNoArgs(gc_module, &PyId_enable);
|
||||||
if (exctype != NULL) {
|
if (exctype != NULL) {
|
||||||
PyErr_Restore(exctype, val, tb);
|
PyErr_Restore(exctype, val, tb);
|
||||||
}
|
}
|
||||||
|
@ -606,7 +606,7 @@ subprocess_fork_exec(PyObject* self, PyObject *args)
|
||||||
gc_module = PyImport_ImportModule("gc");
|
gc_module = PyImport_ImportModule("gc");
|
||||||
if (gc_module == NULL)
|
if (gc_module == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
result = _PyObject_CallMethodId(gc_module, &PyId_isenabled, NULL);
|
result = _PyObject_CallMethodIdNoArgs(gc_module, &PyId_isenabled);
|
||||||
if (result == NULL) {
|
if (result == NULL) {
|
||||||
Py_DECREF(gc_module);
|
Py_DECREF(gc_module);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -617,7 +617,7 @@ subprocess_fork_exec(PyObject* self, PyObject *args)
|
||||||
Py_DECREF(gc_module);
|
Py_DECREF(gc_module);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
result = _PyObject_CallMethodId(gc_module, &PyId_disable, NULL);
|
result = _PyObject_CallMethodIdNoArgs(gc_module, &PyId_disable);
|
||||||
if (result == NULL) {
|
if (result == NULL) {
|
||||||
Py_DECREF(gc_module);
|
Py_DECREF(gc_module);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -713,7 +713,7 @@ void _pysqlite_final_callback(sqlite3_context* context)
|
||||||
PyErr_Fetch(&exception, &value, &tb);
|
PyErr_Fetch(&exception, &value, &tb);
|
||||||
restore = 1;
|
restore = 1;
|
||||||
|
|
||||||
function_result = _PyObject_CallMethodId(*aggregate_instance, &PyId_finalize, NULL);
|
function_result = _PyObject_CallMethodIdNoArgs(*aggregate_instance, &PyId_finalize);
|
||||||
|
|
||||||
Py_DECREF(*aggregate_instance);
|
Py_DECREF(*aggregate_instance);
|
||||||
|
|
||||||
|
@ -1275,7 +1275,7 @@ PyObject* pysqlite_connection_execute(pysqlite_Connection* self, PyObject* args)
|
||||||
PyObject* result = 0;
|
PyObject* result = 0;
|
||||||
PyObject* method = 0;
|
PyObject* method = 0;
|
||||||
|
|
||||||
cursor = _PyObject_CallMethodId((PyObject*)self, &PyId_cursor, NULL);
|
cursor = _PyObject_CallMethodIdNoArgs((PyObject*)self, &PyId_cursor);
|
||||||
if (!cursor) {
|
if (!cursor) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
@ -1304,7 +1304,7 @@ PyObject* pysqlite_connection_executemany(pysqlite_Connection* self, PyObject* a
|
||||||
PyObject* result = 0;
|
PyObject* result = 0;
|
||||||
PyObject* method = 0;
|
PyObject* method = 0;
|
||||||
|
|
||||||
cursor = _PyObject_CallMethodId((PyObject*)self, &PyId_cursor, NULL);
|
cursor = _PyObject_CallMethodIdNoArgs((PyObject*)self, &PyId_cursor);
|
||||||
if (!cursor) {
|
if (!cursor) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
@ -1333,7 +1333,7 @@ PyObject* pysqlite_connection_executescript(pysqlite_Connection* self, PyObject*
|
||||||
PyObject* result = 0;
|
PyObject* result = 0;
|
||||||
PyObject* method = 0;
|
PyObject* method = 0;
|
||||||
|
|
||||||
cursor = _PyObject_CallMethodId((PyObject*)self, &PyId_cursor, NULL);
|
cursor = _PyObject_CallMethodIdNoArgs((PyObject*)self, &PyId_cursor);
|
||||||
if (!cursor) {
|
if (!cursor) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
|
@ -106,7 +106,7 @@ _pysqlite_get_converter(const char *keystr, Py_ssize_t keylen)
|
||||||
if (!key) {
|
if (!key) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
upcase_key = _PyObject_CallMethodId(key, &PyId_upper, NULL);
|
upcase_key = _PyObject_CallMethodIdNoArgs(key, &PyId_upper);
|
||||||
Py_DECREF(key);
|
Py_DECREF(key);
|
||||||
if (!upcase_key) {
|
if (!upcase_key) {
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
|
@ -203,7 +203,7 @@ static PyObject* module_register_converter(PyObject* self, PyObject* args)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* convert the name to upper case */
|
/* convert the name to upper case */
|
||||||
name = _PyObject_CallMethodId(orig_name, &PyId_upper, NULL);
|
name = _PyObject_CallMethodIdNoArgs(orig_name, &PyId_upper);
|
||||||
if (!name) {
|
if (!name) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1358,7 +1358,7 @@ thread_excepthook_file(PyObject *file, PyObject *exc_type, PyObject *exc_value,
|
||||||
_PyErr_Display(file, exc_type, exc_value, exc_traceback);
|
_PyErr_Display(file, exc_type, exc_value, exc_traceback);
|
||||||
|
|
||||||
/* Call file.flush() */
|
/* Call file.flush() */
|
||||||
PyObject *res = _PyObject_CallMethodId(file, &PyId_flush, NULL);
|
PyObject *res = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
|
||||||
if (!res) {
|
if (!res) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -172,7 +172,7 @@ faulthandler_get_fileno(PyObject **file_ptr)
|
||||||
return fd;
|
return fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = _PyObject_CallMethodId(file, &PyId_fileno, NULL);
|
result = _PyObject_CallMethodIdNoArgs(file, &PyId_fileno);
|
||||||
if (result == NULL)
|
if (result == NULL)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@ -190,7 +190,7 @@ faulthandler_get_fileno(PyObject **file_ptr)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
result = _PyObject_CallMethodId(file, &PyId_flush, NULL);
|
result = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
|
||||||
if (result != NULL)
|
if (result != NULL)
|
||||||
Py_DECREF(result);
|
Py_DECREF(result);
|
||||||
else {
|
else {
|
||||||
|
@ -1305,7 +1305,7 @@ faulthandler_init_enable(void)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
PyObject *res = _PyObject_CallMethodId(module, &PyId_enable, NULL);
|
PyObject *res = _PyObject_CallMethodIdNoArgs(module, &PyId_enable);
|
||||||
Py_DECREF(module);
|
Py_DECREF(module);
|
||||||
if (res == NULL) {
|
if (res == NULL) {
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -692,7 +692,7 @@ mmap__exit__method(PyObject *self, PyObject *args)
|
||||||
{
|
{
|
||||||
_Py_IDENTIFIER(close);
|
_Py_IDENTIFIER(close);
|
||||||
|
|
||||||
return _PyObject_CallMethodId(self, &PyId_close, NULL);
|
return _PyObject_CallMethodIdNoArgs(self, &PyId_close);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef MS_WINDOWS
|
#ifdef MS_WINDOWS
|
||||||
|
|
|
@ -539,7 +539,7 @@ oss_exit(PyObject *self, PyObject *unused)
|
||||||
{
|
{
|
||||||
_Py_IDENTIFIER(close);
|
_Py_IDENTIFIER(close);
|
||||||
|
|
||||||
PyObject *ret = _PyObject_CallMethodId(self, &PyId_close, NULL);
|
PyObject *ret = _PyObject_CallMethodIdNoArgs(self, &PyId_close);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
return NULL;
|
return NULL;
|
||||||
Py_DECREF(ret);
|
Py_DECREF(ret);
|
||||||
|
|
|
@ -1634,7 +1634,7 @@ select_epoll___exit___impl(pyEpoll_Object *self, PyObject *exc_type,
|
||||||
{
|
{
|
||||||
_Py_IDENTIFIER(close);
|
_Py_IDENTIFIER(close);
|
||||||
|
|
||||||
return _PyObject_CallMethodId((PyObject *)self, &PyId_close, NULL);
|
return _PyObject_CallMethodIdNoArgs((PyObject *)self, &PyId_close);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyGetSetDef pyepoll_getsetlist[] = {
|
static PyGetSetDef pyepoll_getsetlist[] = {
|
||||||
|
|
|
@ -2221,7 +2221,7 @@ method_output_as_list(PyObject *o, _Py_Identifier *meth_id)
|
||||||
PyObject *it, *result, *meth_output;
|
PyObject *it, *result, *meth_output;
|
||||||
|
|
||||||
assert(o != NULL);
|
assert(o != NULL);
|
||||||
meth_output = _PyObject_CallMethodId(o, meth_id, NULL);
|
meth_output = _PyObject_CallMethodIdNoArgs(o, meth_id);
|
||||||
if (meth_output == NULL || PyList_CheckExact(meth_output)) {
|
if (meth_output == NULL || PyList_CheckExact(meth_output)) {
|
||||||
return meth_output;
|
return meth_output;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1019,28 +1019,28 @@ static PyObject *
|
||||||
mappingproxy_keys(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
|
mappingproxy_keys(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
|
||||||
{
|
{
|
||||||
_Py_IDENTIFIER(keys);
|
_Py_IDENTIFIER(keys);
|
||||||
return _PyObject_CallMethodId(pp->mapping, &PyId_keys, NULL);
|
return _PyObject_CallMethodIdNoArgs(pp->mapping, &PyId_keys);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
mappingproxy_values(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
|
mappingproxy_values(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
|
||||||
{
|
{
|
||||||
_Py_IDENTIFIER(values);
|
_Py_IDENTIFIER(values);
|
||||||
return _PyObject_CallMethodId(pp->mapping, &PyId_values, NULL);
|
return _PyObject_CallMethodIdNoArgs(pp->mapping, &PyId_values);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
mappingproxy_items(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
|
mappingproxy_items(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
|
||||||
{
|
{
|
||||||
_Py_IDENTIFIER(items);
|
_Py_IDENTIFIER(items);
|
||||||
return _PyObject_CallMethodId(pp->mapping, &PyId_items, NULL);
|
return _PyObject_CallMethodIdNoArgs(pp->mapping, &PyId_items);
|
||||||
}
|
}
|
||||||
|
|
||||||
static PyObject *
|
static PyObject *
|
||||||
mappingproxy_copy(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
|
mappingproxy_copy(mappingproxyobject *pp, PyObject *Py_UNUSED(ignored))
|
||||||
{
|
{
|
||||||
_Py_IDENTIFIER(copy);
|
_Py_IDENTIFIER(copy);
|
||||||
return _PyObject_CallMethodId(pp->mapping, &PyId_copy, NULL);
|
return _PyObject_CallMethodIdNoArgs(pp->mapping, &PyId_copy);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* WARNING: mappingproxy methods must not give access
|
/* WARNING: mappingproxy methods must not give access
|
||||||
|
|
|
@ -61,7 +61,7 @@ PyFile_GetLine(PyObject *f, int n)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (n <= 0) {
|
if (n <= 0) {
|
||||||
result = _PyObject_CallMethodIdObjArgs(f, &PyId_readline, NULL);
|
result = _PyObject_CallMethodIdNoArgs(f, &PyId_readline);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
result = _PyObject_CallMethodId(f, &PyId_readline, "i", n);
|
result = _PyObject_CallMethodId(f, &PyId_readline, "i", n);
|
||||||
|
|
|
@ -920,7 +920,7 @@ odict_reduce(register PyODictObject *od, PyObject *Py_UNUSED(ignored))
|
||||||
if (args == NULL)
|
if (args == NULL)
|
||||||
goto Done;
|
goto Done;
|
||||||
|
|
||||||
items = _PyObject_CallMethodIdObjArgs((PyObject *)od, &PyId_items, NULL);
|
items = _PyObject_CallMethodIdNoArgs((PyObject *)od, &PyId_items);
|
||||||
if (items == NULL)
|
if (items == NULL)
|
||||||
goto Done;
|
goto Done;
|
||||||
|
|
||||||
|
@ -1421,8 +1421,8 @@ odict_repr(PyODictObject *self)
|
||||||
Py_SIZE(pieces) = count;
|
Py_SIZE(pieces) = count;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
PyObject *items = _PyObject_CallMethodIdObjArgs((PyObject *)self,
|
PyObject *items = _PyObject_CallMethodIdNoArgs((PyObject *)self,
|
||||||
&PyId_items, NULL);
|
&PyId_items);
|
||||||
if (items == NULL)
|
if (items == NULL)
|
||||||
goto Done;
|
goto Done;
|
||||||
pieces = PySequence_List(items);
|
pieces = PySequence_List(items);
|
||||||
|
|
|
@ -4425,7 +4425,7 @@ _PyObject_GetItemsIter(PyObject *obj, PyObject **listitems,
|
||||||
PyObject *items;
|
PyObject *items;
|
||||||
_Py_IDENTIFIER(items);
|
_Py_IDENTIFIER(items);
|
||||||
|
|
||||||
items = _PyObject_CallMethodIdObjArgs(obj, &PyId_items, NULL);
|
items = _PyObject_CallMethodIdNoArgs(obj, &PyId_items);
|
||||||
if (items == NULL) {
|
if (items == NULL) {
|
||||||
Py_CLEAR(*listitems);
|
Py_CLEAR(*listitems);
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -455,7 +455,7 @@ proxy_checkref(PyWeakReference *proxy)
|
||||||
method(PyObject *proxy, PyObject *Py_UNUSED(ignored)) { \
|
method(PyObject *proxy, PyObject *Py_UNUSED(ignored)) { \
|
||||||
_Py_IDENTIFIER(special); \
|
_Py_IDENTIFIER(special); \
|
||||||
UNWRAP(proxy); \
|
UNWRAP(proxy); \
|
||||||
return _PyObject_CallMethodId(proxy, &PyId_##special, NULL); \
|
return _PyObject_CallMethodIdNoArgs(proxy, &PyId_##special); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1889,7 +1889,7 @@ builtin_print(PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject
|
||||||
if (do_flush == -1)
|
if (do_flush == -1)
|
||||||
return NULL;
|
return NULL;
|
||||||
else if (do_flush) {
|
else if (do_flush) {
|
||||||
tmp = _PyObject_CallMethodId(file, &PyId_flush, NULL);
|
tmp = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
|
||||||
if (tmp == NULL)
|
if (tmp == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
else
|
else
|
||||||
|
@ -1959,7 +1959,7 @@ builtin_input_impl(PyObject *module, PyObject *prompt)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* First of all, flush stderr */
|
/* First of all, flush stderr */
|
||||||
tmp = _PyObject_CallMethodId(ferr, &PyId_flush, NULL);
|
tmp = _PyObject_CallMethodIdNoArgs(ferr, &PyId_flush);
|
||||||
if (tmp == NULL)
|
if (tmp == NULL)
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
else
|
else
|
||||||
|
@ -1968,7 +1968,7 @@ builtin_input_impl(PyObject *module, PyObject *prompt)
|
||||||
/* We should only use (GNU) readline if Python's sys.stdin and
|
/* We should only use (GNU) readline if Python's sys.stdin and
|
||||||
sys.stdout are the same as C's stdin and stdout, because we
|
sys.stdout are the same as C's stdin and stdout, because we
|
||||||
need to pass it those. */
|
need to pass it those. */
|
||||||
tmp = _PyObject_CallMethodId(fin, &PyId_fileno, NULL);
|
tmp = _PyObject_CallMethodIdNoArgs(fin, &PyId_fileno);
|
||||||
if (tmp == NULL) {
|
if (tmp == NULL) {
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
tty = 0;
|
tty = 0;
|
||||||
|
@ -1981,7 +1981,7 @@ builtin_input_impl(PyObject *module, PyObject *prompt)
|
||||||
tty = fd == fileno(stdin) && isatty(fd);
|
tty = fd == fileno(stdin) && isatty(fd);
|
||||||
}
|
}
|
||||||
if (tty) {
|
if (tty) {
|
||||||
tmp = _PyObject_CallMethodId(fout, &PyId_fileno, NULL);
|
tmp = _PyObject_CallMethodIdNoArgs(fout, &PyId_fileno);
|
||||||
if (tmp == NULL) {
|
if (tmp == NULL) {
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
tty = 0;
|
tty = 0;
|
||||||
|
@ -2019,7 +2019,7 @@ builtin_input_impl(PyObject *module, PyObject *prompt)
|
||||||
stdin_errors_str = PyUnicode_AsUTF8(stdin_errors);
|
stdin_errors_str = PyUnicode_AsUTF8(stdin_errors);
|
||||||
if (!stdin_encoding_str || !stdin_errors_str)
|
if (!stdin_encoding_str || !stdin_errors_str)
|
||||||
goto _readline_errors;
|
goto _readline_errors;
|
||||||
tmp = _PyObject_CallMethodId(fout, &PyId_flush, NULL);
|
tmp = _PyObject_CallMethodIdNoArgs(fout, &PyId_flush);
|
||||||
if (tmp == NULL)
|
if (tmp == NULL)
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
else
|
else
|
||||||
|
@ -2114,7 +2114,7 @@ builtin_input_impl(PyObject *module, PyObject *prompt)
|
||||||
if (PyFile_WriteObject(prompt, fout, Py_PRINT_RAW) != 0)
|
if (PyFile_WriteObject(prompt, fout, Py_PRINT_RAW) != 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
tmp = _PyObject_CallMethodId(fout, &PyId_flush, NULL);
|
tmp = _PyObject_CallMethodIdNoArgs(fout, &PyId_flush);
|
||||||
if (tmp == NULL)
|
if (tmp == NULL)
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
else
|
else
|
||||||
|
|
|
@ -1263,7 +1263,7 @@ write_unraisable_exc_file(PyThreadState *tstate, PyObject *exc_type,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Explicitly call file.flush() */
|
/* Explicitly call file.flush() */
|
||||||
PyObject *res = _PyObject_CallMethodId(file, &PyId_flush, NULL);
|
PyObject *res = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
|
||||||
if (!res) {
|
if (!res) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -539,7 +539,7 @@ _PyImport_Cleanup(PyThreadState *tstate)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
_Py_IDENTIFIER(clear);
|
_Py_IDENTIFIER(clear);
|
||||||
if (_PyObject_CallMethodId(modules, &PyId_clear, "") == NULL) {
|
if (_PyObject_CallMethodIdNoArgs(modules, &PyId_clear) == NULL) {
|
||||||
PyErr_WriteUnraisable(NULL);
|
PyErr_WriteUnraisable(NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1106,7 +1106,7 @@ flush_std_files(void)
|
||||||
int status = 0;
|
int status = 0;
|
||||||
|
|
||||||
if (fout != NULL && fout != Py_None && !file_is_closed(fout)) {
|
if (fout != NULL && fout != Py_None && !file_is_closed(fout)) {
|
||||||
tmp = _PyObject_CallMethodId(fout, &PyId_flush, NULL);
|
tmp = _PyObject_CallMethodIdNoArgs(fout, &PyId_flush);
|
||||||
if (tmp == NULL) {
|
if (tmp == NULL) {
|
||||||
PyErr_WriteUnraisable(fout);
|
PyErr_WriteUnraisable(fout);
|
||||||
status = -1;
|
status = -1;
|
||||||
|
@ -1116,7 +1116,7 @@ flush_std_files(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ferr != NULL && ferr != Py_None && !file_is_closed(ferr)) {
|
if (ferr != NULL && ferr != Py_None && !file_is_closed(ferr)) {
|
||||||
tmp = _PyObject_CallMethodId(ferr, &PyId_flush, NULL);
|
tmp = _PyObject_CallMethodIdNoArgs(ferr, &PyId_flush);
|
||||||
if (tmp == NULL) {
|
if (tmp == NULL) {
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
status = -1;
|
status = -1;
|
||||||
|
@ -1762,7 +1762,7 @@ create_stdio(const PyConfig *config, PyObject* io,
|
||||||
text = PyUnicode_FromString(name);
|
text = PyUnicode_FromString(name);
|
||||||
if (text == NULL || _PyObject_SetAttrId(raw, &PyId_name, text) < 0)
|
if (text == NULL || _PyObject_SetAttrId(raw, &PyId_name, text) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
res = _PyObject_CallMethodId(raw, &PyId_isatty, NULL);
|
res = _PyObject_CallMethodIdNoArgs(raw, &PyId_isatty);
|
||||||
if (res == NULL)
|
if (res == NULL)
|
||||||
goto error;
|
goto error;
|
||||||
isatty = PyObject_IsTrue(res);
|
isatty = PyObject_IsTrue(res);
|
||||||
|
@ -2026,7 +2026,7 @@ _Py_FatalError_PrintExc(int fd)
|
||||||
Py_XDECREF(tb);
|
Py_XDECREF(tb);
|
||||||
|
|
||||||
/* sys.stderr may be buffered: call sys.stderr.flush() */
|
/* sys.stderr may be buffered: call sys.stderr.flush() */
|
||||||
res = _PyObject_CallMethodId(ferr, &PyId_flush, NULL);
|
res = _PyObject_CallMethodIdNoArgs(ferr, &PyId_flush);
|
||||||
if (res == NULL) {
|
if (res == NULL) {
|
||||||
_PyErr_Clear(tstate);
|
_PyErr_Clear(tstate);
|
||||||
}
|
}
|
||||||
|
@ -2220,7 +2220,7 @@ wait_for_thread_shutdown(PyThreadState *tstate)
|
||||||
/* else: threading not imported */
|
/* else: threading not imported */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
result = _PyObject_CallMethodId(threading, &PyId__shutdown, NULL);
|
result = _PyObject_CallMethodIdNoArgs(threading, &PyId__shutdown);
|
||||||
if (result == NULL) {
|
if (result == NULL) {
|
||||||
PyErr_WriteUnraisable(threading);
|
PyErr_WriteUnraisable(threading);
|
||||||
}
|
}
|
||||||
|
|
|
@ -978,7 +978,7 @@ _PyErr_Display(PyObject *file, PyObject *exception, PyObject *value, PyObject *t
|
||||||
Py_XDECREF(seen);
|
Py_XDECREF(seen);
|
||||||
|
|
||||||
/* Call file.flush() */
|
/* Call file.flush() */
|
||||||
PyObject *res = _PyObject_CallMethodId(file, &PyId_flush, NULL);
|
PyObject *res = _PyObject_CallMethodIdNoArgs(file, &PyId_flush);
|
||||||
if (!res) {
|
if (!res) {
|
||||||
/* Silently ignore file.flush() error */
|
/* Silently ignore file.flush() error */
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
|
@ -1072,7 +1072,7 @@ flush_io(void)
|
||||||
|
|
||||||
f = _PySys_GetObjectId(&PyId_stderr);
|
f = _PySys_GetObjectId(&PyId_stderr);
|
||||||
if (f != NULL) {
|
if (f != NULL) {
|
||||||
r = _PyObject_CallMethodId(f, &PyId_flush, NULL);
|
r = _PyObject_CallMethodIdNoArgs(f, &PyId_flush);
|
||||||
if (r)
|
if (r)
|
||||||
Py_DECREF(r);
|
Py_DECREF(r);
|
||||||
else
|
else
|
||||||
|
@ -1080,7 +1080,7 @@ flush_io(void)
|
||||||
}
|
}
|
||||||
f = _PySys_GetObjectId(&PyId_stdout);
|
f = _PySys_GetObjectId(&PyId_stdout);
|
||||||
if (f != NULL) {
|
if (f != NULL) {
|
||||||
r = _PyObject_CallMethodId(f, &PyId_flush, NULL);
|
r = _PyObject_CallMethodIdNoArgs(f, &PyId_flush);
|
||||||
if (r)
|
if (r)
|
||||||
Py_DECREF(r);
|
Py_DECREF(r);
|
||||||
else
|
else
|
||||||
|
|
|
@ -430,7 +430,7 @@ _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno, int indent)
|
||||||
if (fob == NULL) {
|
if (fob == NULL) {
|
||||||
PyErr_Clear();
|
PyErr_Clear();
|
||||||
|
|
||||||
res = _PyObject_CallMethodId(binary, &PyId_close, NULL);
|
res = _PyObject_CallMethodIdNoArgs(binary, &PyId_close);
|
||||||
Py_DECREF(binary);
|
Py_DECREF(binary);
|
||||||
if (res)
|
if (res)
|
||||||
Py_DECREF(res);
|
Py_DECREF(res);
|
||||||
|
@ -450,7 +450,7 @@ _Py_DisplaySourceLine(PyObject *f, PyObject *filename, int lineno, int indent)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
res = _PyObject_CallMethodId(fob, &PyId_close, NULL);
|
res = _PyObject_CallMethodIdNoArgs(fob, &PyId_close);
|
||||||
if (res)
|
if (res)
|
||||||
Py_DECREF(res);
|
Py_DECREF(res);
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue