8000 bpo-39573: Clean up modules and headers to use Py_IS_TYPE() function … · python/cpython@1b55b65 · GitHub
[go: up one dir, main page]

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; }

Modules/_decimal/_decimal.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,9 @@ static PyTypeObject PyDec_Type;
9696
static PyTypeObject *PyDecSignalDict_Type;
9797
static PyTypeObject PyDecContext_Type;
9898
static PyTypeObject PyDecContextManager_Type;
99-
#define PyDec_CheckExact(v) (Py_TYPE(v) == &PyDec_Type)
99+
#define PyDec_CheckExact(v) Py_IS_TYPE(v, &PyDec_Type)
100100
#define PyDec_Check(v) PyObject_TypeCheck(v, &PyDec_Type)
101-
#define PyDecSignalDict_Check(v) (Py_TYPE(v) == PyDecSignalDict_Type)
101+
#define PyDecSignalDict_Check(v) Py_IS_TYPE(v, PyDecSignalDict_Type)
102102
#define PyDecContext_Check(v) PyObject_TypeCheck(v, &PyDecContext_Type)
103103
#define MPD(v) (&((PyDecObject *)v)->dec)
104104
#define SdFlagAddr(v) (((PyDecSignalDictObject *)v)->flags)

Modules/_elementtree.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ typedef struct {
209209
} ElementObject;
210210

211211

212-
#define Element_CheckExact(op) (Py_TYPE(op) == &Element_Type)
212+
#define Element_CheckExact(op) Py_IS_TYPE(op, &Element_Type)
213213
#define Element_Check(op) PyObject_TypeCheck(op, &Element_Type)
214214

215215

Modules/_functoolsmodule.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ partial_new(PyTypeObject *type, PyObject *args, PyObject *kw)
4141

