Skip to content

Commit e0bcfd0

Browse files
authored
bpo-45490: Rename static inline functions (GH-31217)
When a static inline function is wrapped by a macro which casts its arguments to the expected type, there is no need that the function has a different name than the macro. Use the same name for the macro and the function to avoid confusion. Rename _PyUnicode_get_wstr_length() to PyUnicode_WSTR_LENGTH(). Don't rename static inline _Py_NewRef() and _Py_XNewRef() functions, since the C API exports Py_NewRef() and Py_XNewRef() functions as regular functions. The name cannot be reused in this case.
1 parent 4f93866 commit e0bcfd0

File tree

3 files changed

+32
-32
lines changed

3 files changed

+32
-32
lines changed

Include/cpython/unicodeobject.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -434,12 +434,12 @@ enum PyUnicode_Kind {
434434
(0x10ffffU)))))
435435

436436
Py_DEPRECATED(3.3)
437-
static inline Py_ssize_t _PyUnicode_get_wstr_length(PyObject *op) {
437+
static inline Py_ssize_t PyUnicode_WSTR_LENGTH(PyObject *op) {
438438
return PyUnicode_IS_COMPACT_ASCII(op) ?
439439
((PyASCIIObject*)op)->length :
440440
((PyCompactUnicodeObject*)op)->wstr_length;
441441
}
442-
#define PyUnicode_WSTR_LENGTH(op) _PyUnicode_get_wstr_length((PyObject*)op)
442+
#define PyUnicode_WSTR_LENGTH(op) PyUnicode_WSTR_LENGTH(_PyObject_CAST(op))
443443

444444
/* === Public API ========================================================= */
445445

Include/object.h

+29-29
Original file line numberDiff line numberDiff line change
@@ -127,49 +127,49 @@ PyAPI_FUNC(int) Py_Is(PyObject *x, PyObject *y);
127127
#define Py_Is(x, y) ((x) == (y))
128128

129129

130-
static inline Py_ssize_t _Py_REFCNT(const PyObject *ob) {
130+
static inline Py_ssize_t Py_REFCNT(const PyObject *ob) {
131131
return ob->ob_refcnt;
132132
}
133-
#define Py_REFCNT(ob) _Py_REFCNT(_PyObject_CAST_CONST(ob))
133+
#define Py_REFCNT(ob) Py_REFCNT(_PyObject_CAST_CONST(ob))
134134

135135

136136
// bpo-39573: The Py_SET_TYPE() function must be used to set an object type.
137-
static inline PyTypeObject* _Py_TYPE(const PyObject *ob) {
137+
static inline PyTypeObject* Py_TYPE(const PyObject *ob) {
138138
return ob->ob_type;
139139
}
140-
#define Py_TYPE(ob) _Py_TYPE(_PyObject_CAST_CONST(ob))
140+
#define Py_TYPE(ob) Py_TYPE(_PyObject_CAST_CONST(ob))
141141

142142
// bpo-39573: The Py_SET_SIZE() function must be used to set an object size.
143-
static inline Py_ssize_t _Py_SIZE(const PyVarObject *ob) {
143+
static inline Py_ssize_t Py_SIZE(const PyVarObject *ob) {
144144
return ob->ob_size;
145145
}
146-
#define Py_SIZE(ob) _Py_SIZE(_PyVarObject_CAST_CONST(ob))
146+
#define Py_SIZE(ob) Py_SIZE(_PyVarObject_CAST_CONST(ob))
147147

148148

149-
static inline int _Py_IS_TYPE(const PyObject *ob, const PyTypeObject *type) {
149+
static inline int Py_IS_TYPE(const PyObject *ob, const PyTypeObject *type) {
150150
// bpo-44378: Don't use Py_TYPE() since Py_TYPE() requires a non-const
151151
// object.
152152
return ob->ob_type == type;
153153
}
154-
#define Py_IS_TYPE(ob, type) _Py_IS_TYPE(_PyObject_CAST_CONST(ob), type)
154+
#define Py_IS_TYPE(ob, type) Py_IS_TYPE(_PyObject_CAST_CONST(ob), type)
155155

156156

157-
static inline void _Py_SET_REFCNT(PyObject *ob, Py_ssize_t refcnt) {
157+
static inline void Py_SET_REFCNT(PyObject *ob, Py_ssize_t refcnt) {
158158
ob->ob_refcnt = refcnt;
159159
}
160-
#define Py_SET_REFCNT(ob, refcnt) _Py_SET_REFCNT(_PyObject_CAST(ob), refcnt)
160+
#define Py_SET_REFCNT(ob, refcnt) Py_SET_REFCNT(_PyObject_CAST(ob), refcnt)
161161

162162

163-
static inline void _Py_SET_TYPE(PyObject *ob, PyTypeObject *type) {
163+
static inline void Py_SET_TYPE(PyObject *ob, PyTypeObject *type) {
164164
ob->ob_type = type;
165165
}
166-
#define Py_SET_TYPE(ob, type) _Py_SET_TYPE(_PyObject_CAST(ob), type)
166+
#define Py_SET_TYPE(ob, type) Py_SET_TYPE(_PyObject_CAST(ob), type)
167167

168168

169-
static inline void _Py_SET_SIZE(PyVarObject *ob, Py_ssize_t size) {
169+
static inline void Py_SET_SIZE(PyVarObject *ob, Py_ssize_t size) {
170170
ob->ob_size = size;
171171
}
172-
#define Py_SET_SIZE(ob, size) _Py_SET_SIZE(_PyVarObject_CAST(ob), size)
172+
#define Py_SET_SIZE(ob, size) Py_SET_SIZE(_PyVarObject_CAST(ob), size)
173173

174174

175175
/*
@@ -253,10 +253,10 @@ PyAPI_FUNC(PyObject *) PyType_GetQualName(PyTypeObject *);
253253
/* Generic type check */
254254
PyAPI_FUNC(int) PyType_IsSubtype(PyTypeObject *, PyTypeObject *);
255255

256-
static inline int _PyObject_TypeCheck(PyObject *ob, PyTypeObject *type) {
256+
static inline int PyObject_TypeCheck(PyObject *ob, PyTypeObject *type) {
257257
return Py_IS_TYPE(ob, type) || PyType_IsSubtype(Py_TYPE(ob), type);
258258
}
259-
#define PyObject_TypeCheck(ob, type) _PyObject_TypeCheck(_PyObject_CAST(ob), type)
259+
#define PyObject_TypeCheck(ob, type) PyObject_TypeCheck(_PyObject_CAST(ob), type)
260260

261261
PyAPI_DATA(PyTypeObject) PyType_Type; /* built-in 'type' */
262262
PyAPI_DATA(PyTypeObject) PyBaseObject_Type; /* built-in 'object' */
@@ -475,7 +475,7 @@ PyAPI_FUNC(void) Py_DecRef(PyObject *);
475475
PyAPI_FUNC(void) _Py_IncRef(PyObject *);
476476
PyAPI_FUNC(void) _Py_DecRef(PyObject *);
477477

478-
static inline void _Py_INCREF(PyObject *op)
478+
static inline void Py_INCREF(PyObject *op)
479479
{
480480
#if defined(Py_REF_DEBUG) && defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030A0000
481481
// Stable ABI for Python 3.10 built in debug mode.
@@ -489,9 +489,9 @@ static inline void _Py_INCREF(PyObject *op)
489489
op->ob_refcnt++;
490490
#endif
491491
}
492-
#define Py_INCREF(op) _Py_INCREF(_PyObject_CAST(op))
492+
#define Py_INCREF(op) Py_INCREF(_PyObject_CAST(op))
493493

494-
static inline void _Py_DECREF(
494+
static inline void Py_DECREF(
495495
#if defined(Py_REF_DEBUG) && !(defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030A0000)
496496
const char *filename, int lineno,
497497
#endif
@@ -519,9 +519,9 @@ static inline void _Py_DECREF(
519519
#endif
520520
}
521521
#if defined(Py_REF_DEBUG) && !(defined(Py_LIMITED_API) && Py_LIMITED_API+0 >= 0x030A0000)
522-
# define Py_DECREF(op) _Py_DECREF(__FILE__, __LINE__, _PyObject_CAST(op))
522+
# define Py_DECREF(op) Py_DECREF(__FILE__, __LINE__, _PyObject_CAST(op))
523523
#else
524-
# define Py_DECREF(op) _Py_DECREF(_PyObject_CAST(op))
524+
# define Py_DECREF(op) Py_DECREF(_PyObject_CAST(op))
525525
#endif
526526

527527

@@ -569,23 +569,23 @@ static inline void _Py_DECREF(
569569
} while (0)
570570

571571
/* Function to use in case the object pointer can be NULL: */
572-
static inline void _Py_XINCREF(PyObject *op)
572+
static inline void Py_XINCREF(PyObject *op)
573573
{
574574
if (op != NULL) {
575575
Py_INCREF(op);
576576
}
577577
}
578578

579-
#define Py_XINCREF(op) _Py_XINCREF(_PyObject_CAST(op))
579+
#define Py_XINCREF(op) Py_XINCREF(_PyObject_CAST(op))
580580

581-
static inline void _Py_XDECREF(PyObject *op)
581+
static inline void Py_XDECREF(PyObject *op)
582582
{
583583
if (op != NULL) {
584584
Py_DECREF(op);
585585
}
586586
}
587587

588-
#define Py_XDECREF(op) _Py_XDECREF(_PyObject_CAST(op))
588+
#define Py_XDECREF(op) Py_XDECREF(_PyObject_CAST(op))
589589

590590
// Create a new strong reference to an object:
591591
// increment the reference count of the object and return the object.
@@ -750,17 +750,17 @@ PyType_HasFeature(PyTypeObject *type, unsigned long feature)
750750

751751
#define PyType_FastSubclass(type, flag) PyType_HasFeature(type, flag)
752752

753-
static inline int _PyType_Check(PyObject *op) {
753+
static inline int PyType_Check(PyObject *op) {
754754
return PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_TYPE_SUBCLASS);
755755
}
756-
#define PyType_Check(op) _PyType_Check(_PyObject_CAST(op))
756+
#define PyType_Check(op) PyType_Check(_PyObject_CAST(op))
757757

758758
#define _PyType_CAST(op) (assert(PyType_Check(op)), (PyTypeObject*)(op))
759759

760-
static inline int _PyType_CheckExact(PyObject *op) {
760+
static inline int PyType_CheckExact(PyObject *op) {
761761
return Py_IS_TYPE(op, &PyType_Type);
762762
}
763-
#define PyType_CheckExact(op) _PyType_CheckExact(_PyObject_CAST(op))
763+
#define PyType_CheckExact(op) PyType_CheckExact(_PyObject_CAST(op))
764764

765765
#ifdef __cplusplus
766766
}

Python/specialize.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -1939,7 +1939,7 @@ int
19391939
if (PyAsyncGen_CheckExact(iter)) {
19401940
return SPEC_FAIL_FOR_ITER_ASYNC_GENERATOR;
19411941
}
1942-
PyTypeObject *t = _Py_TYPE(iter);
1942+
PyTypeObject *t = Py_TYPE(iter);
19431943
if (t == &PyListIter_Type) {
19441944
return SPEC_FAIL_FOR_ITER_LIST;
19451945
}

0 commit comments

Comments
 (0)