GH-90699: Remove `_Py_IDENTIFIER` usage from `_asyncio` module (#99010)

This commit is contained in:
Kumar Aditya 2022-11-02 22:46:06 +05:30 committed by GitHub
parent f7241aaf6f
commit 18fc232e07
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 166 additions and 69 deletions

View File

@ -53,8 +53,11 @@ struct _Py_global_strings {
} literals;
struct {
STRUCT_FOR_ID(CANCELLED)
STRUCT_FOR_ID(FINISHED)
STRUCT_FOR_ID(False)
STRUCT_FOR_ID(JSONDecodeError)
STRUCT_FOR_ID(PENDING)
STRUCT_FOR_ID(Py_Repr)
STRUCT_FOR_ID(TextIOWrapper)
STRUCT_FOR_ID(True)
@ -73,6 +76,7 @@ struct _Py_global_strings {
STRUCT_FOR_ID(__anext__)
STRUCT_FOR_ID(__annotations__)
STRUCT_FOR_ID(__args__)
STRUCT_FOR_ID(__asyncio_running_event_loop__)
STRUCT_FOR_ID(__await__)
STRUCT_FOR_ID(__bases__)
STRUCT_FOR_ID(__bool__)
@ -214,6 +218,7 @@ struct _Py_global_strings {
STRUCT_FOR_ID(__xor__)
STRUCT_FOR_ID(_abc_impl)
STRUCT_FOR_ID(_annotation)
STRUCT_FOR_ID(_asyncio_future_blocking)
STRUCT_FOR_ID(_blksize)
STRUCT_FOR_ID(_bootstrap)
STRUCT_FOR_ID(_dealloc_warn)
@ -226,6 +231,7 @@ struct _Py_global_strings {
STRUCT_FOR_ID(_initializing)
STRUCT_FOR_ID(_is_text_encoding)
STRUCT_FOR_ID(_lock_unlock_module)
STRUCT_FOR_ID(_loop)
STRUCT_FOR_ID(_showwarnmsg)
STRUCT_FOR_ID(_shutdown)
STRUCT_FOR_ID(_slotnames)
@ -236,6 +242,7 @@ struct _Py_global_strings {
STRUCT_FOR_ID(abs_tol)
STRUCT_FOR_ID(access)
STRUCT_FOR_ID(add)
STRUCT_FOR_ID(add_done_callback)
STRUCT_FOR_ID(after_in_child)
STRUCT_FOR_ID(after_in_parent)
STRUCT_FOR_ID(aggregate_class)
@ -269,6 +276,9 @@ struct _Py_global_strings {
STRUCT_FOR_ID(cadata)
STRUCT_FOR_ID(cafile)
STRUCT_FOR_ID(call)
STRUCT_FOR_ID(call_exception_handler)
STRUCT_FOR_ID(call_soon)
STRUCT_FOR_ID(cancel)
STRUCT_FOR_ID(capath)
STRUCT_FOR_ID(category)
STRUCT_FOR_ID(cb_type)
@ -326,6 +336,7 @@ struct _Py_global_strings {
STRUCT_FOR_ID(digest_size)
STRUCT_FOR_ID(digestmod)
STRUCT_FOR_ID(dir_fd)
STRUCT_FOR_ID(discard)
STRUCT_FOR_ID(dispatch_table)
STRUCT_FOR_ID(displayhook)
STRUCT_FOR_ID(dklen)
@ -379,9 +390,13 @@ struct _Py_global_strings {
STRUCT_FOR_ID(fromlist)
STRUCT_FOR_ID(fset)
STRUCT_FOR_ID(func)
STRUCT_FOR_ID(future)
STRUCT_FOR_ID(generation)
STRUCT_FOR_ID(genexpr)
STRUCT_FOR_ID(get)
STRUCT_FOR_ID(get_debug)
STRUCT_FOR_ID(get_event_loop)
STRUCT_FOR_ID(get_loop)
STRUCT_FOR_ID(get_source)
STRUCT_FOR_ID(getattr)
STRUCT_FOR_ID(getstate)
@ -592,6 +607,7 @@ struct _Py_global_strings {
STRUCT_FOR_ID(sort)
STRUCT_FOR_ID(sound)
STRUCT_FOR_ID(source)
STRUCT_FOR_ID(source_traceback)
STRUCT_FOR_ID(src)
STRUCT_FOR_ID(src_dir_fd)
STRUCT_FOR_ID(stacklevel)

View File

@ -562,8 +562,11 @@ extern "C" {
INIT_STR(utf_8, "utf-8"), \
}, \
.identifiers = { \
INIT_ID(CANCELLED), \
INIT_ID(FINISHED), \
INIT_ID(False), \
INIT_ID(JSONDecodeError), \
INIT_ID(PENDING), \
INIT_ID(Py_Repr), \
INIT_ID(TextIOWrapper), \
INIT_ID(True), \
@ -582,6 +585,7 @@ extern "C" {
INIT_ID(__anext__), \
INIT_ID(__annotations__), \
INIT_ID(__args__), \
INIT_ID(__asyncio_running_event_loop__), \
INIT_ID(__await__), \
INIT_ID(__bases__), \
INIT_ID(__bool__), \
@ -723,6 +727,7 @@ extern "C" {
INIT_ID(__xor__), \
INIT_ID(_abc_impl), \
INIT_ID(_annotation), \
INIT_ID(_asyncio_future_blocking), \
INIT_ID(_blksize), \
INIT_ID(_bootstrap), \
INIT_ID(_dealloc_warn), \
@ -735,6 +740,7 @@ extern "C" {
INIT_ID(_initializing), \
INIT_ID(_is_text_encoding), \
INIT_ID(_lock_unlock_module), \
INIT_ID(_loop), \
INIT_ID(_showwarnmsg), \
INIT_ID(_shutdown), \
INIT_ID(_slotnames), \
@ -745,6 +751,7 @@ extern "C" {
INIT_ID(abs_tol), \
INIT_ID(access), \
INIT_ID(add), \
INIT_ID(add_done_callback), \
INIT_ID(after_in_child), \
INIT_ID(after_in_parent), \
INIT_ID(aggregate_class), \
@ -778,6 +785,9 @@ extern "C" {
INIT_ID(cadata), \
INIT_ID(cafile), \
INIT_ID(call), \
INIT_ID(call_exception_handler), \
INIT_ID(call_soon), \
INIT_ID(cancel), \
INIT_ID(capath), \
INIT_ID(category), \
INIT_ID(cb_type), \
@ -835,6 +845,7 @@ extern "C" {
INIT_ID(digest_size), \
INIT_ID(digestmod), \
INIT_ID(dir_fd), \
INIT_ID(discard), \
INIT_ID(dispatch_table), \
INIT_ID(displayhook), \
INIT_ID(dklen), \
@ -888,9 +899,13 @@ extern "C" {
INIT_ID(fromlist), \
INIT_ID(fset), \
INIT_ID(func), \
INIT_ID(future), \
INIT_ID(generation), \
INIT_ID(genexpr), \
INIT_ID(get), \
INIT_ID(get_debug), \
INIT_ID(get_event_loop), \
INIT_ID(get_loop), \
INIT_ID(get_source), \
INIT_ID(getattr), \
INIT_ID(getstate), \
@ -1101,6 +1116,7 @@ extern "C" {
INIT_ID(sort), \
INIT_ID(sound), \
INIT_ID(source), \
INIT_ID(source_traceback), \
INIT_ID(src), \
INIT_ID(src_dir_fd), \
INIT_ID(stacklevel), \
@ -1440,10 +1456,16 @@ extern "C" {
static inline void
_PyUnicode_InitStaticStrings(void) {
PyObject *string;
string = &_Py_ID(CANCELLED);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(FINISHED);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(False);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(JSONDecodeError);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(PENDING);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(Py_Repr);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(TextIOWrapper);
@ -1480,6 +1502,8 @@ _PyUnicode_InitStaticStrings(void) {
PyUnicode_InternInPlace(&string);
string = &_Py_ID(__args__);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(__asyncio_running_event_loop__);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(__await__);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(__bases__);
@ -1762,6 +1786,8 @@ _PyUnicode_InitStaticStrings(void) {
PyUnicode_InternInPlace(&string);
string = &_Py_ID(_annotation);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(_asyncio_future_blocking);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(_blksize);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(_bootstrap);
@ -1786,6 +1812,8 @@ _PyUnicode_InitStaticStrings(void) {
PyUnicode_InternInPlace(&string);
string = &_Py_ID(_lock_unlock_module);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(_loop);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(_showwarnmsg);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(_shutdown);
@ -1806,6 +1834,8 @@ _PyUnicode_InitStaticStrings(void) {
PyUnicode_InternInPlace(&string);
string = &_Py_ID(add);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(add_done_callback);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(after_in_child);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(after_in_parent);
@ -1872,6 +1902,12 @@ _PyUnicode_InitStaticStrings(void) {
PyUnicode_InternInPlace(&string);
string = &_Py_ID(call);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(call_exception_handler);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(call_soon);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(cancel);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(capath);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(category);
@ -1986,6 +2022,8 @@ _PyUnicode_InitStaticStrings(void) {
PyUnicode_InternInPlace(&string);
string = &_Py_ID(dir_fd);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(discard);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(dispatch_table);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(displayhook);
@ -2092,12 +2130,20 @@ _PyUnicode_InitStaticStrings(void) {
PyUnicode_InternInPlace(&string);
string = &_Py_ID(func);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(future);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(generation);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(genexpr);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(get);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(get_debug);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(get_event_loop);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(get_loop);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(get_source);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(getattr);
@ -2518,6 +2564,8 @@ _PyUnicode_InitStaticStrings(void) {
PyUnicode_InternInPlace(&string);
string = &_Py_ID(source);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(source_traceback);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(src);
PyUnicode_InternInPlace(&string);
string = &_Py_ID(src_dir_fd);
@ -4821,6 +4869,14 @@ _PyStaticObjects_CheckRefcnt(void) {
_PyObject_Dump((PyObject *)&_Py_STR(utf_8));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(CANCELLED)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(CANCELLED));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(FINISHED)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(FINISHED));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(False)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(False));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
@ -4829,6 +4885,10 @@ _PyStaticObjects_CheckRefcnt(void) {
_PyObject_Dump((PyObject *)&_Py_ID(JSONDecodeError));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(PENDING)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(PENDING));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(Py_Repr)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(Py_Repr));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
@ -4901,6 +4961,10 @@ _PyStaticObjects_CheckRefcnt(void) {
_PyObject_Dump((PyObject *)&_Py_ID(__args__));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(__asyncio_running_event_loop__)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(__asyncio_running_event_loop__));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(__await__)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(__await__));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
@ -5465,6 +5529,10 @@ _PyStaticObjects_CheckRefcnt(void) {
_PyObject_Dump((PyObject *)&_Py_ID(_annotation));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(_asyncio_future_blocking)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(_asyncio_future_blocking));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(_blksize)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(_blksize));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
@ -5513,6 +5581,10 @@ _PyStaticObjects_CheckRefcnt(void) {
_PyObject_Dump((PyObject *)&_Py_ID(_lock_unlock_module));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(_loop)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(_loop));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(_showwarnmsg)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(_showwarnmsg));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
@ -5553,6 +5625,10 @@ _PyStaticObjects_CheckRefcnt(void) {
_PyObject_Dump((PyObject *)&_Py_ID(add));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(add_done_callback)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(add_done_callback));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(after_in_child)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(after_in_child));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
@ -5685,6 +5761,18 @@ _PyStaticObjects_CheckRefcnt(void) {
_PyObject_Dump((PyObject *)&_Py_ID(call));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(call_exception_handler)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(call_exception_handler));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(call_soon)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(call_soon));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(cancel)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(cancel));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(capath)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(capath));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
@ -5913,6 +6001,10 @@ _PyStaticObjects_CheckRefcnt(void) {
_PyObject_Dump((PyObject *)&_Py_ID(dir_fd));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(discard)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(discard));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(dispatch_table)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(dispatch_table));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
@ -6125,6 +6217,10 @@ _PyStaticObjects_CheckRefcnt(void) {
_PyObject_Dump((PyObject *)&_Py_ID(func));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(future)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(future));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(generation)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(generation));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
@ -6137,6 +6233,18 @@ _PyStaticObjects_CheckRefcnt(void) {
_PyObject_Dump((PyObject *)&_Py_ID(get));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(get_debug)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(get_debug));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(get_event_loop)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(get_event_loop));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(get_loop)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(get_loop));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(get_source)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(get_source));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
@ -6977,6 +7085,10 @@ _PyStaticObjects_CheckRefcnt(void) {
_PyObject_Dump((PyObject *)&_Py_ID(source));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(source_traceback)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(source_traceback));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");
};
if (Py_REFCNT((PyObject *)&_Py_ID(src)) < _PyObject_IMMORTAL_REFCNT) {
_PyObject_Dump((PyObject *)&_Py_ID(src));
Py_FatalError("immortal object has less refcnt than expected _PyObject_IMMORTAL_REFCNT");

View File

@ -1,11 +1,11 @@
#ifndef Py_BUILD_CORE_BUILTIN
# define Py_BUILD_CORE_MODULE 1
#endif
#define NEEDS_PY_IDENTIFIER
#include "Python.h"
#include "pycore_pyerrors.h" // _PyErr_ClearExcState()
#include "pycore_pystate.h" // _PyThreadState_GET()
#include "pycore_runtime_init.h" // _Py_ID()
#include <stddef.h> // offsetof()
@ -15,16 +15,6 @@ module _asyncio
/*[clinic end generated code: output=da39a3ee5e6b4b0d input=8fd17862aa989c69]*/
/* identifiers used from some functions */
_Py_IDENTIFIER(__asyncio_running_event_loop__);
_Py_IDENTIFIER(_asyncio_future_blocking);
_Py_IDENTIFIER(add_done_callback);
_Py_IDENTIFIER(call_soon);
_Py_IDENTIFIER(cancel);
_Py_IDENTIFIER(get_event_loop);
_Py_IDENTIFIER(throw);
/* State of the _asyncio module */
static PyObject *asyncio_mod;
static PyObject *traceback_extract_stack;
@ -205,8 +195,6 @@ get_future_loop(PyObject *fut)
{
/* Implementation of `asyncio.futures._get_loop` */
_Py_IDENTIFIER(get_loop);
_Py_IDENTIFIER(_loop);
PyObject *getloop;
if (Future_CheckExact(fut) || Task_CheckExact(fut)) {
@ -215,7 +203,7 @@ get_future_loop(PyObject *fut)
return loop;
}
if (_PyObject_LookupAttrId(fut, &PyId_get_loop, &getloop) < 0) {
if (_PyObject_LookupAttr(fut, &_Py_ID(get_loop), &getloop) < 0) {
return NULL;
}
if (getloop != NULL) {
@ -224,7 +212,7 @@ get_future_loop(PyObject *fut)
return res;
}
return _PyObject_GetAttrId(fut, &PyId__loop);
return PyObject_GetAttr(fut, &_Py_ID(_loop));
}
@ -245,8 +233,8 @@ get_running_loop(PyObject **loop)
goto not_found;
}
rl = _PyDict_GetItemIdWithError(
ts_dict, &PyId___asyncio_running_event_loop__); // borrowed
rl = PyDict_GetItemWithError(
ts_dict, &_Py_ID(__asyncio_running_event_loop__)); // borrowed
if (rl == NULL) {
if (PyErr_Occurred()) {
goto error;
@ -311,8 +299,8 @@ set_running_loop(PyObject *loop)
return -1;
}
if (_PyDict_SetItemId(
ts_dict, &PyId___asyncio_running_event_loop__, (PyObject *)rl) < 0)
if (PyDict_SetItem(
ts_dict, &_Py_ID(__asyncio_running_event_loop__), (PyObject *)rl) < 0)
{
Py_DECREF(rl); // will cleanup loop & current_pid
return -1;
@ -351,7 +339,7 @@ get_event_loop(int stacklevel)
return NULL;
}
loop = _PyObject_CallMethodIdNoArgs(policy, &PyId_get_event_loop);
loop = PyObject_CallMethodNoArgs(policy, &_Py_ID(get_event_loop));
Py_DECREF(policy);
return loop;
}
@ -365,13 +353,13 @@ call_soon(PyObject *loop, PyObject *func, PyObject *arg, PyObject *ctx)
Py_ssize_t nargs;
if (ctx == NULL) {
handle = _PyObject_CallMethodIdObjArgs(
loop, &PyId_call_soon, func, arg, NULL);
handle = PyObject_CallMethodObjArgs(
loop, &_Py_ID(call_soon), func, arg, NULL);
}
else {
/* Use FASTCALL to pass a keyword-only argument to call_soon */
PyObject *callable = _PyObject_GetAttrId(loop, &PyId_call_soon);
PyObject *callable = PyObject_GetAttr(loop, &_Py_ID(call_soon));
if (callable == NULL) {
return -1;
}
@ -486,7 +474,6 @@ future_init(FutureObj *fut, PyObject *loop)
{
PyObject *res;
int is_true;
_Py_IDENTIFIER(get_debug);
// Same to FutureObj_clear() but not clearing fut->dict
Py_CLEAR(fut->fut_loop);
@ -515,7 +502,7 @@ future_init(FutureObj *fut, PyObject *loop)
}
fut->fut_loop = loop;
res = _PyObject_CallMethodIdNoArgs(fut->fut_loop, &PyId_get_debug);
res = PyObject_CallMethodNoArgs(fut->fut_loop, &_Py_ID(get_debug));
if (res == NULL) {
return -1;
}
@ -1356,22 +1343,19 @@ FutureObj_set_cancel_message(FutureObj *fut, PyObject *msg,
static PyObject *
FutureObj_get_state(FutureObj *fut, void *Py_UNUSED(ignored))
{
_Py_IDENTIFIER(PENDING);
_Py_IDENTIFIER(CANCELLED);
_Py_IDENTIFIER(FINISHED);
PyObject *ret = NULL;
ENSURE_FUTURE_ALIVE(fut)
switch (fut->fut_state) {
case STATE_PENDING:
ret = _PyUnicode_FromId(&PyId_PENDING);
ret = &_Py_ID(PENDING);
break;
case STATE_CANCELLED:
ret = _PyUnicode_FromId(&PyId_CANCELLED);
ret = &_Py_ID(CANCELLED);
break;
case STATE_FINISHED:
ret = _PyUnicode_FromId(&PyId_FINISHED);
ret = &_Py_ID(FINISHED);
break;
default:
assert (0);
@ -1406,12 +1390,6 @@ _asyncio_Future__make_cancelled_error_impl(FutureObj *self)
static void
FutureObj_finalize(FutureObj *fut)
{
_Py_IDENTIFIER(call_exception_handler);
_Py_IDENTIFIER(message);
_Py_IDENTIFIER(exception);
_Py_IDENTIFIER(future);
_Py_IDENTIFIER(source_traceback);
PyObject *error_type, *error_value, *error_traceback;
PyObject *context;
PyObject *message = NULL;
@ -1437,19 +1415,19 @@ FutureObj_finalize(FutureObj *fut)
goto finally;
}
if (_PyDict_SetItemId(context, &PyId_message, message) < 0 ||
_PyDict_SetItemId(context, &PyId_exception, fut->fut_exception) < 0 ||
_PyDict_SetItemId(context, &PyId_future, (PyObject*)fut) < 0) {
if (PyDict_SetItem(context, &_Py_ID(message), message) < 0 ||
PyDict_SetItem(context, &_Py_ID(exception), fut->fut_exception) < 0 ||
PyDict_SetItem(context, &_Py_ID(future), (PyObject*)fut) < 0) {
goto finally;
}
if (fut->fut_source_tb != NULL) {
if (_PyDict_SetItemId(context, &PyId_source_traceback,
if (PyDict_SetItem(context, &_Py_ID(source_traceback),
fut->fut_source_tb) < 0) {
goto finally;
}
}
func = _PyObject_GetAttrId(fut->fut_loop, &PyId_call_exception_handler);
func = PyObject_GetAttr(fut->fut_loop, &_Py_ID(call_exception_handler));
if (func != NULL) {
PyObject *res = PyObject_CallOneArg(func, context);
if (res == NULL) {
@ -1918,10 +1896,8 @@ static PyMethodDef TaskWakeupDef = {
static int
register_task(PyObject *task)
{
_Py_IDENTIFIER(add);
PyObject *res = _PyObject_CallMethodIdOneArg(all_tasks,
&PyId_add, task);
PyObject *res = PyObject_CallMethodOneArg(all_tasks,
&_Py_ID(add), task);
if (res == NULL) {
return -1;
}
@ -1933,10 +1909,8 @@ register_task(PyObject *task)
static int
unregister_task(PyObject *task)
{
_Py_IDENTIFIER(discard);
PyObject *res = _PyObject_CallMethodIdOneArg(all_tasks,
&PyId_discard, task);
PyObject *res = PyObject_CallMethodOneArg(all_tasks,
&_Py_ID(discard), task);
if (res == NULL) {
return -1;
}
@ -2223,8 +2197,8 @@ _asyncio_Task_cancel_impl(TaskObj *self, PyObject *msg)
PyObject *res;
int is_true;
res = _PyObject_CallMethodIdOneArg(self->task_fut_waiter,
&PyId_cancel, msg);
res = PyObject_CallMethodOneArg(self->task_fut_waiter,
&_Py_ID(cancel), msg);
if (res == NULL) {
return NULL;
}
@ -2444,11 +2418,6 @@ _asyncio_Task_set_name(TaskObj *self, PyObject *value)
static void
TaskObj_finalize(TaskObj *task)
{
_Py_IDENTIFIER(call_exception_handler);
_Py_IDENTIFIER(task);
_Py_IDENTIFIER(message);
_Py_IDENTIFIER(source_traceback);
PyObject *context;
PyObject *message = NULL;
PyObject *func;
@ -2471,21 +2440,21 @@ TaskObj_finalize(TaskObj *task)
goto finally;
}
if (_PyDict_SetItemId(context, &PyId_message, message) < 0 ||
_PyDict_SetItemId(context, &PyId_task, (PyObject*)task) < 0)
if (PyDict_SetItem(context, &_Py_ID(message), message) < 0 ||
PyDict_SetItem(context, &_Py_ID(task), (PyObject*)task) < 0)
{
goto finally;
}
if (task->task_source_tb != NULL) {
if (_PyDict_SetItemId(context, &PyId_source_traceback,
if (PyDict_SetItem(context, &_Py_ID(source_traceback),
task->task_source_tb) < 0)
{
goto finally;
}
}
func = _PyObject_GetAttrId(task->task_loop, &PyId_call_exception_handler);
func = PyObject_GetAttr(task->task_loop, &_Py_ID(call_exception_handler));
if (func != NULL) {
PyObject *res = PyObject_CallOneArg(func, context);
if (res == NULL) {
@ -2709,7 +2678,7 @@ task_step_impl(TaskObj *task, PyObject *exc)
gen_status = PyIter_Send(coro, Py_None, &result);
}
else {
result = _PyObject_CallMethodIdOneArg(coro, &PyId_throw, exc);
result = PyObject_CallMethodOneArg(coro, &_Py_ID(throw), exc);
gen_status = gen_status_from_result(&result);
if (clear_exc) {
/* We created 'exc' during this call */
@ -2836,7 +2805,7 @@ task_step_impl(TaskObj *task, PyObject *exc)
if (task->task_must_cancel) {
PyObject *r;
int is_true;
r = _PyObject_CallMethodIdOneArg(result, &PyId_cancel,
r = PyObject_CallMethodOneArg(result, &_Py_ID(cancel),
task->task_cancel_msg);
if (r == NULL) {
return NULL;
@ -2864,7 +2833,7 @@ task_step_impl(TaskObj *task, PyObject *exc)
}
/* Check if `result` is a Future-compatible object */
if (_PyObject_LookupAttrId(result, &PyId__asyncio_future_blocking, &o) < 0) {
if (_PyObject_LookupAttr(result, &_Py_ID(_asyncio_future_blocking), &o) < 0) {
goto fail;
}
if (o != NULL && o != Py_None) {
@ -2894,8 +2863,8 @@ task_step_impl(TaskObj *task, PyObject *exc)
}
/* result._asyncio_future_blocking = False */
if (_PyObject_SetAttrId(
result, &PyId__asyncio_future_blocking, Py_False) == -1) {
if (PyObject_SetAttr(
result, &_Py_ID(_asyncio_future_blocking), Py_False) == -1) {
goto fail;
}
@ -2905,8 +2874,8 @@ task_step_impl(TaskObj *task, PyObject *exc)
}
/* result.add_done_callback(task._wakeup) */
PyObject *add_cb = _PyObject_GetAttrId(
result, &PyId_add_done_callback);
PyObject *add_cb = PyObject_GetAttr(
result, &_Py_ID(add_done_callback));
if (add_cb == NULL) {
Py_DECREF(wrapper);
goto fail;
@ -2929,7 +2898,7 @@ task_step_impl(TaskObj *task, PyObject *exc)
if (task->task_must_cancel) {
PyObject *r;
int is_true;
r = _PyObject_CallMethodIdOneArg(result, &PyId_cancel,
r = PyObject_CallMethodOneArg(result, &_Py_ID(cancel),
task->task_cancel_msg);
if (r == NULL) {
return NULL;