Skip to content

Commit 1b55b65

Browse files
authored
bpo-39573: Clean up modules and headers to use Py_IS_TYPE() function (GH-18521)
1 parent a784759 commit 1b55b65

33 files changed

+56
-56
lines changed

Include/cpython/frameobject.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ typedef struct _frame {
5151

5252
PyAPI_DATA(PyTypeObject) PyFrame_Type;
5353

54-
#define PyFrame_Check(op) (Py_TYPE(op) == &PyFrame_Type)
54+
#define PyFrame_Check(op) Py_IS_TYPE(op, &PyFrame_Type)
5555

5656
PyAPI_FUNC(PyFrameObject *) PyFrame_New(PyThreadState *, PyCodeObject *,
5757
PyObject *, PyObject *);

Include/longobject.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ PyAPI_DATA(PyTypeObject) PyLong_Type;
1313

1414
#define PyLong_Check(op) \
1515
PyType_FastSubclass(Py_TYPE(op), Py_TPFLAGS_LONG_SUBCLASS)
16-
#define PyLong_CheckExact(op) (Py_TYPE(op) == &PyLong_Type)
16+
#define PyLong_CheckExact(op) Py_IS_TYPE(op, &PyLong_Type)
1717

1818
PyAPI_FUNC(PyObject *) PyLong_FromLong(long);
1919
PyAPI_FUNC(PyObject *) PyLong_FromUnsignedLong(unsigned long);

Modules/_abc.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ _get_impl(PyObject *self)
8282
if (impl == NULL) {
8383
return NULL;
8484
}
85-
if (Py_TYPE(impl) != &_abc_data_type) {
85+
if (!Py_IS_TYPE(impl, &_abc_data_type)) {
8686
PyErr_SetString(PyExc_TypeError, "_abc_impl is set to a wrong type");
8787
Py_DECREF(impl);
8888
return NULL;

Modules/_asynciomodule.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,8 @@ static PyTypeObject TaskType;
112112
static PyTypeObject PyRunningLoopHolder_Type;
113113

114114

115-
#define Future_CheckExact(obj) (Py_TYPE(obj) == &FutureType)
116-
#define Task_CheckExact(obj) (Py_TYPE(obj) == &TaskType)
115+
#define Future_CheckExact(obj) Py_IS_TYPE(obj, &FutureType)
116+
#define Task_CheckExact(obj) Py_IS_TYPE(obj, &TaskType)
117117

118118
#define Future_Check(obj) PyObject_TypeCheck(obj, &FutureType)
119119
#define Task_Check(obj) PyObject_TypeCheck(obj, &TaskType)
@@ -255,7 +255,7 @@ get_running_loop(PyObject **loop)
255255
cached_running_holder_tsid = ts->id;
256256
}
257257

258-
assert(Py_TYPE(rl) == &PyRunningLoopHolder_Type);
258+
assert(Py_IS_TYPE(rl, &PyRunningLoopHolder_Type));
259259
PyObject *running_loop = ((PyRunningLoopHolder *)rl)->rl_loop;
260260

261261
if (running_loop == Py_None) {

Modules/_csv.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ typedef struct {
106106

107107
static PyTypeObject Reader_Type;
108108

109-
#define ReaderObject_Check(v) (Py_TYPE(v) == &Reader_Type)
109+
#define ReaderObject_Check(v) Py_IS_TYPE(v, &Reader_Type)
110110

111111
typedef struct {
112112
PyObject_HEAD

Modules/_ctypes/ctypes.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ typedef struct {
6868
ffi_type *atypes[1];
6969
} CThunkObject;
7070
extern PyTypeObject PyCThunk_Type;
71-
#define CThunk_CheckExact(v) (Py_TYPE(v) == &PyCThunk_Type)
71+
#define CThunk_CheckExact(v) Py_IS_TYPE(v, &PyCThunk_Type)
7272

7373
typedef struct {
7474
/* First part identical to tagCDataObject */
@@ -102,7 +102,7 @@ typedef struct {
102102
} PyCFuncPtrObject;
103103

104104
extern PyTypeObject PyCStgDict_Type;
105-
#define PyCStgDict_CheckExact(v) (Py_TYPE(v) == &PyCStgDict_Type)
105+
#define PyCStgDict_CheckExact(v) Py_IS_TYPE(v, &PyCStgDict_Type)
106106
#define PyCStgDict_Check(v) PyObject_TypeCheck(v, &PyCStgDict_Type)
107107

108108
extern int PyCStructUnionType_update_stgdict(PyObject *fields, PyObject *type, int isStruct);
@@ -112,12 +112,12 @@ extern int PyObject_stginfo(PyObject *self, Py_ssize_t *psize, Py_ssize_t *palig
112112

113113

114114
extern PyTypeObject PyCData_Type;
115-
#define CDataObject_CheckExact(v) (Py_TYPE(v) == &PyCData_Type)
115+
#define CDataObject_CheckExact(v) Py_IS_TYPE(v, &PyCData_Type)
116116
#define CDataObject_Check(v) PyObject_TypeCheck(v, &PyCData_Type)
117117
#define _CDataObject_HasExternalBuffer(v) ((v)->b_ptr != (char *)&(v)->b_value)
118118

119119
extern PyTypeObject PyCSimpleType_Type;
120-
#define PyCSimpleTypeObject_CheckExact(v) (Py_TYPE(v) == &PyCSimpleType_Type)
120+
#define PyCSimpleTypeObject_CheckExact(v) Py_IS_TYPE(v, &PyCSimpleType_Type)
121121
#define PyCSimpleTypeObject_Check(v) PyObject_TypeCheck(v, &PyCSimpleType_Type)
122122

123123
extern PyTypeObject PyCField_Type;
@@ -314,7 +314,7 @@ struct tagPyCArgObject {
314314
};
315315

316316
extern PyTypeObject PyCArg_Type;
317-
#define PyCArg_CheckExact(v) (Py_TYPE(v) == &PyCArg_Type)
317+
#define PyCArg_CheckExact(v) Py_IS_TYPE(v, &PyCArg_Type)
318318
extern PyCArgObject *PyCArgObject_new(void);
319319

320320
extern PyObject *

Modules/_ctypes/stgdict.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ MakeFields(PyObject *type, CFieldObject *descr,
231231
Py_DECREF(fieldlist);
232232
return -1;
233233
}
234-
if (Py_TYPE(fdescr) != &PyCField_Type) {
234+
if (!Py_IS_TYPE(fdescr, &PyCField_Type)) {
235235
PyErr_SetString(PyExc_TypeError, "unexpected type");
236236
Py_DECREF(fdescr);
237237
Py_DECREF(fieldlist);
@@ -254,7 +254,7 @@ MakeFields(PyObject *type, CFieldObject *descr,
254254
Py_DECREF(fieldlist);
255255
return -1;
256256
}
257-
assert(Py_TYPE(new_descr) == &PyCField_Type);
257+
assert(Py_IS_TYPE(new_descr, &PyCField_Type));
258258
new_descr->size = fdescr->size;
259259
new_descr->offset = fdescr->offset + offset;
260260
new_descr->index = fdescr->index + index;
@@ -304,7 +304,7 @@ MakeAnonFields(PyObject *type)
304304
Py_DECREF(anon_names);
305305
return -1;
306306
}
307-
if (Py_TYPE(descr) != &PyCField_Type) {
307+
if (!Py_IS_TYPE(descr, &PyCField_Type)) {
308308
PyErr_Format(PyExc_AttributeError,
309309
"'%U' is specified in _anonymous_ but not in "
310310
"_fields_",

Modules/_curses_panel.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ typedef struct {
8383
} PyCursesPanelObject;
8484

8585
#define PyCursesPanel_Check(v) \
86-
(Py_TYPE(v) == _curses_panelstate_global->PyCursesPanel_Type)
86+
Py_IS_TYPE(v, _curses_panelstate_global->PyCursesPanel_Type)
8787

8888
/* Some helper functions. The problem is that there's always a window
8989
associated with a panel. To ensure that Python's GC doesn't pull

Modules/_datetimemodule.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,19 @@
1818
#endif
1919

2020
#define PyDate_Check(op) PyObject_TypeCheck(op, &PyDateTime_DateType)
21-
#define PyDate_CheckExact(op) (Py_TYPE(op) == &PyDateTime_DateType)
21+
#define PyDate_CheckExact(op) Py_IS_TYPE(op, &PyDateTime_DateType)
2222

2323
#define PyDateTime_Check(op) PyObject_TypeCheck(op, &PyDateTime_DateTimeType)
24-
#define PyDateTime_CheckExact(op) (Py_TYPE(op) == &PyDateTime_DateTimeType)
24+
#define PyDateTime_CheckExact(op) Py_IS_TYPE(op, &PyDateTime_DateTimeType)
2525

2626
#define PyTime_Check(op) PyObject_TypeCheck(op, &PyDateTime_TimeType)
27-
#define PyTime_CheckExact(op) (Py_TYPE(op) == &PyDateTime_TimeType)
27+
#define PyTime_CheckExact(op) Py_IS_TYPE(op, &PyDateTime_TimeType)
2828

2929
#define PyDelta_Check(op) PyObject_TypeCheck(op, &PyDateTime_DeltaType)
30-
#define PyDelta_CheckExact(op) (Py_TYPE(op) == &PyDateTime_DeltaType)
30+
#define PyDelta_CheckExact(op) Py_IS_TYPE(op, &PyDateTime_DeltaType)
3131

3232
#define PyTZInfo_Check(op) PyObject_TypeCheck(op, &PyDateTime_TZInfoType)
33-
#define PyTZInfo_CheckExact(op) (Py_TYPE(op) == &PyDateTime_TZInfoType)
33+
#define PyTZInfo_CheckExact(op) Py_IS_TYPE(op, &PyDateTime_TZInfoType)
3434

3535
#define PyTimezone_Check(op) PyObject_TypeCheck(op, &PyDateTime_TimeZoneType)
3636

Modules/_dbmmodule.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ typedef struct {
4545

4646
static PyTypeObject Dbmtype;
4747

48-
#define is_dbmobject(v) (Py_TYPE(v) == &Dbmtype)
48+
#define is_dbmobject(v) Py_IS_TYPE(v, &Dbmtype)
4949
#define check_dbmobject_open(v) if ((v)->di_dbm == NULL) \
5050
{ PyErr_SetString(DbmError, "DBM object has already been closed"); \
5151
return NULL; }

0 commit comments

Comments
 (0)