4242
pargs = pkw = NULL;
4343
func = PyTuple_GET_ITEM(args, 0);
44-
if (Py_TYPE(func) == &partial_type && type == &partial_type) {
44+
if (Py_IS_TYPE(func, &partial_type) && type == &partial_type) {
4545
partialobject *part = (partialobject *)func;
4646
if (part->dict == NULL) {
4747
pargs = part->args;

Modules/_gdbmmodule.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ static PyTypeObject Dbmtype;
4444

4545
#include "clinic/_gdbmmodule.c.h"
4646

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

Modules/_json.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
#include "pycore_accu.h"
1414

1515
#define PyScanner_Check(op) PyObject_TypeCheck(op, &PyScannerType)
16-
#define PyScanner_CheckExact(op) (Py_TYPE(op) == &PyScannerType)
16+
#define PyScanner_CheckExact(op) Py_IS_TYPE(op, &PyScannerType)
1717
#define PyEncoder_Check(op) PyObject_TypeCheck(op, &PyEncoderType)
18-
#define PyEncoder_CheckExact(op) (Py_TYPE(op) == &PyEncoderType)
18+
#define PyEncoder_CheckExact(op) Py_IS_TYPE(op, &PyEncoderType)
1919

2020
static PyTypeObject PyScannerType;
2121
static PyTypeObject PyEncoderType;

Modules/_lsprof.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ typedef struct {
5454
static PyTypeObject PyProfiler_Type;
5555

5656
#define PyProfiler_Check(op) PyObject_TypeCheck(op, &PyProfiler_Type)
57-
#define PyProfiler_CheckExact(op) (Py_TYPE(op) == &PyProfiler_Type)
57+
#define PyProfiler_CheckExact(op) Py_IS_TYPE(op, &PyProfiler_Type)
5858

5959
/*** External Timers ***/
6060

Modules/_sre.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2518,7 +2518,7 @@ pattern_richcompare(PyObject *lefto, PyObject *righto, int op)
25182518
Py_RETURN_NOTIMPLEMENTED;
25192519
}
25202520

2521-
if (Py_TYPE(lefto) != &Pattern_Type || Py_TYPE(righto) != &Pattern_Type) {
2521+
if (!Py_IS_TYPE(lefto, &Pattern_Type) || !Py_IS_TYPE(righto, &Pattern_Type)) {
25222522
Py_RETURN_NOTIMPLEMENTED;
25232523
}
25242524

Modules/_ssl.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -508,9 +508,9 @@ static int PySSL_select(PySocketSockObject *s, int writing, _PyTime_t timeout);
508508

509509
static int PySSL_set_owner(PySSLSocket *, PyObject *, void *);
510510
static int PySSL_set_session(PySSLSocket *, PyObject *, void *);
511-
#define PySSLSocket_Check(v) (Py_TYPE(v) == &PySSLSocket_Type)
512-
#define PySSLMemoryBIO_Check(v) (Py_TYPE(v) == &PySSLMemoryBIO_Type)
513-
#define PySSLSession_Check(v) (Py_TYPE(v) == &PySSLSession_Type)
511+
#define PySSLSocket_Check(v) Py_IS_TYPE(v, &PySSLSocket_Type)
512+
#define PySSLMemoryBIO_Check(v) Py_IS_TYPE(v, &PySSLMemoryBIO_Type)
513+
#define PySSLSession_Check(v) Py_IS_TYPE(v, &PySSLSession_Type)
514514

515515
typedef enum {
516516
SOCKET_IS_NONBLOCKING,

Modules/_struct.c

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

5858

5959
#define PyStruct_Check(op) PyObject_TypeCheck(op, (PyTypeObject *)_structmodulestate_global->PyStructType)
60-
#define PyStruct_CheckExact(op) (Py_TYPE(op) == (PyTypeObject *)_structmodulestate_global->PyStructType)
60+
#define PyStruct_CheckExact(op) Py_IS_TYPE(op, (PyTypeObject *)_structmodulestate_global->PyStructType)
6161

6262

6363
/* Define various structs to figure out the alignments of types */

Modules/_testbuffer.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ static PyObject *simple_format = NULL;
2424
/**************************************************************************/
2525

2626
static PyTypeObject NDArray_Type;
27-
#define NDArray_Check(v) (Py_TYPE(v) == &NDArray_Type)
27+
#define NDArray_Check(v) Py_IS_TYPE(v, &NDArray_Type)
2828

2929
#define CHECK_LIST_OR_TUPLE(v) \
3030
if (!PyList_Check(v) && !PyTuple_Check(v)) { \

Modules/_tkinter.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -833,7 +833,7 @@ typedef struct {
833833
} PyTclObject;
834834

835835
static PyObject *PyTclObject_Type;
836-
#define PyTclObject_Check(v) (Py_TYPE(v) == (PyTypeObject *) PyTclObject_Type)
836+
#define PyTclObject_Check(v) Py_IS_TYPE(v, (PyTypeObject *) PyTclObject_Type)
837837

838838
static PyObject *
839839
newPyTclObject(Tcl_Obj *arg)

Modules/arraymodule.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ enum machine_format_code {
106106
#include "clinic/arraymodule.c.h"
107107

108108
#define array_Check(op) PyObject_TypeCheck(op, &Arraytype)
109-
#define array_CheckExact(op) (Py_TYPE(op) == &Arraytype)
109+
#define array_CheckExact(op) Py_IS_TYPE(op, &Arraytype)
110110

111111
static int
112112
array_resize(arrayobject *self, Py_ssize_t newsize)

Modules/parsermodule.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ PyTypeObject PyST_Type = {
256256

257257

258258
/* PyST_Type isn't subclassable, so just check ob_type */
259-
#define PyST_Object_Check(v) (Py_TYPE(v) == &PyST_Type)
259+
#define PyST_Object_Check(v) Py_IS_TYPE(v, &PyST_Type)
260260

261261
static int
262262
parser_compare_nodes(node *left, node *right)

Modules/sha256module.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ SHA256Type_copy_impl(SHAobject *self)
413413
{
414414
SHAobject *newobj;
415415

416-
if (Py_TYPE(self) == &SHA256type) {
416+
if (Py_IS_TYPE(self, &SHA256type)) {
417417
if ( (newobj = newSHA256object())==NULL)
418418
return NULL;
419419
} else {

Modules/sha512module.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ SHA512Type_copy_impl(SHAobject *self)
478478
{
479479
SHAobject *newobj;
480480

481-
if (Py_TYPE((PyObject*)self) == &SHA512type) {
481+
if (Py_IS_TYPE((PyObject*)self, &SHA512type)) {
482482
if ( (newobj = newSHA512object())==NULL)
483483
return NULL;
484484
} else {

Modules/timemodule.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -550,7 +550,7 @@ gettmarg(PyObject *args, struct tm *p, const char *format)
550550
p->tm_wday = (p->tm_wday + 1) % 7;
551551
p->tm_yday--;
552552
#ifdef HAVE_STRUCT_TM_TM_ZONE
553-
if (Py_TYPE(args) == &StructTimeType) {
553+
if (Py_IS_TYPE(args, &StructTimeType)) {
554554
PyObject *item;
555555
item = PyStructSequence_GET_ITEM(args, 9);
556556
if (item != Py_None) {

Modules/unicodedata.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ static PyMemberDef DB_members[] = {
9292

9393
/* forward declaration */
9494
static PyTypeObject UCD_Type;
95-
#define UCD_Check(o) (Py_TYPE(o)==&UCD_Type)
95+
#define UCD_Check(o) Py_IS_TYPE(o, &UCD_Type)
9696

9797
static PyObject*
9898
new_previous_version(const char*name, const change_record* (*getrecord)(Py_UCS4),

Modules/xxlimited.c

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

2626
static PyObject *Xxo_Type;
2727

28-
#define XxoObject_Check(v) (Py_TYPE(v) == Xxo_Type)
28+
#define XxoObject_Check(v) Py_IS_TYPE(v, Xxo_Type)
2929

3030
static XxoObject *
3131
newXxoObject(PyObject *arg)

Modules/xxmodule.c

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

2626
static PyTypeObject Xxo_Type;
2727

28-
#define XxoObject_Check(v) (Py_TYPE(v) == &Xxo_Type)
28+
#define XxoObject_Check(v) Py_IS_TYPE(v, &Xxo_Type)
2929

3030
static XxoObject *
3131
newXxoObject(PyObject *arg)

Objects/classobject.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ static PyObject *
3737
method_vectorcall(PyObject *method, PyObject *const *args,
3838
size_t nargsf, PyObject *kwnames)
3939
{
40-
assert(Py_TYPE(method) == &PyMethod_Type);
40+
assert(Py_IS_TYPE(method, &PyMethod_Type));
4141

4242
PyThreadState *tstate = _PyThreadState_GET();
4343
PyObject *self = PyMethod_GET_SELF(method);

0 commit comments

Comments
 (0)
0