Issue #19514: Deduplicate some _Py_IDENTIFIER declarations.
Patch by Andrei Dorian Duma.
diff --git a/Modules/_bisectmodule.c b/Modules/_bisectmodule.c
index faca8cf..02b55d1 100644
--- a/Modules/_bisectmodule.c
+++ b/Modules/_bisectmodule.c
@@ -6,6 +6,8 @@
#define PY_SSIZE_T_CLEAN
#include "Python.h"
+_Py_IDENTIFIER(insert);
+
static Py_ssize_t
internal_bisect_right(PyObject *list, PyObject *item, Py_ssize_t lo, Py_ssize_t hi)
{
@@ -90,8 +92,6 @@
if (PyList_Insert(list, index, item) < 0)
return NULL;
} else {
- _Py_IDENTIFIER(insert);
-
result = _PyObject_CallMethodId(list, &PyId_insert, "nO", index, item);
if (result == NULL)
return NULL;
@@ -195,7 +195,6 @@
if (PyList_Insert(list, index, item) < 0)
return NULL;
} else {
- _Py_IDENTIFIER(insert);
result = _PyObject_CallMethodId(list, &PyId_insert, "nO", index, item);
if (result == NULL)
return NULL;
diff --git a/Modules/_datetimemodule.c b/Modules/_datetimemodule.c
index 8848432..a89e0ec 100644
--- a/Modules/_datetimemodule.c
+++ b/Modules/_datetimemodule.c
@@ -104,6 +104,11 @@
static PyTypeObject PyDateTime_TZInfoType;
static PyTypeObject PyDateTime_TimeZoneType;
+_Py_IDENTIFIER(as_integer_ratio);
+_Py_IDENTIFIER(fromutc);
+_Py_IDENTIFIER(isoformat);
+_Py_IDENTIFIER(strftime);
+
/* ---------------------------------------------------------------------------
* Math utilities.
*/
@@ -1277,8 +1282,6 @@
goto Done;
format = PyUnicode_FromString(PyBytes_AS_STRING(newfmt));
if (format != NULL) {
- _Py_IDENTIFIER(strftime);
-
result = _PyObject_CallMethodId(time, &PyId_strftime, "OO",
format, timetuple, NULL);
Py_DECREF(format);
@@ -1566,7 +1569,6 @@
PyObject *result = NULL;
PyObject *pyus_in = NULL, *temp, *pyus_out;
PyObject *ratio = NULL;
- _Py_IDENTIFIER(as_integer_ratio);
pyus_in = delta_to_microseconds(delta);
if (pyus_in == NULL)
@@ -1665,7 +1667,6 @@
PyObject *result = NULL;
PyObject *pyus_in = NULL, *temp, *pyus_out;
PyObject *ratio = NULL;
- _Py_IDENTIFIER(as_integer_ratio);
pyus_in = delta_to_microseconds(delta);
if (pyus_in == NULL)
@@ -2635,8 +2636,6 @@
static PyObject *
date_str(PyDateTime_Date *self)
{
- _Py_IDENTIFIER(isoformat);
-
return _PyObject_CallMethodId((PyObject *)self, &PyId_isoformat, "()");
}
@@ -2676,7 +2675,6 @@
date_format(PyDateTime_Date *self, PyObject *args)
{
PyObject *format;
- _Py_IDENTIFIER(strftime);
if (!PyArg_ParseTuple(args, "U:__format__", &format))
return NULL;
@@ -3593,8 +3591,6 @@
static PyObject *
time_str(PyDateTime_Time *self)
{
- _Py_IDENTIFIER(isoformat);
-
return _PyObject_CallMethodId((PyObject *)self, &PyId_isoformat, "()");
}
@@ -4207,7 +4203,6 @@
if (self != NULL && tz != Py_None) {
/* Convert UTC to tzinfo's zone. */
PyObject *temp = self;
- _Py_IDENTIFIER(fromutc);
self = _PyObject_CallMethodId(tz, &PyId_fromutc, "O", self);
Py_DECREF(temp);
@@ -4246,7 +4241,6 @@
if (self != NULL && tzinfo != Py_None) {
/* Convert UTC to tzinfo's zone. */
PyObject *temp = self;
- _Py_IDENTIFIER(fromutc);
self = _PyObject_CallMethodId(tzinfo, &PyId_fromutc, "O", self);
Py_DECREF(temp);
@@ -4529,8 +4523,6 @@
static PyObject *
datetime_str(PyDateTime_DateTime *self)
{
- _Py_IDENTIFIER(isoformat);
-
return _PyObject_CallMethodId((PyObject *)self, &PyId_isoformat, "(s)", " ");
}
@@ -4809,7 +4801,6 @@
PyObject *offset;
PyObject *temp;
PyObject *tzinfo = Py_None;
- _Py_IDENTIFIER(fromutc);
static char *keywords[] = {"tz", NULL};
if (! PyArg_ParseTupleAndKeywords(args, kw, "|O:astimezone", keywords,
diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c
index 0411d23..7365a88 100644
--- a/Modules/_sqlite/connection.c
+++ b/Modules/_sqlite/connection.c
@@ -41,6 +41,8 @@
#endif
#endif
+_Py_IDENTIFIER(cursor);
+
static int pysqlite_connection_set_isolation_level(pysqlite_Connection* self, PyObject* isolation_level);
static void _pysqlite_drop_unused_cursor_references(pysqlite_Connection* self);
@@ -1279,7 +1281,6 @@
PyObject* cursor = 0;
PyObject* result = 0;
PyObject* method = 0;
- _Py_IDENTIFIER(cursor);
cursor = _PyObject_CallMethodId((PyObject*)self, &PyId_cursor, "");
if (!cursor) {
@@ -1309,7 +1310,6 @@
PyObject* cursor = 0;
PyObject* result = 0;
PyObject* method = 0;
- _Py_IDENTIFIER(cursor);
cursor = _PyObject_CallMethodId((PyObject*)self, &PyId_cursor, "");
if (!cursor) {
@@ -1339,7 +1339,6 @@
PyObject* cursor = 0;
PyObject* result = 0;
PyObject* method = 0;
- _Py_IDENTIFIER(cursor);
cursor = _PyObject_CallMethodId((PyObject*)self, &PyId_cursor, "");
if (!cursor) {